在可行動裝置上安裝 Arch Linux

出自 Arch Linux 中文维基

本頁介紹如何在可移動磁碟(如 U 盤)上進行常規的 Arch 安裝。與此相對的是製作 LiveUSB(U 盤安裝介質)。結果將是與正常安裝到硬碟一樣的持久化安裝。

安裝[編輯 | 編輯原始碼]

注意: 存儲空間最好在 2 GiB 以上。適量的軟體包將可以放得下,同時留下一些空間用於存儲。不過,如果你打算安裝 KDE 之類的桌面環境,建議存儲空間在 3 GiB 以上。

取決於你的作業系統,可通過多種方式在可移動磁碟上安裝 Arch:

  • 如果你有另一台 Linux 計算機(不必是 Arch),你可按照Install Arch Linux from existing Linux安裝。
  • Arch Linux CD/USB 可用於將 Arch 安裝到可移動磁碟,只需從 CD/USB 啟動並按照安裝指南。如果從 Live USB 啟動,則無法安裝到同一個可移動磁碟。
  • 如果你運行 Windows 或 macOS,下載 VirtualBox,安裝 VirtualBox 擴展,將你的可移動磁碟連接到Linux 虛擬機(已安裝好或從 live ISO 啟動),然後按照安裝指南安裝到連接的磁碟。

安裝時的微調[編輯 | 編輯原始碼]

  • 創建初始 RAM disk 前,修改 /etc/mkinitcpio.conf,將 blockkeyboard hook 移動到 autodetect hook 之前。這樣才能在分別需要早期用戶空間中不同模塊的系統上啟動。
  • 如果你希望能在其他作業系統中使用安裝完的磁碟,可以創建使用適當文件系統的分區(如 NTFS 或 exFAT)。注意,數據分區可能需要是設備的第一個分區,因為 Windows 會假定可移動磁碟僅有一個分區,並將自動掛載 EFI 系統分區。記得安裝 dosfstoolsntfs-3g。網上的一些工具可能可以翻轉可移動磁碟的可移動媒體位(RMB)。這將使得作業系統把它看作外置硬碟,這樣你就可以隨意使用你選擇的分區方式。
  • 如果你的 Arch 安裝所在的可移動磁碟需要有兩家製造商的微碼,安裝 amd-ucodeintel-ucode。見 Microcode#加載微碼
警告: 不是所有的 U 盤都可以翻轉可移動媒體位(RMB),並且使用不兼容你的設備的軟體可能會造成損壞。不建議嘗試翻轉RMB。

配置[編輯 | 編輯原始碼]

  • 請確認在 /etc/fstab 中 / 目錄的分區信息和磁碟上的其他所有分區信息均正確。如果磁碟將在多台設備上啟動,設備和可用的磁碟的數量都很可能不同。因此建議使用 UUID 或標籤。

可使用 blkidlsblk 獲取分區的 UUID。詳情請參閱 Persistent block device naming#by-uuid

注意:
  • 如果磁碟上安裝了 GRUB,那麼磁碟將總是 hd0,0
  • 當前版本的 GRUB 似乎默認使用 UUID。下面的內容適用於 GRUB legacy。

GRUB legacy[編輯 | 編輯原始碼]

GRUB legacy 的配置文件 menu.lst 應該大致按如下進行編輯:

使用文件系統標籤時,你的 menu.lst 應該像這樣:

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

使用 UUID 時,應該像這樣:

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

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
注意: 再次檢查 device map,即使 /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

小技巧[編輯 | 編輯原始碼]

在多個機器上使用你的設備[編輯 | 編輯原始碼]

與 BIOS 系統的兼容性[編輯 | 編輯原始碼]

由於你的設備將在多台設備上運行,而至今仍有僅支持BIOS的系統,因此你可能需要考慮同時支持 UEFI GPT 和 BIOS GPT/MBR 系統。見 Multiboot USB drive#Hybrid UEFI GPT + BIOS GPT/MBR boot

顯卡驅動[編輯 | 編輯原始碼]

注意:

為了支持最常見的 GPUs,安裝 xf86-video-vesaxf86-video-atixf86-video-intelxf86-video-amdgpuxf86-video-nouveauxf86-video-fbdev

持久塊設備命名[編輯 | 編輯原始碼]

建議在 fstab 和啟動管理器配置中使用 UUID。詳情請參閱 Persistent block device naming

或者,你可以自行創建 udev 規則為你的磁碟創建符號連結,然後在 fstab 和啟動管理器配置中使用。詳情請參閱 udev#Setting static device names

內核參數[編輯 | 編輯原始碼]

你可能由於各種各樣的原因希望禁用 KMS,例如在使用 Intel 顯卡時遇到空白屏幕、顯示器「無信號」錯誤等。要禁用 KMS,添加 nomodeset 內核參數。詳情請參閱內核參數

警告: KMS 禁用時某些 Xorg 驅動將無法工作。請在你的驅動對應的 wiki 頁面上查找詳細信息。特別是 Nouveau,它需要 KMS 才能判斷正確的解析度。如果你已添加 nomodeset,那麼你可能需要在使用 Nvidia 顯卡的設備上手動調整解析度。詳情請參閱 Xrandr

兼容性[編輯 | 編輯原始碼]

使用 fallback 鏡像可獲得最大的兼容性。

最小化磁碟訪問[編輯 | 編輯原始碼]

當安裝到總寫入量有限的設備(如 U 盤、SD 卡等)上時,減少寫入量可以延長設備的壽命。這也可以減小寫入慢對性能的影響。

  • 強烈建議在選擇文件系統前查看 減少磁碟讀寫 。概括起來,對於基於快閃記憶體的磁碟(如 U 盤、SD 卡等),無日誌的 ext4 應該就可以了,它可通過 mkfs.ext4 -O "^has_journal" /dev/sdXX 創建。使用無日誌的文件系統的明顯的缺點就是在 ungraceful dismount 時會丟失數據。不過要意識到快閃記憶體的總寫入量是有限的,而日誌會占用其中的一部分。由於同樣的原因,最好也不要想著 swap 分區了。注意這並不影響安裝到可移動硬碟。
  • 你可能想將 systemd 日誌配置為在內存中存儲日誌。為此,可以創建一個配置文件:
/etc/systemd/journald.conf.d/usbstick.conf
[Journal]
Storage=volatile
RuntimeMaxUse=30M
  • 要在網頁瀏覽器和其他不寫入關鍵數據的應用程式中禁用 fsync 和相關的系統調用,可以使用來自 libeatmydataeatmydata 命令:
$ eatmydata firefox

UI 響應速度[編輯 | 編輯原始碼]

高 I/O 負載可能會使你遇到 UI 凍結,特別是在慢磁碟上。更改 I/O 調度器,或者切換到默認使用不同調度器的內核,可以極大地改進 UI 的響應速度。例如 BFQ 可以改進 UI 的響應速度(它在 linux-zenlinux-ckAUR 上默認啟用)。

詳見調度算法

參見[編輯 | 編輯原始碼]

  • ALMA - 用 Rust 編寫的工具,可用於自動創建持久化的 Arch Linux Live USB 安裝。
  • Arch Linux USB[失效連結 2022-09-18 ⓘ] - c-magyar 關於創建持久化 Live USB 安裝的精彩內容。
  • archuseriso - Profiles for building Arch Linux Live ISO images. Bootable USB drives creation tools featuring persistent storage and encryption.