我使用 GRUB 创建了一个多重引导的可引导 USB,并用它成功安装了 Debian 8.1。多重引导 USB 是一种包含多个操作系统的 ISO 映像的 USB,使用 GRUB 来选择引导哪一个。
对于 Debian,它是一个关键:
Debian 8.1 ISO 应该是混合型的。我从下载的
http://ftp.nl.debian.org/debian-cd/8.1.0-live/amd64/bt-hybrid/和
vmlinuz
文件initrd.gz
应该是hd-median
用于 debian-installer。我从下载它们 http://ftp.nl.debian.org/debian/dists/jessie/main/installer-i386/current/images/hd-media/
grub.cfg
安装 Debian 8.1 的文件是:
menuentry 'to install Debian 8.1 from usb' {
insmod part_msdos
insmod ext2
set isofile="(hd0)/debian-8.1/debian-8.1-hybrid.iso"
loopback loop $isofile
linux (hd0)/debian-8.1/vmlinuz
initrd (hd0)/debian-8.1/initrd.gz
}
现在,我想将 CentOS 7 添加到同一个 USB 驱动器,并能够从 GRUB 菜单启动它。 CentOS ISO 共有三种:
- DVD光盘
- 一切ISO
- 最小ISO
CentOS 没有像 Debian 那样的混合 ISO。我应该使用哪种 ISO 文件和vmlinuz
,initrd.gz
文件从 USB 安装 CentOS?我应该如何配置 GRUB 来引导 CentOS 7 ISO?
我已经测试过:
- 我下载了
CentOS-7-x86_64-LiveCD-1503.iso
- 我安装了 ISO 并
vmlinuz0
从initrd0.img
目录中isolinux
复制 我创建了一个
grub.cfg
条目,如下所示:menuentry 'to install centos7.1 from usb' { insmod part_msdos insmod ext2 insmod ntfs set isofile="(hd0,0)/centos-7.1/CentOS-7-x86_64-LiveCD-1503.iso" loopback loop $isofile linux (hd0,0)/centos-7.1/vmlinuz0 initrd (hd0,0)/centos-7.1/initrd0.img }
我收到以下错误:
我使用的 USB HDD 的目录结构如下:
├── boot
│ └── grub
│ ├── fonts
│ │ └── unicode.pf2
│ ├── grub.cfg
│ ├── grubenv
│ ├── i386-pc
│ │ ├── 915resolution.mod
│ │ └── zfs.mod
│ └── locale
│ ├── ast.mo
│ ├── ca.mo
│ ├── da.mo
│ ├── vi.mo
│ ├── zh_CN.mo
│ └── zh_TW.mo
├── centos-7.1
│ ├── CentOS-7-x86_64-LiveCD-1503.iso
│ ├── initrd0.img
│ └── vmlinuz0
├── debian-8.1
│ ├── debian-8.1-hybrid.iso
│ ├── initrd.gz
│ └── vmlinuz
为了简单起见,删除了许多子目录。
答案1
当您引用 vmlinuz 文件的位置时,您是从 ISO 的根目录引用的,因此您的 centos-7.1 目录是错误的。
要从已标记为 Live CD 的官方 ISO 启动,您必须进行一些修改。
首先要确定 vmlinuz 和 initrd 是什么,我将挂载 iso 映像,并找到 vmlinuz 和 initrd 所在的目录。这是你必须在 (hd0,0) 之后写入 grub.cfg 的目录(顺便说一句,它应该是环形,而不是 (hd0,0)) 替换 centos-7.1 我还会检查其配置脚本以查看是否需要某些选项并添加这些选项。
无论如何,你有一个向导这里
答案2
答案3
在我的情况下,grub.cfg 的正确格式应该如下:
menuentry "to install CentOS-7.0-1406-x86_64-DVD" {
insmod part_msdos
insmod ext2
insmod ntfs
set isofile='(hd0)/centos-7.1/CentOS-7-x86_64-DVD-1503-01.iso'
loopback loop $isofile
linux (loop)/isolinux/vmlinuz noeject inst.stage2=hd:/dev/sdb:/centos-7.1/CentOS-7-x86_64-DVD-1503-01.iso
initrd (loop)/isolinux/initrd.img
}