请注意:我在这里阅读了所有关于使用 GRUB2 从分区引导 ISO 的帖子,并基于此,我尝试了以下方法,但这是行不通的:
我有这些分区,我想从/dev/sda5
——应该用(hda0,5)
GRUB 术语引导 ISO。
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-uuid
和fromiso=
- 没有工作:
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 实际从安装在/mypart5
. 我得到"error: no such device"
或unknown filesystem
。请帮助我在这里缺少什么!
尝试这个: