这份指南讲述了如何制作一份Gentoo Linux LiveUSB,或者换句话说就是如何使用一个U盘来模拟一张可运行于x86或AMD64平台的Gentoo Linux LiveCD。这在一些没有光驱而且又比较时新的笔记本(译者注:要支持USB设备启动)上安装Gentoo Linux时特别有用。
注意: 对于从可启动的CD镜像创建可启动的USB设备,sys-boot/unetbootin 软件包提供了更简单的方式。 |
虽然本指南专注于使用U盘来模拟Gentoo Linux LiveCD,你也可以把这种方法用在其它任意的块存储设备 (block device) 上,只需要将本文的一些指令中的设备名称相应地调整一下即可。
要使用Gentoo Linux LiveUSB,你应具备:
要制作一个LiveUSB,你还应当具备:
注意: 如果要制作一个minimal CD的LiveUSB或者要启动一个<i686的系统,应当使用2006.0 minimal CD镜像文件,因为更新的版本中存在一个bug。 |
警告: 下面的操作将会擦除你所用的这个U盘上所有的数据,因此首先要确认你已经对其中的数据进行了备份。 |
重要: 本指南假定所用的U盘设备路径是/dev/sdc,如果系统中还存在其它SCSI设备,请确认所用U盘的设备路径是正确的。 |
首先要使用fdisk在所用的U盘上创建一个FAT16格式的分区,而且要将其标记为可启动的。下面给出一个分区模式的示例:
注意: 如果所用的U盘是4GB或更大容量的,使用分区类型(Id)b (W95 FAT32)。 |
代码 2.1: 分区模式的示例 |
# fdisk -l /dev/sdc
Disk /dev/sdc: 2063 MB, 2063597056 bytes
255 heads, 63 sectors/track, 250 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 250 2008124+ 6 FAT16
|
使用mkdosfs在所用U盘上创建一个FAT16格式的文件系统:
注意: 如果所用U盘的容量为4GB或更大容量,使用-F 32来创建一个FAT32格式的文件系统。 |
代码 2.2: 使用mkdosfs创建文件系统 |
(确认系统已经安装了sys-fs/dosfstools) # emerge -av sys-fs/dosfstools # mkdosfs -F 16 /dev/sdc1 mkdosfs 2.11 (12 Mar 2005) |
从syslinux中将预先编译好主引导记录 (MBR) 安装到U盘上:
代码 2.3: 安装主引导记录 |
(确认系统已经安装了sys-boot/syslinux-3.00或更新的版本) # emerge -av '>sys-boot/syslinux-3' # dd if=/usr/share/syslinux/mbr.bin of=/dev/sdc 0+1 records in 0+1 records out 304 bytes (304 B) copied, 0.0162317 s, 18.7 kB/s |
在距离你最近的Gentoo Linux镜像站点,根据你的系统架构选择下载liveced-i686-installer-2007.0.iso或livecd-amd64-installer-2007.0.iso,然后将其挂载至/mnt/cdrom,操作如下:
代码 3.1: 挂载Gentoo Linux安装光盘镜像文件 |
(如果/mnt/cdrom目录不存在就创建之) # mkdir -p /mnt/cdrom # mount -o loop,ro -t iso9660 livecd-i686-installer-2007.0.iso /mnt/cdrom |
注意: 如果在挂在光盘镜像文件时碰到诸如Could not find any loop device一类的错误信息,应当在内核配置中启用Loopback device support,然后重新编译并安装内核。 |
将已经格式化完毕的U盘挂载至/mnt/usb,操作如下:
代码 3.2: 挂载U盘 |
(如果没有/mnt/usb目录,请自行建立) # mkdir -p /mnt/usb # mount -t vfat /dev/sdc1 /mnt/usb |
下面要将Gentoo Linux安装光盘镜像文件中的一些文件复制到LiveUSB中。在复制这些文件时,需要做一些小改动,我们要使用syslinux启动装载程序来替换isolinux程序。
代码 3.3: 复制文件 |
# cp -r /mnt/cdrom/* /mnt/usb # mv /mnt/usb/isolinux/* /mnt/usb # mv /mnt/usb/isolinux.cfg /mnt/usb/syslinux.cfg # rm -rf /mnt/usb/isolinux* (为了让系统由syslinux启动,需要对memtest86内核重命名) # mv /mnt/usb/memtest86 /mnt/usb/memtest |
现在可以取消Gentoo Linux安装光盘镜像文件的挂载:
代码 3.4: 取消安装光盘镜像文件的挂载 |
# umount /mnt/cdrom
|
下面使用sed调整syslinux配置文件,在配置文件中要添加slowusb参数,主要作用是在系统启动时挂载文件系统之前产生一小段时间的延迟,让系统装载程序可以检测到U盘设备。
代码 3.5: 调整启动参数 |
# sed -i \
-e "s:cdroot:cdroot slowusb:" \
-e "s:kernel memtest86:kernel memtest:" \
/mnt/usb/syslinux.cfg
|
在安装系统装载程序之前要确认已经卸载了U盘。
代码 4.1: 卸载U盘 |
# umount /mnt/usb
|
最后一步要将syslinux程序安装到U盘上:
代码 4.2: 执行syslinux |
# syslinux /dev/sdc1
|
重要: 在每一次修改syslinux.cfg文件之后都需要重新执行syslinux /dev/sdc1。 |
插入U盘并打开计算机,确认BIOS已经设成自USB启动模式。如果一切都准备就绪,那么你应当可以看到标准的syslinux提示。 syslinux prompt.
现在你可以根据Gentoo Handbook中讲述的安装步骤来安装Gentoo Linux了。
本文档的内容遵循知识共享-署名-相同方式共享许可协议