我知道我的问题有很多评论。但我读了很多帖子,却没有一个能真正澄清我的问题。但也可能是我没有正确理解这个主题。
我的系统上有 4 个 SSD
/dev/nvme0n1
...
/dev/nvme0n1p5 reserved for ISO Files (UUID = 2E644A863FF78FC1)
...
/dev/nvme0n1p8 Ubuntu 22.04 (UUID = 84a89553-b126-40fd-9eed-36cca355fce8)
/dev/sda » data disk
/dev/sdb » data disk
/dev/sdc » data disk
在 Grub 中我有这个代码来加载我的 iso 文件
insmod ntfs
GRUB_DEVICE_UUID=2E644A863FF78FC1
set isofile="clonezilla-live-2022-06-20-jammy-x64.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt splash --
initrd (loop)/casper/initrd.lz
在启动时选择 ISO 文件后,我收到错误
Invalid file name clonezilla-live-2022-06-20-jammy-x64.iso
No Server specific
You need to load the kernel first
我做错了什么 ?
答案1
这是您需要的 grub.cfg 部分的副本:
### BEGIN /etc/grub.d/40_custom ###
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "Peppermint-10" {
set isofile="/Peppermint-10-20191210-amd64.iso"
loopback loop (/dev/nvme0np7)$isofile
linux (loop)/casper/vmlinux boot=casper iso-scan/filename=/Peppermint-10-20191210-amd64.iso noprompt noeject quit splash
initrd (loop)/casper/initrd.lz
}
### END /etc/grub.d/40_custom ###
将 menuentry 替换为您的。
将 partitionnumber 替换为您的。
将 .iso 的名称替换为您的 .iso 的确切名称。
该文件必须放在分区的根目录中(例如 nvme0np3/blah blah.iso)。
答案2
不幸的是,并非所有技巧都能立即奏效。Casper 仅当此文件夹及其文件也位于 ISO 上时才有效。作为初学者,您很快就会忽视这一点。LIVE 和 EFI 也是如此。
为了获得正确的 hd 和 gpt 设置,重新启动系统更有意义。在 Grub 中打开输入提示并运行简单的“ls”。
我还没有管理过 Windows 本身,但我认为这也不可能。因为 Windows 安装程序即使在重新启动后也需要访问文件。在这种情况下,grub 不会预安装 ISO,Windows 安装程序将失去继续安装的能力。
例如,启动 Kubuntu 22 ISO。但是,我能够成功使用此过程:
set iso="/kubuntu-22.04-desktop-amd64.iso"
insmod ext2
insmod loopback
insmod iso9660
loopback loop (hd3,gpt5)$iso
linux (loop)/casper/vmlinuz file=(loop)/preseed/kubuntu.seed noprompt boot=casper persistent iso-scan/filename=$iso quiet splash --
initrd (loop)/casper/initrd
GParted 和 Clonezilla 可以使用以下命令启动:
set iso="/gparted-live-1.4.0-5-amd64.iso"
loopback loop (hd3,gpt5)$iso
linuxefi (loop)/live/vmlinuz boot=live components config findiso=$iso ip=frommedia toram=filesystem.squashfs union=overlay
initrdefi (loop)/live/initrd.img
启动任何 ISO 的另一种方法是将 Ventoy 安装在硬盘上。虽然它最初是为移动数据载体设计的,但它也可以集成到本地 HDD/SSD 驱动器中。