使用 grub2 启动 ISO

使用 grub2 启动 ISO

我使用的是 Linux Mint 10,它安装在sda8.

我编辑/etc/grub.d/40_custom

#!/bin/sh
echo "Adding 40_custom.">&2
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 "fedora ISO" {
    loopback loop (hd0,8)/boot/iso/Fedora-14-i386-DVD.iso
    linux  (loop)/isolinux/vmlinuz boot=isolinux iso-scan/filename=/boot/iso/Fedora$
    initrd (loop)/isolinux/initrd.img
}

然后我就跑了sudo update-grub2。重新启动后,我选择“Fedora ISO”。计算机重新启动。

我尝试跟随本指南,但没有成功。

boot我是否需要更改和文件夹的文件权限casper或者存在其他问题?

答案1

您必须确保这些行指向正确的文件位置。例如,我有一个 Fedora ISO,但我找不到该文件/boot/vmlinuz/boot/initrd.img在其中。至少你应该:

menuentry "Fedora ISO" {
    loopback loop (hd0,8)/path/to/Fedora-14-i386-DVD.iso
    linux (loop)/isolinux/vmlinuz0 boot=isolinux iso-scan/filename=/Fedora13.iso splash --
    initrd (loop)/isolinux/initrd0.img
}

也许您误解了这一点,但是linux上面initrd指向的是 ISO 内的条目,而不是硬盘上的条目。

答案2

我尝试使用 Grub2 使用 Fedora、CentOS Live CD 直接启动到 .iso`` 文件,但失败了。我认为这是因为他们使用 CD 的标签来检测根设备。我已将 Fedora 的 ISO 内容提取到一个文件夹中,并将其与以下内容挂钩:

menuentry "Fedora 16 [GNOME] (x86_64)" --class fedora --class os {
  linux /boot/iso/Fedora-16-x86_64-Live-GNOME/isolinux/vmlinuz0 root=UUID=DB92-7E14 rootfstype=vfat ro liveimg quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0
  initrd /boot/iso/Fedora-16-x86_64-Live-GNOME/isolinux/initrd0.img
}

您可以使用以下命令行找到启动分区 UUID:

ls -lh /dev/disk/by-uuid/

请记住将您的启动分区类型更改为您的。

相关内容