Arch Linux 最新版终极安装指南:从零开始构建你的专属系统 (约3000字)
前言:拥抱 Arch Linux 的哲学
Arch Linux,一个以简洁、现代、实用、用户中心和滚动更新为核心理念的 Linux 发行版。它并非为新手准备,但对于那些渴望深入了解 Linux 系统运作、追求极致定制化和最新软件的用户来说,Arch Linux 无疑是充满魅力的选择。安装 Arch Linux 的过程本身就是一次宝贵的学习经历,它不会像许多发行版那样隐藏细节,而是要求你亲手构建系统的每一个核心部分。
本指南旨在提供一个详尽的、基于最新 Arch Linux 安装镜像(撰写时为 2024 年)的安装步骤。我们将覆盖从准备安装介质到配置一个基本可用的命令行系统的全过程,并为后续图形环境的安装打下基础。请注意,Arch Linux 的安装过程高度依赖命令行,需要一定的耐心和解决问题的能力。强烈建议在安装过程中随时查阅官方的 Arch Wiki (wiki.archlinux.org),它是最权威、最及时的信息来源。
核心原则:“The Arch Way”
- 简洁 (Simplicity): 避免不必要的复杂性、修改和添加。保持软件接近上游。
- 现代 (Modernity): 努力提供最新稳定版本的软件。
- 实用 (Pragmatism): 不拘泥于意识形态,基于实际需求和技术考量。
- 用户中心 (User-Centricity): 用户完全掌控自己的系统,系统不会试图“猜测”用户的需求。
- 自主性 (Versatility): Arch Linux 提供了一个基础系统,用户可以自由地构建任何类型的系统。
准备工作
-
下载 Arch Linux ISO:
- 访问 Arch Linux 官网的下载页面 (https://archlinux.org/download/)。
- 选择一个靠近你地理位置的镜像站点,下载最新的 ISO 文件(通常文件名类似
archlinux-yyyy.mm.dd-x86_64.iso
)。 - (可选但推荐)验证 ISO 完整性: 下载对应的 PGP 签名文件 (
.sig
),并使用 GnuPG 根据 Arch Wiki 上的说明验证 ISO 文件未被篡改。
-
创建可启动 USB 驱动器:
- 你需要一个容量至少 2GB 的 USB 驱动器。注意:此过程将擦除 USB 驱动器上的所有数据!
- 在 Linux/macOS 上: 可以使用
dd
命令。首先,用lsblk
或类似命令确定 USB 驱动器的设备名(例如/dev/sdx
,不是/dev/sdx1
)。然后执行(请极其小心,确保of=
指向正确的设备!):
bash
sudo dd bs=4M if=/path/to/archlinux-yyyy.mm.dd-x86_64.iso of=/dev/sdx status=progress oflag=sync
将/path/to/archlinux...iso
替换为你的 ISO 文件路径,/dev/sdx
替换为你的 USB 设备名。 - 在 Windows 上: 可以使用 Rufus (https://rufus.ie/) 或 Ventoy (https://www.ventoy.net/) 等工具。Rufus 通常选择 “DD Image” 模式写入。Ventoy 则允许你将多个 ISO 文件复制到 USB 驱动器上并从中选择启动。
-
备份重要数据: 如果你计划将 Arch Linux 安装在已有数据的硬盘上,或者进行双系统安装,务必提前备份所有重要文件!分区操作具有风险。
-
确保网络连接: 安装过程需要从互联网下载软件包。确保你的计算机可以通过有线(推荐,通常无需配置)或无线网络连接到互联网。
-
了解你的硬件: 知道你的网络接口名称、磁盘设备名、是使用 BIOS 还是 UEFI 启动模式至关重要。
启动到 Arch Linux Live 环境
- 将创建好的 USB 驱动器插入目标计算机。
- 重启计算机,并在启动时进入 BIOS/UEFI 设置(通常按
F2
,F10
,F12
,DEL
或ESC
键,具体取决于主板)。 - 关闭 Secure Boot: 大多数情况下,需要禁用 Secure Boot 才能启动 Arch Linux 安装介质。
- 设置启动顺序: 将 USB 驱动器设置为第一启动设备。
- 保存设置并退出 BIOS/UEFI。计算机将从 USB 驱动器启动。
- 你应该会看到 Arch Linux 的启动菜单。选择第一个选项 “Arch Linux install medium (x86_64, UEFI)” 或类似条目(如果你是 UEFI 系统)。如果是旧的 BIOS 系统,选项可能略有不同。
- 稍等片刻,系统将加载必要的组件,最终你会看到一个
root@archiso ~ #
的命令行提示符。恭喜,你已成功进入 Arch Linux Live 环境!
第一阶段:预安装配置
-
设置键盘布局 (如果不是 US 布局):
- 默认是 US 键盘布局。如果你使用其他布局(如 UK, German 等),需要加载它。
- 列出可用布局:
ls /usr/share/kbd/keymaps/**/*.map.gz
- 加载布局(例如,加载 UK 布局):
bash
loadkeys uk
(将uk
替换为你的布局名称,如de-latin1
等)
-
验证启动模式 (非常重要):
- 确认你是以 UEFI 模式还是 BIOS (Legacy) 模式启动的。这将影响后续的分区和引导加载器安装。
- 执行以下命令:
bash
ls /sys/firmware/efi/efivars - 如果该目录存在并列出文件,则表示你是以 UEFI 模式启动的。
- 如果目录不存在或命令报错,则表示你是以 BIOS (Legacy) 模式启动的。请务必记住你的启动模式!
-
连接到互联网:
- 有线连接: 通常插入网线后会自动通过 DHCP 获取 IP 地址。验证连接:
bash
ping archlinux.org
如果收到回复,表示网络已连接。按Ctrl+C
停止 ping。如果没有连接,检查网线是否插好,或使用ip link
查看网络接口状态,并尝试dhclient <interface_name>
(例如dhclient enp3s0
)。 - 无线连接 (Wi-Fi): Arch ISO 包含
iwctl
工具用于管理无线网络。- 启动
iwctl
交互模式:
bash
iwctl - 列出无线设备 (通常是
wlan0
):
[iwd]# device list
- 扫描可用网络 (用你的设备名替换
wlan0
):
[iwd]# station wlan0 scan
- 列出扫描到的网络:
[iwd]# station wlan0 get-networks
- 连接到你的网络 (用你的网络名称 SSID 替换
YourWifiSSID
):
[iwd]# station wlan0 connect "YourWifiSSID"
如果网络有密码,它会提示你输入。 - 退出
iwctl
:
[iwd]# exit
- 验证连接:
bash
ping archlinux.org
- 启动
- 有线连接: 通常插入网线后会自动通过 DHCP 获取 IP 地址。验证连接:
-
更新系统时钟: 确保系统时间准确对于软件包签名验证等至关重要。
bash
timedatectl set-ntp true
可以用timedatectl status
检查状态。 -
磁盘分区:
- 警告: 这是安装过程中最具风险的步骤。错误的操作可能导致数据丢失!如果你不确定,请停止并寻求帮助或查阅更多资料。
- 识别磁盘: 列出系统中的块设备(硬盘、SSD、USB 等):
bash
lsblk
或者使用fdisk -l
。你需要确定要安装 Arch Linux 的目标磁盘(例如/dev/sda
,/dev/nvme0n1
)。 - 选择分区工具:
fdisk
: 经典的 MBR 和 GPT 分区工具。gdisk
: 专门用于 GPT 分区的工具,功能更强。cfdisk
: 一个基于 curses 的、相对用户友好的分区工具 (推荐给初学者)。parted
: 功能强大的命令行工具,也可用于脚本化。
-
分区方案示例 (根据你的启动模式选择):
- UEFI 系统 (推荐 GPT 分区表):
- EFI 系统分区 (ESP): 至少 300MB,推荐 512MB 或更大。类型为
EFI System
,格式化为 FAT32。挂载点:/mnt/boot
(或/mnt/efi
)。 - Swap 分区 (可选但推荐): 大小取决于你的 RAM 和是否需要休眠。一般建议等于 RAM 大小或稍大(例如,8GB RAM -> 8GB Swap)。类型为
Linux swap
。 - 根 (Root) 分区 (
/
): 占用剩余空间。类型为Linux filesystem
。格式化为 Ext4 (常用) 或其他 Linux 文件系统 (如 Btrfs, XFS)。挂载点:/mnt
。
- EFI 系统分区 (ESP): 至少 300MB,推荐 512MB 或更大。类型为
- BIOS 系统 (可以使用 MBR 或 GPT 分区表):
- 引导分区 (可选,有时需要): 如果使用某些旧的引导加载器或特定配置,可能需要一个小的(~100MB)引导分区。通常可以直接安装到根分区。
- Swap 分区: 同 UEFI。类型为
Linux swap
。 - 根 (Root) 分区 (
/
): 占用剩余空间。类型为Linux filesystem
。格式化为 Ext4 或其他。挂载点:/mnt
。 如果使用 MBR,确保根分区或包含/boot
的分区被标记为 “bootable”。
- UEFI 系统 (推荐 GPT 分区表):
-
使用
cfdisk
进行分区的简要步骤 (以/dev/sda
为例):- 启动
cfdisk
:cfdisk /dev/sda
- 选择分区表类型:
gpt
(推荐) 或dos
(MBR)。 - 使用箭头键选择
Free space
。 - 选择
[ New ]
创建新分区。 - 输入分区大小 (例如
512M
for ESP,8G
for Swap, 留空使用剩余空间 for Root)。 - 设置分区类型:
- 对于 ESP: 选择
[ Type ]
, 找到并选择EFI System
。 - 对于 Swap: 选择
[ Type ]
, 找到并选择Linux swap
。 - 对于 Root: 默认通常是
Linux filesystem
,无需更改。
- 对于 ESP: 选择
- 重复步骤 3-6 创建所有分区。
- 检查分区表: 确保分区布局符合你的计划。
- 选择
[ Write ]
将更改写入磁盘。输入yes
确认。 - 选择
[ Quit ]
退出。
- 启动
-
格式化分区:
- 警告: 确认你选择了正确的分区!
- 假设分区如下 (请根据你的实际情况调整设备名):
/dev/sda1
: EFI System Partition (ESP)/dev/sda2
: Swap/dev/sda3
: Root (/)
- 格式化 ESP 为 FAT32:
bash
mkfs.fat -F32 /dev/sda1 - 初始化并启用 Swap:
bash
mkswap /dev/sda2
swapon /dev/sda2 - 格式化 Root 分区为 Ext4:
bash
mkfs.ext4 /dev/sda3
(如果你选择其他文件系统,如 Btrfs,使用mkfs.btrfs /dev/sda3
)
-
挂载分区:
- 必须先挂载根分区!
- 挂载根分区到
/mnt
:
bash
mount /dev/sda3 /mnt - 创建挂载点并挂载其他分区 (如果需要):
- 对于 UEFI 系统,挂载 ESP:
bash
mkdir /mnt/boot # 或者 mkdir /mnt/efi,选择一个并保持一致
mount /dev/sda1 /mnt/boot # 或者 mount /dev/sda1 /mnt/efi - 如果你创建了单独的
/home
分区 (例如/dev/sda4
),也需要创建挂载点并挂载:
bash
mkdir /mnt/home
mount /dev/sda4 /mnt/home
- 对于 UEFI 系统,挂载 ESP:
- 使用
lsblk
或mount | grep /mnt
确认分区已正确挂载。
第二阶段:安装基本系统
-
选择镜像源 (可选但推荐):
- 为了提高下载速度,可以编辑
/etc/pacman.d/mirrorlist
文件,将靠近你的镜像源(取消注释#
)移到文件顶部。 - 或者,使用
reflector
自动选择和排序镜像:
bash
pacman -Syy # 先同步一下包数据库
pacman -S reflector # 安装 reflector
# 示例:选择中国的 HTTPS 镜像,按速度排序,并覆盖 mirrorlist 文件
reflector --country China --protocol https --sort rate --save /etc/pacman.d/mirrorlist
# 你可以根据需要调整国家、协议等参数
- 为了提高下载速度,可以编辑
-
安装基本包: 使用
pacstrap
脚本将基本系统、Linux 内核和常用固件安装到新系统的根目录 (/mnt
)。
bash
pacstrap /mnt base linux linux-firmwarebase
: 包含一个能够运行的基本 Arch Linux 系统所需的所有包(如 bash, systemd, pacman 等)。linux
: 最新的稳定版 Linux 内核。linux-firmware
: 包含各种硬件驱动所需的固件文件。- 强烈建议同时安装一些基础工具:
bash
pacstrap /mnt base linux linux-firmware nano vim networkmanager man-db man-pages texinfonano
/vim
: 文本编辑器,至少装一个。networkmanager
: 强大的网络管理工具,方便后续配置网络。man-db
,man-pages
,texinfo
: 用于查看帮助文档。
这个过程会下载并安装不少软件包,需要一些时间,具体取决于你的网络速度和镜像源。
第三阶段:配置系统
-
生成 Fstab 文件: fstab 文件定义了磁盘分区如何在系统启动时自动挂载。
bash
genfstab -U /mnt >> /mnt/etc/fstab-U
表示使用 UUID (Universally Unique Identifier) 来标识分区,这比设备名(如/dev/sda1
)更可靠,因为设备名可能会改变。- 检查生成的 fstab 文件:
bash
cat /mnt/etc/fstab
确保所有之前挂载的分区(Root, ESP, Swap, Home 等)都已正确列出,并且挂载点无误。
-
Chroot 到新系统: “Change Root”,将当前环境的根目录切换到新安装的系统 (
/mnt
)。这样,后续的命令就如同在新系统内部执行一样。
bash
arch-chroot /mnt
你会注意到命令提示符发生了变化,不再是root@archiso
。 -
设置时区:
- 将
/etc/localtime
链接到你的时区文件。首先找到你的时区(例如Asia/Shanghai
,Europe/London
,America/New_York
)。可以用ls /usr/share/zoneinfo/
逐级查找。 - 创建链接 (替换
Region/City
):
bash
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime - 将系统时间同步到硬件时钟 (UTC):
bash
hwclock --systohc
- 将
-
本地化 (Localization): 设置语言、编码等。
- 编辑
/etc/locale.gen
文件,取消注释你需要的 locale(编码)。例如,取消注释en_US.UTF-8 UTF-8
和zh_CN.UTF-8 UTF-8
。
bash
nano /etc/locale.gen
找到对应行,删除行首的#
。按Ctrl+X
保存退出 (如果是 nano)。 - 生成 locale 信息:
bash
locale-gen - 创建
/etc/locale.conf
文件,设置默认语言:
bash
echo "LANG=en_US.UTF-8" > /etc/locale.conf
(将en_US.UTF-8
替换为你主要使用的 locale) - (可选) 设置控制台键盘布局 (持久化): 如果你在 Live 环境中设置了非 US 布局,需要在这里再次设置,使其在系统启动时生效。
bash
echo "KEYMAP=uk" > /etc/vconsole.conf
(将uk
替换为你的布局)
- 编辑
-
网络配置:
- 设置主机名 (Hostname): 这是你的计算机在网络上的名称。
bash
echo "myarchpc" > /etc/hostname
(将myarchpc
替换为你喜欢的主机名) - 编辑 hosts 文件: 添加与主机名匹配的条目。
bash
nano /etc/hosts
添加以下内容 (将myarchpc
替换为你的主机名):
127.0.0.1 localhost
::1 localhost
127.0.1.1 myarchpc.localdomain myarchpc - 启用网络管理服务: 如果你之前安装了
networkmanager
:
bash
systemctl enable NetworkManager
这会让 NetworkManager 在系统启动时自动运行,管理你的网络连接(包括有线和无线)。如果你没有安装 NetworkManager,则需要配置systemd-networkd
或dhcpcd
等其他网络工具。
- 设置主机名 (Hostname): 这是你的计算机在网络上的名称。
-
设置 Root 用户密码:
bash
passwd
输入并确认一个新的、强密码。请务必记住这个密码! -
安装引导加载程序 (Bootloader) (关键步骤): 引导加载程序负责在开机时加载 Linux 内核。选择哪种以及如何安装取决于你的启动模式 (UEFI 或 BIOS)。
-
必需:安装 Microcode 更新: 为了CPU的稳定性和安全性,强烈建议安装。
- Intel CPU:
pacman -S intel-ucode
- AMD CPU:
pacman -S amd-ucode
- Intel CPU:
-
选项一:UEFI 系统 (推荐使用 GRUB 或 systemd-boot)
- 使用 GRUB:
- 安装 GRUB 和 efibootmgr:
bash
pacman -S grub efibootmgr - 安装 GRUB 到 EFI 分区 (确保
/boot
或你选择的 ESP 挂载点正确):
bash
# 如果你的 ESP 挂载在 /boot
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH
# 如果你的 ESP 挂载在 /efi
# grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=ARCH
--bootloader-id=ARCH
定义了在 UEFI 启动菜单中显示的名称。 - 生成 GRUB 配置文件:
bash
grub-mkconfig -o /boot/grub/grub.cfg
这个命令会自动检测内核、initramfs 和 microcode 更新。
- 安装 GRUB 和 efibootmgr:
- 使用 systemd-boot (更简洁,仅适用于 UEFI):
- 安装 systemd-boot (它通常已随 systemd 一起安装,只需配置):
bash
bootctl --path=/boot install # 假设 ESP 挂载在 /boot - 创建引导项配置文件
/boot/loader/loader.conf
:
bash
nano /boot/loader/loader.conf
内容类似:
default arch.conf
timeout 3
console-mode max
editor no - 创建 Arch Linux 的引导项文件
/boot/loader/entries/arch.conf
(文件名需与loader.conf
中的default
对应):
bash
nano /boot/loader/entries/arch.conf
内容类似 (确保options
行中的root=
指向你的根分区 UUID,可以用blkid /dev/sda3
查看):
title Arch Linux
linux /vmlinuz-linux
initrd /intel-ucode.img # 如果是 AMD,用 /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=YOUR_ROOT_PARTITION_UUID rw quiet
注意: 替换YOUR_ROOT_PARTITION_UUID
为你根分区的实际 UUID。rw
表示读写挂载,quiet
可以移除内核启动信息(可选)。
- 安装 systemd-boot (它通常已随 systemd 一起安装,只需配置):
- 使用 GRUB:
-
选项二:BIOS 系统 (通常使用 GRUB)
- 安装 GRUB:
bash
pacman -S grub - 安装 GRUB 到 MBR (Master Boot Record) 或分区的引导扇区 (替换
/dev/sda
为你的目标磁盘,不是分区):
bash
grub-install --target=i386-pc /dev/sda
警告: 确保/dev/sda
是正确的磁盘! - 生成 GRUB 配置文件:
bash
grub-mkconfig -o /boot/grub/grub.cfg
- 安装 GRUB:
安装完引导加载程序后,基本系统配置完成!
-
第四阶段:收尾与重启
- 退出 Chroot 环境:
bash
exit - 卸载所有分区:
bash
umount -R /mnt
如果提示设备忙 (device is busy
),可能是有进程仍在访问挂载点。尝试umount -l /mnt/xxx
来强制卸载,或查找并结束相关进程。通常umount -R /mnt
应该可以工作。 - 重启系统:
bash
reboot - 拔掉 USB 安装介质: 在计算机重启后,系统提示之前,及时拔掉 USB 驱动器。
第五阶段:首次启动与基本配置
-
登录: 系统启动后,你应该会看到一个文本登录提示符。使用
root
用户和你之前设置的密码登录。 -
创建普通用户: 不建议长期使用 root 用户操作。创建一个普通用户:
bash
useradd -m -G wheel username-m
: 创建用户的家目录 (/home/username
)。-G wheel
: 将用户添加到wheel
组。wheel
组通常被配置为允许使用sudo
命令。- 将
username
替换为你想要的用户名。
-
设置用户密码:
bash
passwd username
输入并确认新用户的密码。 -
安装并配置 Sudo: 允许普通用户执行管理员命令。
- 安装 sudo 包:
bash
pacman -S sudo - 编辑 sudoers 文件 (必须使用
visudo
命令!):
bash
EDITOR=nano visudo
(如果你更喜欢 vim,可以省略EDITOR=nano
)
找到类似下面这行,并取消注释 (删除行首的#
):
%wheel ALL=(ALL:ALL) ALL
# 或者 %wheel ALL=(ALL) ALL,较旧的格式
这允许wheel
组中的所有用户以任何用户身份执行任何命令 (需要输入自己的密码)。
按Ctrl+X
保存退出 (nano)。visudo
会在保存前检查语法,防止配置错误导致无法使用 sudo。
- 安装 sudo 包:
-
测试 Sudo:
- 退出 root 用户:
exit
- 使用你新创建的用户名和密码登录。
- 尝试执行一个需要 root 权限的命令,例如更新包数据库:
bash
sudo pacman -Syu
系统会提示你输入你的用户密码 (不是 root 密码)。如果命令成功执行,说明 sudo 配置正确。
- 退出 root 用户:
至此,你已经拥有了一个基本的、可用的 Arch Linux 命令行系统!
后续步骤:迈向图形界面
现在你的系统还只有命令行界面。下一步通常是安装:
-
显卡驱动:
- 识别你的显卡:
lspci | grep -E "VGA|3D"
- 根据你的显卡类型 (Intel, AMD, NVIDIA) 安装相应的驱动。查阅 Arch Wiki 的 “Xorg” 和具体显卡(如 “NVIDIA”, “AMDGPU”, “Intel graphics”)页面获取详细信息。
- 通用开源驱动
mesa
通常已经作为依赖安装。NVIDIA 可能需要安装闭源驱动nvidia
。
- 识别你的显卡:
-
Xorg Server (显示服务器): 图形界面的基础。
bash
sudo pacman -S xorg-server -
桌面环境 (Desktop Environment) 或 窗口管理器 (Window Manager):
- 桌面环境 (提供完整体验):
- GNOME:
sudo pacman -S gnome gnome-extra
- KDE Plasma:
sudo pacman -S plasma kde-applications
- XFCE:
sudo pacman -S xfce4 xfce4-goodies
- Cinnamon:
sudo pacman -S cinnamon
- MATE:
sudo pacman -S mate mate-extra
- GNOME:
- 窗口管理器 (更轻量、更可定制): i3, Sway (Wayland), AwesomeWM, Openbox 等。安装方式各异,请查阅 Wiki。
- 桌面环境 (提供完整体验):
-
显示管理器 (Display Manager): 提供图形登录界面。
- GDM (GNOME):
sudo systemctl enable gdm.service
- SDDM (KDE):
sudo systemctl enable sddm.service
- LightDM (通用):
sudo pacman -S lightdm lightdm-gtk-greeter
;sudo systemctl enable lightdm.service
- GDM (GNOME):
-
声音服务器: 推荐 PipeWire (现代标准)。
bash
sudo pacman -S pipewire pipewire-pulse pipewire-alsa pipewire-jack wireplumber
安装后通常会自动工作,或需要用户启用/配置wireplumber
服务。 -
常用应用程序: 浏览器 (
firefox
,chromium
), 终端模拟器 (gnome-terminal
,konsole
,alacritty
), 文件管理器 (nautilus
,dolphin
,thunar
), 文本编辑器等。
结语:旅程的开始
恭喜你完成了 Arch Linux 的安装!这只是探索 Arch Linux 世界的开始。你现在拥有了一个完全由自己掌控、高度定制化的系统。
请记住:
- Arch Wiki 是你最好的朋友: https://wiki.archlinux.org/ 遇到任何问题,首先查阅 Wiki。
- 滚动更新: 定期使用
sudo pacman -Syu
更新系统,以获取最新的软件和安全修复。阅读更新前的信息,有时可能需要手动干预。 - AUR (Arch User Repository): 了解并谨慎使用 AUR 获取官方仓库之外的软件。推荐使用 AUR Helper 如
yay
或paru
(需要先安装base-devel
和git
)。 - 学习与探索: Arch Linux 鼓励用户不断学习和探索 Linux 系统的内部工作原理。
享受你的 Arch Linux 之旅吧!