- Home
- Packages
- Forums
- Wiki
- Bugs
- AUR
- Download

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

From ArchWiki

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

## 准备一个足够大的 U盘

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

## 准备一张光盘

Arch Linux 光盘是用来往U盘里安装系统用的，方法是通过光盘启动计算机，并通过运行命令 `/arch/setup` 执行 AIF。或者，如果你有别的 linux 电脑（不一定是 Arch),你也可以参考这篇文章 从现有的 Linux 系统进行安装，并跳过配置部分。

## 安装

启动安装器 (`/arch/setup`)。设置程序将会启动，仅需注意以下几点：

- 最好手动设置分区，因为自动分区很可能无法工作，还可能创建一些不必要的分区
- 如果 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 硬盘的情况。
- 编辑 /etc/mkinitcpio.conf 时，在 udev 后面紧跟着添加 usb。这样才能尽早进行模块读取(这句貌似有问题，原文 This is necessary for appropriate module loading in early userspace.)。

     译注：根据译者实测，以及参考 Install_from_Existing_Linux_(简体中文) 文中的 troubleshooting 章节，usb 作为 HOOKS 中的第一项是可行的

## 配置

- 确认在 /etc/fstab 中的 / 目录分区信息和 U盘中的所有分区信息都要正确。如果这个U盘会用来启动多台电脑，那么还可能需要一些空间来保存设备驱动。

对于blkid问题，需要获取你的各个分区的 UUID 属性

- menu.lst，这是 Grub 的配置文件，可以参考如下方式编辑：

注意: grub 安装到U盘之后，当前U盘将成为 hd0,0

静态方式 /dev/sdaX:

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

如果使用标签，你的 menu.lst 可能是这样：

    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

## 小技巧

### 不用 UUID，无痛地启动不同计算机

当你在多个不同电脑上使用同一个U盘时，对于不同配置采用多个 GRUB 实体会很有帮助。比如 GRUB 配置可能是这个样子：

    # (0) Arch Linux
    title  Arch Linux (first drive)
    root   (hd0,0)
    kernel /boot/vmlinuz-linux root=/dev/sda1 ro
    initrd /boot/initramfs-linux.img

也可能是这个样子

    # (1) Arch Linux
    title  Arch Linux (second drive)
    root   (hd0,0)
    kernel /boot/vmlinuz-linux root=/dev/sdb1 ro
    initrd /boot/initramfs-linux.img

诸如此类，允许你根据不同电脑选择更多不同的配置。然而，对 GRUB 中 `root=` 进行的改变，不会影响 /etc/fstab，因此你必须再做一些事情 (在我们的例子里使用 udev 链接)，这样 root 分区才能正确挂在

- Run `udevinfo -p /sys/block/sdx/ -a` (where sdx is the device name of your usb key)
- Find unique information pertaining to your usb key. I chose ``SYSFS{model}=="DataTraveler 2.0"``
- Make a new file: /etc/udev/udev.rules/10-my-usb-key.rules and insert: `KERNEL=="sd**", SYSFS{product}=="DataTraveler 2.0", SYMLINK+="WHATEVERYOUWANTOTCALLIT%n"` (`KERNEL=="sd**"` is because the kernel - 2.6.16 here - names all usb devices sd as it uses the scsi sub-system and you want to look at every sd device and apply the setting to every partition), with `SYSFS{model}==` being the unique identifier collected from udevinfo.
- Run `/etc/start-udev uevents` and make sure the symlinks appears in /dev.
- If so, edit /etc/fstab, replacing your old sdx with the new symlinks.

### 针对闪存寿命的优化

- 再次强烈建议！请翻阅 固态硬盘 wiki 文档中关于 优化 SSD 固态硬盘的读写技巧

## 更多信息

- 官方安装指南
- Installing Arch Linux from VirtualBox
- 固态硬盘

Retrieved from "https://wiki.archlinux.org/index.php?title=Installing_Arch_Linux_on_a_USB_key_(简体中文)&oldid=239895"
Categories:

- 简体中文
- Getting and installing Arch (简体中文)

## Navigation menu