做了一个 Fedora 14 的 live usb 盘

当年我翻译的这篇文档 Gentoo Linux LiveUSB HOWTO 虽然有几处翻译上的低级错误,现在貌似还是万能的,只是很惭愧,因为懒惰没有更新。

但是,只靠那篇文档来制作 Fedora 14 的 live usb 是不行的,启动时会提示“No root device found. Boot has failed, sleeping forever”。

这是因为 Fedora 14  live cd 里的 isolinux.cfg 文件在指定 root 分区时用的是光盘卷标,而对于我们所制作的 live usb,没有为分区设置卷标,所以导致内核启动时找不到 root 区。

解决方案两种,第一种方案是为 live usb 的分区设定与 isolinux.cfg 一致的卷标,这种方案因为还需要我去 google 上百度一下 Linux 的卷标设置命令,便未采用。第二种方案是不使用卷标,而使用 usb 盘的 uuid,步骤如下:

(1)使用命令`ls -l /dev/disk/by-uuid/`,查看 usb 盘的 uuid,例如:

$ ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Jan 28 08:55 3074d378-18aa-4ca0-8e72-80b11b76d82e -> ../../sda6
lrwxrwxrwx 1 root root 10 Jan 28 09:17 58B9-170B -> ../../sdb1
lrwxrwxrwx 1 root root 10 Jan 28  2011 94566E61566E43D8 -> ../../sda1
lrwxrwxrwx 1 root root 10 Jan 28 08:55 a4a6ae62-10a1-4a0a-b557-efbb6478c3de -> ../../sda7
lrwxrwxrwx 1 root root 10 Jan 28  2011 D40C96740C96517A -> ../../sda5

那个 sdb1 分区对应的“58B9-170B”就是我的 usb 盘的 uuid。如果对于 uuid 的知识比较陌生,推荐阅读“用 UUID 在 fstab 中挂载分区”。

(2)将 live usb 盘中的 syslinux.cfg 文件中的所有“root=live:LABEL=Fedora-14-i686-Live-SoaS”替换为“root=live:UUID=58B9-170B”。

这样,便成功的将 Fedora 14  live cd 转化为 Fedora 14 live usb 盘。使用这一 live usb 盘,我顺利的将上网本中莫名其妙崩溃了的 sabayong 换成了 Fedora 14。