我正在尝试将 ISO(Ubuntu 的替代发行版)添加到我的 GRUB 中。
这是输出fdisk -l
:
FDISK 输出
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00061b6d
Device Boot Start End Blocks Id System
/dev/sda1 * 1 9539 76614656 83 Linux
/dev/sda2 9539 9730 1533953 5 Extended
/dev/sda5 9539 9730 1533952 82 Linux swap / Solaris
Disk /dev/sdb: 250.1 GB, 250059350016 bytes
255 heads, 63 sectors/track, 30401 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x41ffc810
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 30401 244196001 c W95 FAT32 (LBA)
grub配置文件
menuentry "Ubuntu Alternate Install 10.10 32bit" {
loopback loop (hd0,0)/boot/ubuntu-10.10-alternate-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-10.10-alternate-i386.iso noprompt nomodeset
initrd (loop)/casper/initrd.lz
}
我像这样向 40_custom 文件添加了一个条目并执行了 sudo grub-update。
menuentry "Ubuntu Alternate Install 10.10 32bit" {
loopback loop (hd0,1)/boot/ubuntu-10.10-alternate-i386.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/boot/ubuntu-10.10-alternate-i386.iso noprompt nomodeset
initrd (loop)/casper/initrd.lz
但是当我从 GRUB 菜单中选择此选项时,我得到了“文件未找到,您需要加载内核等”的信息。我哪里做错了
答案1
根据http://pendrivelinux.com/downloads/multibootlinux/grub.cfg你必须省略(hd0,1):
menuentry "Ubuntu 10.10 Desktop ISO" {
loopback loop /ubuntu.iso
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu.iso noeject noprompt splash --
initrd (loop)/casper/initrd.lz
}
可以在以下网址找到使用 Grub2 从 USB 启动多个 ISO。您可能应该查看此页面并将这些步骤与您的设置进行比较。
祝你好运!
答案2
我试图让社区维基百科讨论这些主题,我只是从中复制我的答案这里以下。希望这能有所帮助!
因此,我创建了一个简单的文件39_iso
来/etc/grub.d/
加载我的 ISO。我有一份 Ubuntu 10.10、Clonezilla 和 SystemRescueCD 的副本。我的条目确保/iso/
在添加菜单条目之前 ISO 文件在里面可用。例如,Clonezilla 将加载到内存中,因此我可以随时克隆我的硬盘!
Ubuntu 10.10:
if test -e /iso/ubuntu-10.10-desktop-amd64.iso ; then
isofile="/iso/ubuntu-10.10-desktop-amd64.iso"
echo "Found Ubuntu 10.10 (x64) ISO: ${isofile}" >&2
cat << EOF
menuentry "Ubuntu 10.10 (x64) ISO"
{
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile
initrd (loop)/casper/initrd.lz
}
EOF
fi
克隆兹拉(Clonezilla):
if test -e /iso/clonezilla-live-1.2.6-24-amd64.iso ; then
isofile="/iso/clonezilla-live-1.2.6-24-amd64.iso"
echo "Found Clonezilla Live ISO: ${isofile}" >&2
cat << EOF
menuentry "Clonezilla Live 1.2.6-24-amd64 ISO"
{
loopback loop $isofile
linux (loop)/live/vmlinuz boot=live live-config union=aufs nolocales noprompt ocs_lang="en_US.UTF-8" ocs_live_keymap="NONE" vga=791 ip=frommedia toram=filesystem.squashfs findiso=$isofile
initrd (loop)/live/initrd.img
}
EOF
fi
系统救援光盘
if test -e /iso/systemrescuecd-x86-1.6.2.iso ; then
isofile="/iso/systemrescuecd-x86-1.6.2.iso"
echo "Found SystemRescueCD ISO: ${isofile}" >&2
cat << EOF
menuentry "SystemRescueCD 1.6.2 (x64) ISO"
{
loopback loop $isofile
linux (loop)/isolinux/rescue64 setkmap=us docache isoloop=$isofile
initrd (loop)/isolinux/initram.igz
}
EOF
fi
我还修复了 GRUB 将 Windows 7 命名为Windows 7 (loader)
更美观的名称,例如Windows 7 Professional (x64)
:
if [ "${LONGNAME}" = "Windows 7 (loader)" ] ; then
LONGNAME="Windows 7 Professional (x64)"
elif [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
它替换了如下部分:
if [ -z "${LONGNAME}" ] ; then
LONGNAME="${LABEL}"
fi
30_os-proper
GRUB内部