MobtgZhang/VHD-Boot

[功能支持]支持qemu-nbd下动态vhd挂载

Opened this issue · 3 comments

fedora/arch 下无法编译vdfuse 使用qemu-nbd代替方案,
qemu-nbd代替方案代替中出现卡在dract-initqueue timeout
希望可以有成功的qemu-nbd代替方案实现

收到建议,我在编译之后也发现Fedora系列同样的问题,后续也尝试采用qemu-nbd方案。
virtual-box组件也需要重新调整一下。

这是我测试可行的一个 也许可以提供一个验证方式
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 /bin

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 /qemu-nbd -c /dev/nbd1 /vdhost$vdisk
mount -t ext4 $ROOT ${rootmnt}

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

@MobtgZhang hi Fedora是否有qemu-nbd方案实现