在可移动介质上安装 Arch Linux

出自 ArchWiki

本页面介绍如何将常规 Arch 安装到可移动介质(例如 USB 闪存驱动器)。与 USB 闪存安装介质 中介绍的 LiveUSB 相比,结果将是与正常安装到 HDD 相同的持久安装。

安装

注意: 有关所需的磁盘空间,请参阅 分区#分区方案

有多种方法可以在可移动介质上安装 Arch,具体取决于您可用的操作系统

  • 如果您有另一台可用的 Linux 计算机(不需要是 Arch),您可以按照 从现有 Linux 安装 中的说明进行操作。
  • Arch Linux CD/USB 可用于将 Arch 安装到可移动介质,方法是启动 CD/USB 并按照安装指南进行操作。如果从 Live USB 启动,则无法安装到您正在从中启动的同一可移动介质。
  • 如果您运行 Windows 或 macOS,请下载 VirtualBox,安装 VirtualBox 扩展,将您的可移动介质连接到运行 Linux 的虚拟机(无论是已安装的还是通过 live ISO),并在使用 安装指南 中的说明时,将安装指向现在连接的驱动器。
  • 可以将 Arch 安装到您尝试从中安装它的同一 USB 驱动器上。但是,您无法在安装过程中关闭计算机或重新启动。如果您这样做,则需要再次创建安装介质。

安装调整

  • 创建初始 RAM 磁盘之前,在 /etc/mkinitcpio.conf 中,将 blockkeyboard hooks 移动到 autodetect hook 之前。这对于允许在多个系统上启动是必要的,每个系统都需要早期用户空间中的不同模块。
  • 如果您已选择将 Arch 安装到 USB 大容量存储设备上,并且希望能够继续将其用作跨平台可移动驱动器,则可以通过创建一个分区来容纳适当的文件系统(最可能是 NTFS 或 exFAT)来实现。请注意,数据分区可能需要是设备上的第一个分区,因为 Windows 假定可移动设备上只能有一个分区,否则会很乐意自动挂载 EFI 系统分区。请记住安装 dosfstoolsntfs-3g。一些在线工具可能允许您翻转 USB 大容量存储设备上的可移动介质位 (RMB)。这将欺骗操作系统将您的 USB 大容量存储设备视为外部硬盘,并允许您使用您选择的任何分区方案。
  • 如果您的 Arch 安装在可移动驱动器上,该驱动器需要用于两个制造商处理器的微代码,请同时安装 amd-ucodeintel-ucode 软件包。请参阅 微代码#加载微代码
警告: 并非每个 USB 大容量存储设备都可以翻转可移动介质位 (RMB),尝试使用与您的设备不兼容的软件可能会损坏它。建议尝试翻转 RMB。

引导加载程序配置

注意: Systemd 将自动检测根文件系统/无需在 /etc/fstab 中定义它

GRUB

按照 GRUB#BIOS 系统GRUB#UEFI 系统 上的说明安装 GRUB 以进行 BIOS 和 UEFI 启动

# 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 参数。

技巧和诀窍

在多台机器上使用您的便携式安装

视频驱动程序

此文章或章节的真实准确性存在争议。

原因: 唯一剩下的专有驱动程序是 NVIDIA,它工作正常,而 nouveau 自从重新时钟被阻止以来一直在消亡。(在Talk:Install Arch Linux on a removable medium 中讨论)
注意

为了支持最常见的 GPU,请安装 xf86-video-vesaxf86-video-atixf86-video-amdgpuxf86-video-fbdev

音频驱动程序

为了支持最常见的声卡,请安装 sof-firmwarealsa-firmware。有关配置音频设备的更多信息,请参阅 高级 Linux 声音架构

持久块设备命名

建议在 fstab 和引导加载程序配置中都使用 UUID。有关详细信息,请参阅 持久块设备命名

或者,您可以创建 udev 规则以为您的磁盘创建自定义符号链接。然后在 fstab 和引导加载程序配置中使用此符号链接。有关详细信息,请参阅 udev#设置静态设备名称

内核参数

此文章或章节的真实准确性存在争议。

原因: 这仍然是一个问题吗?没有链接错误报告。(在Talk:Install Arch Linux on a removable medium 中讨论)

您可能出于各种原因想要禁用 KMS,例如在使用某些 Intel 显卡时,显示器出现黑屏或“无信号”错误等。要禁用 KMS,请添加 nomodeset 作为内核参数。有关更多信息,请参阅 内核参数

警告: 某些 Xorg 驱动程序在禁用 KMS 的情况下将无法工作。有关详细信息,请参阅有关您的特定驱动程序的 wiki 页面。特别是 Nouveau 需要 KMS 来确定正确的显示分辨率。如果您添加 nomodeset 作为内核参数作为先发制人的措施,则在使用配备 Nvidia 显卡的计算机时,您可能必须手动调整显示分辨率。有关更多信息,请参阅 Xrandr

兼容性

此文章或章节需要扩充。

原因: 这应该在一个单独的部分中充实,以便只生成一个回退镜像。(在Talk:Install Arch Linux on a removable medium 中讨论)

回退镜像应该用于最大兼容性。

最小化磁盘访问

当安装到写入次数有限的设备(例如 USB 驱动器、SD 卡或类似设备)时,减少写入次数以延长设备寿命。这也减少了慢速写入对性能的影响。

  • 强烈建议在选择文件系统之前查看 提高性能#减少磁盘读取/写入 文章。总而言之,对于基于闪存的介质(例如 USB 闪存驱动器或 SD 卡),没有日志的 ext4 应该可以正常工作,可以使用 mkfs.ext4 -O "^has_journal" /dev/sdXX 创建。禁用日志的文件系统的明显缺点是由于非正常卸载导致的数据丢失。认识到闪存的写入次数有限,并且日志文件系统会占用其中一些,因为日志会更新。出于同样的原因,最好忘记交换分区。请注意,这不会影响安装到便携式硬盘驱动器。
  • 您可能想要配置 systemd 日志 以将其日志存储在 RAM 中,例如通过创建自定义配置文件
/etc/systemd/journald.conf.d/usbstick.conf
[Journal]
Storage=volatile
RuntimeMaxUse=30M
  • 要在 Web 浏览器和其他不写入重要数据的应用程序中禁用 fsync 和相关系统调用,请使用 libeatmydata 中的 eatmydata 命令来避免此类系统调用
$ eatmydata firefox

UI 响应性

您可能会在较高的 I/O 负载下,尤其是在慢速驱动器上遇到 UI 卡顿。提高性能#更改 I/O 调度程序 或切换到使用不同默认调度程序的内核可以极大地影响您的 UI 响应性。例如,BFQ 可以提高 UI 响应性,这是 linux-zenlinux-ckAUR 上的默认调度程序。

有关更多信息,请参阅 提高性能#调度算法

参见

  • Arch Linux USB - c-magyar 关于创建持久 Live USB 安装的优秀撰写。
  • archuseriso - 用于构建 Arch Linux Live ISO 镜像的配置文件。可启动 USB 驱动器创建工具,具有持久存储和加密功能。