GRUB:从不同的分区启动 ISO

GRUB:从不同的分区启动 ISO

请注意:我阅读了这里所有关于使用 GRUB2 从分区启动 ISO 的帖子,并基于此尝试了以下操作,但不起作用:

我有这些分区,并且我想从中启动 ISO——/dev/sda5应该是(hda0,5)GRUB 术语。

root@myhost:/home/vyom# lsblk 
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    30G  0 disk 
`-sda1   8:1    0   243M  0 part [SWAP]
`-sda2   8:2    0  11.2G  0 part /
`-sda3   8:3    0     1K  0 part 
`-sda5   8:5    0   9.3G  0 part /mypart5    <<<
`-sda6   8:6    0   9.3G  0 part /mypart6
root@myhost:/home/vyom# blkid
/dev/sda1: UUID="79813f4a-85da-4c81-a044-097922b30648" TYPE="swap" 
/dev/sda2: UUID="68923f34-385e-4740-b8af-4502aa3dd847" TYPE="ext4" 
/dev/sda5: UUID="ef7ca072-bfc9-457b-8a9e-b923fa0d3fe7" TYPE="ext4"   <<<
/dev/sda6: UUID="d8bd9333-dc41-47b3-8a42-f6c308a6f047" TYPE="ext4" 

我尝试使用 UUID,--fs-uuidfromiso=没有效果:

menuentry 'UbuntuBionicVSCustom4' --class ubuntu --class gnu-linux --class gnu --class os {
   set isofile="/mypart5/ubuntu-18.04-3f8806d-test2.iso" 
   insmod ext2
   insmod loopback
   insmod iso9660
   loopback loop (hd0,5)$isofile
   search --no-floppy --fs-uuid --set=root ef7ca072-bfc9-457b-8a9e-b923fa0d3fe7
   linux (loop)/install/vmlinuz boot=install fromiso=/dev/sda5/$isofile noprompt noeject
   initrd (loop)/install/initrd.gz
}

我尝试了--file以下选项search- 但也没有用:

menuentry 'UbuntuBionicVSCustom3' --class ubuntu --class gnu-linux --class gnu --class os {
   set isofile="/mypart5/versa-flexvnf-3f8806d-21.2.1-B-S.iso"
   insmod ext2
   insmod part_msdos
   insmod lvm
   insmod loopback
   insmod iso9660
   search --file --no-floppy --set=root "${isofile}"
   loopback loop "(${root})${isofile}"
   linux (loop)/install/vmlinuz boot=install findiso="${isofile}" noprompt noeject
   initrd (loop)/install/initrd.gz
}

ISO 文件实际上位于:/mypart5/ubuntu-18.04-3f8806d-test2.iso

那么我应该这样做:

   set isofile="/mypart5/ubuntu-18.04-3f8806d-test2.iso"

要不就:

   set isofile="ubuntu-18.04-3f8806d-test2.iso"

因此,接下来我可以这样做:

   loopback loop (hd0,5)$isofile

另外,我对内核命令行选项感到困惑,我应该使用:

     fromiso=/dev/sda5/$isofile

或者

     findiso="${isofile}"

或者

     iso-scan/filename=${isofile}

或者

     isoloop=/${isofile}

我无法让 GRUB 真正从安装在 上的分区 /dev/sda5 中选择文件/mypart5。我得到"error: no such device"unknown filesystem。请帮助我解决我在这里遗漏了什么!

答案1

尝试这个:

menuentry 'UbuntuBionicVSCustom3' {
  set root='hd0,5'
  set isofile=/ubuntu-18.04-3f8806d-test2.iso
  loopback loop $isofile
  linux (loop)/install/vmlinuz boot=install iso-scan/filename="${isofile}" noprompt noeject
  initrd (loop)/install/initrd.gz
}

相关内容