我尝试使用 Grub 从硬盘上的 ISO 映像(经过 SHA256 验证)启动 Fedora 14 Live CD。
我将 Fedora-14-x86_64-Live-Desktop.iso 放在 FAT32 分区 D: (sda5) 的根目录中,然后从此 ISO 中提取 isolinux,并将其放在 D:
我按照isolinux.cfg文件,写了一个menu.lst,内容如下:
title Fedora 14 Live CD
root (hd0,4)
kernel (hd0,4)/isolinux/vmlinuz0 root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet rhgb
initrd (hd0,4)/isolinux/initrd0.img
然而 Grub 告诉我:
未找到根设备。
启动失败。永久休眠。
以下是 isolinux.cfg 的内容:
[...]
label linux0
menu label Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM
menu default
label linux0
menu label Boot (Basic Video)
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet rhgb rd_NO_LUKS rd_NO_MD rd_NO_DM xdriver=vesa nomodeset
label check0
menu label Verify and Boot
kernel vmlinuz0
append initrd=initrd0.img root=live:CDLABEL=Fedora-14-x86_64-Live-Desktop rootfstype=auto ro liveimg quiet rhgb check
label memtest
menu label Memory Test
kernel memtest
label local
menu label Boot from local drive
localboot 0xffff
这可能是与此处发布的错误相关的问题:UNetbootin 中的 Bug 515008 Fedora 12 硬盘安装的 menu_lst 中的 Root 不正确
我将 ISO 映像的所有内容提取到 FAT32 分区。我还用 ISO 文件所在分区的 UUID 替换了“根”的 CDLABEL。接下来,我使用以下内容修改了 menu.lst 的条目:
title Fedora 14 Live CD
root (hd0,4)
kernel (hd0,4)/isolinux/vmlinuz0 root=UUID=My_UUID_of_the_partition rootfstype=auto ro liveimg quiet rhgb
initrd (hd0,4)/isolinux/initrd0.img
但是,我仍然无法直接启动硬盘上的 ISO 映像。有什么想法吗?
答案1
对我有用的方法是提取/LiveOS
、/isolinux/vmlinuz0
和/isolinux/initrd0.img
文件,然后将它们复制到我要从中启动的分区的根目录中。然后我在引导加载程序中设置内核参数,如下所示:
root=live:LABEL=disklabel rootfstype=auto ro liveimg quiet rhgb rd.luks=0 rd.md=0 rd.dm=0 rd.live.check
在哪里磁盘标签live:
是分区的标签(即使用 e2label 等设置的标签)。在您的示例中,尽管您使用的是 UUID,但缺少root 之后的部分。
答案2
可能是您未能“运行”引导加载程序。当您想将任何引导配置存储到硬盘的 MasterBootRecord (MBR) 时,您必须运行引导加载程序,对于 IsoLinux / Grub,这通常是从 Linux shell 完成的。引导加载程序会解释随附的配置文件,并将代码写入 MBR。
您可以使用 CD/LiveUSB 上的 SysRescueCD 从 CD/USB 启动到 Linux shell,然后从 Linux shell 运行 Grub 或 syslinux。如果这不是一个选项,而您想从 Windows 执行此操作,您可以查看GRUB4DOS作为在 Windows 上运行 Grub 的方法,或说明这里为了Windows 上的 SysLinux(我认为,解压 zip,从 DOS 命令行运行 syslinux?)。
注意 syslinux.cfg 文件与 IsoLinux 相关,menu.lst 与 Grub 相关。您只需要其中之一。选择哪一个,取决于个人选择和方便程度。
请注意,isolinux 旨在从 ISO 文件系统 (CD Rom) 启动。但是,如果我理解正确的话,您将文件复制到了 Windows 分区,可能是 FAT。要从 FAT 启动,您需要 syslinux (而不是 isolinux)。为此,您唯一要做的就是将文件“isolinux.cfg”重命名为“syslinux.cfg”,并将“isolinux”目录重命名为“syslinux”。
答案3
我认为你必须将 iso 映像提取到 cd 中,然后重新启动,它应该会安装