Linux 在指尖上

作者:Joey Bernard

本期 Linux Journal 完全是关于如何将 Linux 装入口袋的。在本文中,我更进一步,告诉您如何将 Linux 装在指甲上。现在,在您过于兴奋之前,很遗憾,我不会讨论詹姆斯·邦德使用的一些新型纳米计算机。相反,我讨论如何将 Linux 放在 micro-SD 卡(或任何其他 USB 驱动器,就此而言)上。使用它,您可以在任何可以从 USB 设备启动的机器上运行 Linux。

UNetbootin (http://unetbootin.sourceforge.net) 是首批受到广泛关注和使用的实用程序之一。此应用程序在 Linux 和 Windows 下均可用。它内置支持下载和安装多个 Linux 发行版,包括 Ubuntu、Fedora、Debian、PCLinuxOS、Linux Mint、Sabayon Linux、openSUSE、Gentoo、Arch Linux、MEPIS 和许多其他发行版。

图 1. UNetbootin

UNetbootin 还能够加载几个不同的系统实用程序,例如以下这些

  • Parted Magic:一个分区管理器,可以调整大小、修复、备份和恢复分区。
  • SystemRescueCD:一个系统修复、备份和恢复工具。
  • Super Grub Disk:一个启动实用程序,用于恢复和修复 GRUB 安装。
  • Backtrack:一个用于网络分析和渗透测试的实用程序。
  • Ophcrack:一个用于恢复 Windows 密码的实用程序。
  • Smart Boot Manager:在 BIOS 故障的机器上从 CD-ROM 和软盘驱动器启动。
  • FreeDOS:一个开源 DOS,允许您运行 BIOS 刷新实用程序或普通的 DOS。

UNetbootin 可以自动下载所有这些发行版的正确 ISO 映像,或者您可以下载(或创建)您自己的 ISO 映像并将文件名交给 UNetbootin。在任何一种情况下,下一步都是从映像中提取所有文件,以便可以将它们复制到 USB 驱动器。您要使用的 USB 驱动器需要已格式化文件系统。一旦所有文件都被提取出来,UNetbootin 就会使用一些启发式方法来找出内核和 initrd 文件隐藏的位置,并将它们放入 /ubnkern 和 /ubninit。然后,它会遍历 ISO 中的启动配置文件,以尝试找出需要在 USB 驱动器上设置哪些启动选项。一旦它弄清楚了这一点,它会将这些选项放入配置文件 /syslinux.cfg 中。然后,UNetbootin 使用 Syslinux 使 USB 驱动器可启动,您应该就可以开始了。

另一个开始引起广泛关注的实用程序是 usb-creator (https://launchpad.net/usb-creator)。此程序是创建 Ubuntu Live CD 的 Live USB 版本的官方工具。此实用程序始于 Ubuntu 的 8.04 版本。KDE 前端出现在 8.10 版本中,Windows 版本目前正在开发中。此实用程序可以执行与 UNetbootin 类似的工作。它内置了创建 Ubuntu Live USB 的能力,但这还不是全部。与 UNetbootin 一样,usb-creator 可以获取任意 ISO 映像并将其复制到您的 USB 驱动器上。它甚至可以从您的 CD 驱动器中取出 CD-ROM 并将其内容复制到您的 USB 驱动器上。选择源和目标,然后运行即可,这很简单。

图 2. usb-creator

usb-creator 的一大优势是它可以非常轻松地为您创建持久性 Live USB。USB 驱动器上超出 OS 文件所需空间的任何额外空间都可以用作持久性文件的可写空间。这意味着您对系统所做的任何更改都将写入 USB 驱动器。您甚至可以选择在关机时清除持久性空间。这样,您可以将 USB 驱动器用作完整的操作系统,就像它在您的硬盘驱动器上一样。瞧,指尖上的 Linux。

所有这些技术都要求您拥有 Live CD 或 Live CD 的 ISO 映像。但是,如果您想更低级一些,更从头开始呢?您可以使用的工具之一是 Syslinux ()。Syslinux 实际上是一套不同的程序,用于从许多不同的介质启动,包括

  • syslinux:从 FAT 文件系统启动。
  • pxelinux:网络启动。
  • isolinux:可启动的 “El Torito” CD-ROM。
  • extlinux:从 ext2/ext3/ext4 或 btrfs 文件系统启动。
  • memdisk:一个从非传统介质启动旧版操作系统的工具。

Syslinux 安装到您设备的引导扇区,并将文件 LDLINUX.SYS 的副本放入根目录。然后,它从实际的文件系统加载内核和其他 OS 文件。由于文件系统只是一个简单的 FAT 文件系统,因此可以使用标准 DOS 工具来操作所有文件,包括内核。默认情况下,Syslinux 假定内核位于启动盘上名为 LINUX 的文件中。可以在配置文件中更改此默认值。如果您在启动时按住 Shift 或 Alt 键,Syslinux 会显示 LILO 样式的 “boot:” 提示符,您可以在其中输入内核文件名和选项。

Syslinux 按以下顺序搜索其配置文件:/boot/syslinux/syslinux.cfg、/syslinux/syslinux.cfg、/syslinux.cfg。

在此文件中,您可以设置参数来更改所有默认设置。配置文件中的任何文件名都相对于 syslinux.cfg 所在的目录,除非它是完整路径。一个基本示例如下所示

DEFAULT linux
LABEL linux
  SAY Now booting the kernel from SYSLINUX...
  KERNEL vmlinuz.img
  APPEND ro root=/dev/sda1 initrd=initrd.img

Syslinux 支持的内核类型不需要是常规 Linux 内核映像。它们可以是 PXE 引导程序、引导扇区或 COMBOOT 映像。

这些技术和实用程序应该为您充分利用 USB 驱动器提供良好的开端。您现在可以将整个操作系统随身携带。这基本上就是我对我的旧 Eee PC 所做的事情。借助 USB 上的 Linux,我可以将相同的系统保留在那里,并在我的 MacBook 上通过 Parallels 使用。您还可以在基本上任何可以从 USB 启动的机器上使用相同的系统。玩得开心,发挥创造力。

加载 Disqus 评论