Installing Arch Linux on a USB key (简体中文)

翻译状态: 本文是英文页面 Installing_Arch_Linux_on_a_USB_key翻译,最后翻译时间:2014-06-08,点击这里可以查看翻译后英文页面的改动。

本页讨论如何在U盘(闪存盘)上安装一个常规的 Arch,这里的系统是指一个可以升级和使用的系统,而不是一个用来引导系统启动的USB 安装媒介

相信各位在此之前应该有接触安装过arch,故本页面不涉及更多安装详情,只提U盘系统需注意事项。安装详情更多请对照Beginners' guide

准备

如果打算安装 KDE 之类大容量的应用程序,建议至少准备一个 3GiB 的U盘。GNOME 和 Xfce4 的话,如果只安装常用桌面包,(GIMP, Pidgin, OpenOffice, Firefox, flashplugin),可以安装到 2GiB U盘中,给用户数据留一些空间。

将 Arch 安装到 USB 有多种方式,最简单的方法是从 Arch 中安装:

  • 启动到 Arch 系统中,安装 软件包 arch-install-scripts,然后按照 安装指南 进行安装。只不过安装的目标不再是 /dev/sda. 通过 $ lsblk 确定优盘对应的 /dev/sd* 设备号。
警告: 如果错误的格式化了/dev/sda,整个硬盘数据都会丢失。
  • 启动到 Arch 安装光盘/优盘,安装目标是另外一个优盘。
  • 如果你有别的 linux 电脑(不一定是 Arch),你也可以参考这篇文章 从现有的 Linux 系统进行安装,并跳过配置部分。

安装

按照安装指南进行安装,仅需注意以下几点:

  • 如果 cfdisk 由于 "Partition ends in the final partial cylinder" 这个错误失败,唯一的解决方法就是干掉U盘上的所有分区。打开另一个终端(Alt+F2),输入 fdisk /dev/sdX (sdX 对应你的 U盘),显示分区表(p),查看,删除掉已存在的分区(d)然后保存修改(w)。最后,再进 cfdisk。
  • 强烈建议,关于如何选择文件系统的问题,请先阅读一下 SSD 这篇文章 关于优化 SSD 固态硬盘读写的技巧,总地来说,不带日志(journal)功能的 ext4 是比较通用的优选方案。因为带日志功能的文件系统日志更新会在一定程度上消耗闪存有限的写入寿命。由于同样的原因,最好放弃 swap 分区。注意这个建议并不适用于安装在 USB(机械)硬盘的情况。
  • # mkinitcpio -p linux创建 RAM Disk 前,在修改 /etc/mkinitcpio.conf,将 block 添加到紧挨 udev 的后面. 只有这样早期用户空间才能正确的装入模块。
  • 如果想在其它操作系统上继续使用优盘,可以使用 NTFS 或 exFAT 创建数据分区. 数据分区需要是设备的第一个分区,因为 Windows 会假定移动设备仅有一个分区。需要安装 dosfstoolsntfs-3g.网上有一些工具可以翻转U盘的可移动媒体位使得操作系统把它当作额外的硬盘,这样你就可以使用你选择的任意磁盘划分方式。
警告: 因为不是所有的U盘都可以翻转可移动媒体位而且使用不成熟的软件进行操作可能会损坏你的设备,所以不推荐使用翻转可移动媒体位的方法
  • 安装NetworkManager来管理网络,它可以改变不同硬件的接口名称

配置

请确认在 /etc/fstab 中的 / 目录分区信息和 U盘中的所有分区信息都要正确。如果这个U盘会用来启动多台电脑,建议使用UUID方式生成fstab 和启动管理器配置,详情参阅 Persistent block device naming

使用blkid可以获取各个分区的 UUID 属性,当前的 GRUB已经默认使用 UUID。

注意:
  • 如果U盘上安装了 GRUB,U盘总是 hd0,0
  • 当前版本的GRUB默认使用UUID,下面的指南是针对GRUB legacy的。

GRUB legacy

GRUB legacy的配置文件menu.lst 应该大致如下进行编辑:

使用固定的/dev/sdaX:

root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro
initrd /boot/initramfs-linux.img

使用标签时,你的配置文件应该像这样:

root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/disk/by-label/Arch ro
initrd /boot/initramfs-linux.img

使用UUID时应该像这样:

root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/disk/by-uuid/3a9f8929-627b-4667-9db4-388c4eaaf9fa ro
initrd /boot/initramfs-linux.img

Syslinux

使用固定的/dev/sdaX:

LABEL Arch
        MENU LABEL Arch Linux
        LINUX ../vmlinuz-linux
        APPEND root=/dev/sdax ro
        INITRD ../initramfs-linux.img

使用UUID:

LABEL Arch
        MENU LABEL Arch Linux
        LINUX ../vmlinuz-linux
        APPEND root=UUID=3a9f8929-627b-4667-9db4-388c4eaaf9fa ro
        INITRD ../initramfs-linux.img

小技巧

在多个机器上使用优盘

架构

i686 架构可以在 32位和 64位系统上使用,而且 32位二进制软件包会减少空间占用。

注意: 如果要 Chroot 到 64 位系统,必须使用 x86_64 Arch.

输入设备

要支持笔记本,请安装 xf86-input-synaptics,详情参阅 Touchpad Synaptics.

显卡驱动

不要使用非开源驱动,建议安装的驱动: xf86-video-vesa mesa xf86-video-ati xf86-video-intel xf86-video-nouveau xf86-video-nv.

同时安装32位软件库:lib32-ati-dri[broken link: replaced by lib32-mesa] lib32-intel-dri[broken link: replaced by lib32-mesa] lib32-nouveau-dri[broken link: replaced by lib32-mesa].

兼容性

使用 fallback 内核可以获得最大的兼容性。

参阅