|
楼主 |
发表于 2023-9-27 07:55
|
显示全部楼层
veket自身当然是不支持vhd驱动。
要想linux支持vhd,需要魔改initrd,借助vdfuse开源项目virtualbox的内核模块读写virtualbox支持的格式(至少有vmdk、vhd、vdi),从而挂载出loop,并可以支持动态大小的虚拟磁盘文件。有许多待解决的问题:
initramfs-tool方案难以解决关机Buffer IO问题
启动菜单也需要修改,类似下面的:
iftitle [ find --set-root --ignore-floppies --ignore-cd VMs/LinuxWorkspace/LinuxWorkspace.vmdk ] 启动Ubuntu
find --set-root --ignore-floppies --ignore-cd /VMs/LinuxWorkspace/LinuxWorkspace.vmdk
uuid ()
kernel /ubuntuvm-vhd-helper/vmlinuz rw rd.hostdev=UUID=%?% rd.vdisk=/VMs/LinuxWorkspace/LinuxWorkspace.vmdk rd.vdloop=/dev/vdhost/Partition1 rd.debug rd.shell verbose nomodeset
vdfuseloop:支持更多格式虚拟磁盘启动的Linux方式(vdi/vmdk/vhd等) - VHD系统区 - 无忧启动论坛 - Powered by Discuz!
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=418705
或者用kpartx方案,都是挺折腾的。
ventoy可能也是采用了类似的驱动,不过进行了重新封装,让启动vhd更加简单,我没有兴趣,所以没有尝试。如果要用ventoy启动veket.vhd,还需要在虚拟机中安装折腾一遍,再灌入vhd,太折腾了。
veket不需要这些,因为它本身就可以原生支持从iso整体启动,而且可以保存配置和软件到4fs文件中。只要能整体启动就可以,何必在意文件格式是iso还是vhd?
|
|