在可移动介质上安装 Arch Linux
本页面介绍如何在可移动介质(例如 USB 闪存驱动器)上执行常规 Arch 安装。与《USB 闪存安装介质》中介绍的 LiveUSB 不同,最终结果将是一个与安装在内部驱动器上的安装完全相同的持久化安装。
安装
根据您可用的操作系统,有多种方法可以在可移动介质上安装 Arch。
- 如果您有另一台 Linux 计算机(不一定是 Arch),可以按照从现有 Linux 安装中的说明进行操作。
- 可以使用 Arch Linux CD/USB,通过引导 CD/USB 并遵循安装指南来将 Arch 安装到可移动介质上。如果从 Live USB 引导,则无法将安装到您正在引导的同一个可移动介质上。
- 如果您运行 Windows 或 macOS,请下载 VirtualBox,安装 VirtualBox 扩展,将您的可移动介质连接到运行 Linux 的虚拟机(可以是已安装的,也可以通过 Live ISO),并在使用安装指南中的说明时,将安装指向现在已连接的驱动器。
- 可以将 Arch 安装到您尝试从中安装的同一个 USB 驱动器上。但是,您不能在安装过程中关闭机器或重新启动。如果这样做,您需要重新创建安装介质。
安装调整
- 在创建初始 RAM 磁盘之前,在
/etc/mkinitcpio.conf中将block和keyboard钩子移到autodetect钩子之前。这对于允许在需要不同早期用户空间模块的多个系统上启动是必需的。 - 如果您选择将 Arch 安装到 USB 大容量存储设备,并希望能够继续将其用作跨平台可移动驱动器,可以通过创建一个包含适当文件系统的分区(最可能是 NTFS 或 exFAT)来实现。请注意,数据分区可能需要是设备上的第一个分区,因为 Windows 假设可移动设备上只有一个分区,否则会愉快地自动挂载 EFI 系统分区。请记住安装 dosfstools 和 ntfs-3g。在线有一些工具可能允许您翻转 USB 大容量存储设备上的可移动介质位 (RMB)。这将欺骗操作系统将您的 USB 大容量存储设备视为外部硬盘,并允许您使用任何分区方案。
- 如果您的 Arch 安装在需要两个制造商处理器的微码的可移动驱动器上,请同时安装 amd-ucode 和 intel-ucode 包。请参阅微码#加载微码。
- 如果在生成 fstab 文件条目时,只保留与可移动介质相关的条目,否则系统可能会因尝试查找不存在的设备而花费很长时间才能启动。
引导加载器配置
/,无需在 /etc/fstab 中定义它。GRUB
请遵循GRUB#BIOS 系统和GRUB#UEFI 系统中的说明,为 BIOS 和 UEFI 引导安装 GRUB。
# grub-install --target=i386-pc /dev/sdX --recheck # grub-install --target=x86_64-efi --efi-directory=esp --removable --recheck
/boot/grub/device.map 已存在。每当向计算机添加/删除磁盘时,都应使用此选项。 [1]Syslinux
使用您的 UUID
LABEL Arch
MENU LABEL Arch Linux
LINUX ../vmlinuz-linux
APPEND root=UUID=3a9f8929-627b-4667-9db4-388c4eaaf9fa rw
INITRD ../initramfs-linux.img
rEFInd
menuentry "Arch Linux" {
icon /EFI/BOOT/icons/os_arch.png
volume 5028fa50-0079-4c40-b240-abfaf28693ea
loader /path/to/vmlinux_image
initrd /path/to/initramfs
options "root=PARTUUID=5028fa50-0079-4c40-b240-abfaf28693ea rw"
}
有关创建手动引导项的详细信息,请参阅rEFInd#手动引导项。
在安装 rEFInd 时,您还必须使用 --usedefault /dev/sdXY 参数。
技巧与提示
在多台机器上使用您的便携式安装
显卡驱动
- 对于此类安装,**不**建议使用专有显卡驱动程序。
- 请参阅Intel graphics#Installation中关于 xf86-video-intel 的注释,以及Nouveau#Installation中关于 xf86-video-nouveau 的注释,以决定是否安装它们。
为了支持最常见的 GPU,请安装 xf86-video-vesa、xf86-video-ati、xf86-video-amdgpu、xf86-video-fbdev。
声卡驱动
为了支持最常见的声卡,请安装 sof-firmware 和 alsa-firmware。有关配置音频设备的更多信息,请参阅高级 Linux Sound Architecture。
持久块设备命名
建议在 fstab 和引导加载程序配置中使用 UUID。有关详细信息,请参阅持久化块设备命名。
或者,您可以创建 udev 规则来为您的磁盘创建自定义符号链接。然后,在 fstab 和引导加载程序配置中使用此符号链接。有关详细信息,请参阅udev#设置静态设备名称。
内核参数
您可能希望禁用 KMS,原因有很多,例如在使用某些 Intel 显卡时出现黑屏或“无信号”错误等。要禁用 KMS,请将 nomodeset 添加为内核参数。有关更多信息,请参阅内核参数。
nomodeset 作为内核参数,在使用带有 Nvidia 显卡的机器时,您可能需要手动调整显示分辨率。有关更多信息,请参阅Xrandr。兼容性
为了获得最大的兼容性,应使用备用映像。
最小化磁盘访问
当安装到写入次数有限(直到磨损)的设备(如 USB 驱动器、SD 卡或类似设备)时,请减少写入次数以延长设备寿命。这也能降低慢速写入带来的性能影响。
- 强烈建议在选择文件系统之前,仔细阅读提高性能#减少磁盘读/写一文。总而言之,对于闪存介质,如 USB 闪存驱动器或 SD 卡,禁用了日志的 ext4 应该就可以了,可以使用
mkfs.ext4 -O "^has_journal" /dev/sdXX创建。使用禁用日志的文件系统的明显缺点是由于非正常卸载导致数据丢失。请注意,闪存的写入次数有限,并且在更新日志时,带有日志的文件系统会消耗其中一些次数。出于同样的原因,最好忘记交换分区。请注意,这不会影响安装到便携式硬盘。 - 您可能希望配置 systemd journal 将其日志存储在 RAM 中,例如通过创建自定义配置文件。
/etc/systemd/journald.conf.d/usbstick.conf
[Journal] Storage=volatile RuntimeMaxUse=30M
- 要在网络浏览器和其他不写入重要数据的应用程序中禁用
fsync和相关系统调用,请使用来自 libeatmydata 的eatmydata命令来避免此类系统调用。
$ eatmydata firefox
UI 响应性
在高 I/O 负载下,尤其是在慢速驱动器上,您可能会遇到 UI 冻结。 提高性能#更改 I/O 调度程序或切换到使用不同默认调度程序的内核可以极大地影响您的 UI 响应性。例如,BFQ 可以提高 UI 响应性,这在 linux-zen 上是默认设置。
有关更多信息,请参阅提高性能#调度算法。
参见
- Arch Linux USB - c-magyar 关于创建持久化 Live USB 安装的出色撰写。
- archuseriso - 构建 Arch Linux Live ISO 映像的配置文件。支持持久化存储和加密的可启动 USB 驱动器创建工具。