Comments (6)
以下是我的grub2 的实现
sudo gedit /usr/share/initramfs-tools/hooks/vdfuse
#!/bin/sh -e
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
. /usr/share/initramfs-tools/hook-functions
copy_exec /etc/fuse.conf /etc
copy_exec /usr/bin/qemu-nbd /sbin
修改init-top实现自定义文件系统挂载逻辑
sudo gedit /usr/share/initramfs-tools/scripts/init-top/vdfuse
#!/bin/sh -e
PREREQ="udev"
prereqs()
{
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
if [ ! -z $vdisk ]; then
mkdir /vdhost
mkdir /dev/vdhost
mount -t ntfs $host /vdhost/
modprobe nbd
exec -a @11 /sbin/qemu-nbd -c /dev/nbd1 /vdhost$vdisk
mount -t ext4 $ROOT /root
fi
sudo gedit /usr/share/initramfs-tools/scripts/init-bottom/vdhost
#!/bin/sh -e
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
if [ -d ${rootmnt}/vdhost ]; then
mount -n -o move /vdhost ${rootmnt}/vdhost
fi
sudo chmod +x /usr/share/initramfs-tools/hooks/vdfuse
sudo chmod +x /usr/share/initramfs-tools/scripts/init-top/vdfuse
sudo chmod +x /usr/share/initramfs-tools/scripts/init-bottom/vdhost
sudo /usr/sbin/mkinitramfs -o ./initrd.img
from vtoyboot.
该方案我也在研究,目前卡在挂载工具问题上,vdfuse过渡依赖vbox,nbd又引导不起来,看起来得自己实现一个挂载工具。
from vtoyboot.
@want20
initramfs-tools +qemu-nbd 可以实现大部分的linux的vhd引导。
但是实现上每次更新内核后都要重新生成并拷贝到外部
如果可以实现和votyboot 的方式将会更好 用户无需关注votyboot之外的操作 。
此外对于dracut 等其他方式可以参考https://github.com/MobtgZhang/VHD-Boot
但是我并没有在这方案中成功实现 如果有成功消息可以在此分享
from vtoyboot.
@lz-lunzi initramfs-tools +qemu-nbd 可以实现大部分的linux的vhd引导。 但是实现上每次更新内核后都要重新生成并拷贝到外部 如果可以实现和votyboot 的方式将会更好 用户无需关注votyboot之外的操作 。 此外对于dracut 等其他方式可以参考https://github.com/MobtgZhang/VHD-Boot 但是我并没有在这方案中成功实现 如果有成功消息可以在此分享
initramfs-tools+qemu-nbd我没有成功过,每次切换 root 文件系统的时候 nbd 的连接都会断掉,dracut 也是这样,目前我用自己写的工具可以实现引导,因为是纯c写的,所以没啥依赖,移植到 arm一样可以。另外 initramfs-tools 做的镜像关机会卡住,挂载的镜像没法成功卸载。
还有内核拷贝的问题,grub 整个 vhd 解析插件就行了,无需拷贝出来,而且这个插件只读的就行。结合自己写的 dd 插件,可以实现还原。
votyboot的方式还没仔细研究,可以研究一下,能够在启动某个阶段hook?
更新内核重新生成应该无法避免吧?vtoyboot更新内核不也要重新跑一遍脚本?
from vtoyboot.
此外,貌似之前看到有个qcow2 挂载的linux内核requests记录(还是野生patch之类的),要是能被采纳就好了,新内核直接可以挂载 qcow镜像到设备,没了解有没有或者会不会被合入。
from vtoyboot.
这个 https://lwn.net/ml/linux-kernel/164846631540.251310.2398727490395218229.stgit@pro/
from vtoyboot.
Related Issues (20)
- when it starts updating, grub-efi-amd64-signed error and reinstall the efi partition in Linux.vtoy
- 能支持chroot执行安装脚本吗?
- 卡在启动阶段
- debain 11.7 bash 运行vtoyboot.sh报错Current OS is not supported! HOT 3
- 启动到虚拟磁盘linux中时本盘无法使用 HOT 4
- ERROR: Cannot find module directory /lib/modules/6.4.3-zen1-1-zen/
- Endless OS vdisk support
- Debian 12 启动失败 HOT 1
- GUN GRUB倒计时的问题
- OpenSUSE Tumbleweed doesn't boot after script execution HOT 1
- Debian 12 dont supported, shim lock protocol not found error.
- 不能浏览/目录 HOT 1
- openwrt也是linux的,能直接兼容openwrt吗?
- Images that are fragmented or have gaps on the filesystem can fail to load
- Alpine Linux support
- Are there any plans to support VHDx (dynamic size)?
- Are there any plans to support systemd-boot(with Pop_os) HOT 1
- Grub error: unknown filesystem. HOT 2
- Linux Mint 21.3, not working device mapper on boot
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vtoyboot.