Difference between revisions of "Installing Arch Linux on a USB key (简体中文)"

From ArchWiki
Jump to: navigation, search
(针对闪存寿命的优化)
Line 79: Line 79:
  
 
=== 针对闪存寿命的优化 ===
 
=== 针对闪存寿命的优化 ===
* 再次强烈建议!请翻阅 [[固态硬盘]] wiki 文档中关于 [http://wiki.archlinux.org/index.php/SSD#Tips_for_Minimizing_SSD_Read.2FWrites 优化 SSD 固态硬盘的读写技巧]  
+
* 再次强烈建议!请翻阅 [[固态硬盘]] wiki 文档中关于 [[SSD#Tips for Minimizing SSD Read/Writes|优化 SSD 固态硬盘的读写技巧]]
  
 
== 更多信息 ==
 
== 更多信息 ==

Revision as of 13:52, 31 July 2012

本页讨论如何在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,无痛地启动不同计算机

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:Installing Arch Linux on a USB key (简体中文)#)

当你在多个不同电脑上使用同一个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.

针对闪存寿命的优化

更多信息