|
本帖最后由 linpinger 于 2023-5-16 16:04 编辑
用ventoyU盘引导硬盘上的linux.vdi.vtoy成功,更进一步想从硬盘直接引导,翻完了这个帖子,最后选定grub2来引导,操作方法如下:
- set timeout=3
- menuentry "Windows efi" {
- search --no-floppy --set --file /EFI/Microsoft/Boot/bootmgfw.efi
- chainloader /EFI/Microsoft/Boot/bootmgfw.efi
- }
- menuentry "linux.vdi.vtoy" {
- search --no-floppy --set --file /etc/vdi/vdiskchain
- chainloader /etc/vdi/vdiskchain vdisk=/etc/vdi/linux.vdi.vtoy
- }
- menuentry "Reboot" {
- reboot
- }
- menuentry "Halt" {
- halt
- }
复制代码
- 步骤2: 使用bootice给efi分区分配盘符,或进PE,一般都会有EFI分区挂载好了,将grub2.efi和grub.cfg,放到 /EFI/Boot/ 目录下
- 步骤3: 使用bootice给UEFI添加启动序列,启动文件选/EFI/Boot/grub2.efi,并移到最顶端,成为默认
- 这样即OK了
- win启动过程是: grub2.efi -> grub.cfg -> /EFI/Microsoft/Boot/bootmgfw.efi -> /EFI/Microsoft/Boot/bcd
- linux.vdi.vtoy启动过程是: grub2.efi -> grub.cfg -> vdiskchain -> linux.vdi.vtoy -> grub2 in vdi
- 要恢复原始的引导,只要删除添加的启动序列,删除grub2.efi,grub.cfg, C:/etc/vdi 目录下的文件即可
另外,刚才测试了grub4dos-for_UEFI-2023-03-29,支持chainloader的写法,用kernel initrd的写法会出错
最后感谢各位大佬开发出来ventoy这样的软件,以上理解如果有误,希望指正
|
|