Arch Linux 现代化安装指南

本指南旨在提供一个真正“零基础友好”的 Arch Linux 手动安装流程,我们将以 Btrfs 文件系统和 GNOME 桌面环境为主线,专为现代 UEFI 启动模式的计算机优化。本教程将涵盖每一个细节,从连接Wi-Fi的具体指令到硬盘分区的每一个按键,最终目标是构建一个美观、高效且开箱即用的现代化桌面系统。

阶段一:准备工作 (Live 环境)

在开始之前,请确保你已经使用 Ventoy 或 balenaEtcher 等工具制作好了 Arch Linux 的启动 U 盘,并已从 U 盘成功启动进入命令行界面。

1. 验证启动模式

这是确保后续引导安装正确无误的第一步。我们需要确认计算机是以现代的 UEFI 模式启动,而不是传统的 Legacy BIOS 模式。

ls /sys/firmware/efi/efivars

预期结果:如果屏幕上列出了一长串文件和目录,那么恭喜你,启动模式正确。
如果报错:提示目录不存在,请重启电脑进入 BIOS/UEFI 设置界面,查找 “Boot Mode” 或类似选项,将其从 “Legacy” 或 “CSM” 更改为 “UEFI”,然后重新从 U 盘启动。

2. 连接网络

网络是安装过程的生命线,所有软件包都需要从网络下载。

对于有线网络
通常情况下,插入网线后系统会自动连接。你可以直接进入下一步验证网络。

对于无线网络 (Wi-Fi)
我们将使用 Archiso 内置的 iwctl 工具来进行连接。

# 1. 启动 iwctl 交互式命令行
iwctl

# 2. 列出你的无线设备名,通常是 wlan0
[iwd]# device list

# 3. 使用你的无线设备名开始扫描网络 (将 wlan0 替换为你的设备名)
[iwd]# station wlan0 scan

# 4. 列出扫描到的所有可用 Wi-Fi 网络
[iwd]# station wlan0 get-networks

# 5. 连接到你的 Wi-Fi (将 "你的WiFi名称" 替换为真实名称)
[iwd]# station wlan0 connect "你的WiFi名称"

# 6. 系统会提示你输入密码,输入后按回车
Passphrase: [输入你的Wi-Fi密码]

# 7. 连接成功后,输入 exit 退出 iwctl
[iwd]# exit

验证网络连接
无论使用有线还是无线,都用 ping 命令来最终确认网络是否通畅。

ping archlinux.org

预期结果:屏幕上开始滚动显示来自服务器的响应信息。按 Ctrl+C 组合键停止 ping 命令。
如果报错:请检查网络硬件或重新执行连接步骤。

3. 更新系统时间

确保系统时间与网络时间同步,这对于后续软件包签名验证至关重要,可以避免很多不必要的错误。

timedatectl set-ntp true

4. 更换国内软件仓库镜像源

为了加快后续软件下载速度,建议先把 pacman 的软件仓库镜像源切换到国内镜像。使用 vim 编辑 /etc/pacman.d/mirrorlist 文件,把想用的镜像源放到靠前位置即可。

vim /etc/pacman.d/mirrorlist

# 推荐镜像源(放在文件靠前位置)
Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch # 中国科学技术大学开源镜像站
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch # 清华大学开源软件镜像站
Server = https://repo.huaweicloud.com/archlinux/$repo/os/$arch # 华为开源镜像站
Server = http://mirror.lzu.edu.cn/archlinux/$repo/os/$arch # 兰州大学开源镜像站

📑 命令参数说明:

/etc/pacman.d/mirrorlist:Arch Linux 的软件仓库镜像列表文件。

放在文件最上面的镜像源,通常会被优先使用。

保存后,后续使用 pacman 安装软件时,就会优先从这些国内镜像站下载。

阶段二:硬盘分区与格式化 (Btrfs 主方案)

这是整个安装过程中最关键、最需要细心的一步。我们将以 /dev/nvme0n1 (代表 NVMe 固态硬盘) 为例。

重要提示:如果你的硬盘是传统的 SATA 接口 (SSD 或 HDD),它的名称通常是 /dev/sda。请将本节中所有的 /dev/nvme0n1 替换为 /dev/sda。你可以通过运行 lsblk 命令来确认你的硬盘名称。

5. 硬盘分区 (cfdisk)

可以,直接使用 cfdisk 就行,不必非得用 fdisk。对新手来说,cfdisk 的交互界面更直观,不容易输错。这里仍然创建三个分区:

  1. EFI 系统分区:用于存放引导程序。
  2. Swap 交换分区:作为物理内存的补充。
  3. Btrfs 根分区:存放整个操作系统和你的所有文件。

请先根据你的硬盘类型判断设备名:

  • SATA 硬盘:通常是 /dev/sda/dev/sdb/dev/sdc
  • NVMe 固态硬盘:通常是 /dev/nvme0n1/dev/nvme1n1/dev/nvme2n1
# 先查看磁盘,确认哪块盘是你要安装 Arch Linux 的目标盘
lsblk

# 如果目标盘是 SATA 硬盘
cfdisk /dev/sda

# 如果目标盘是 NVMe 硬盘
cfdisk /dev/nvme0n1

📑 命令参数说明:

lsblk:列出当前系统识别到的磁盘和分区,用来确认目标硬盘。

cfdisk /dev/sda:对 SATA 硬盘进行可视化分区。

cfdisk /dev/nvme0n1:对 NVMe 硬盘进行可视化分区。

进入 cfdisk 后,如果提示选择分区表类型,优先选 gpt。然后按下面思路分区:

分区建议大小类型说明
EFI512MEFI System用于 UEFI 启动。
Swap4GLinux swap8G 内存机器通常够用,内存更大可按需调整。
根分区剩余全部空间Linux filesystem后续会格式化为 Btrfs。

全部建好后,选择 Write 写入分区表,输入 yes 确认,再选择 Quit 退出。

分区完成后的命名通常如下:

  • NVMe/dev/nvme0n1p1/dev/nvme0n1p2/dev/nvme0n1p3
  • SATA/dev/sda1/dev/sda2/dev/sda3

后面格式化和挂载命令里,如果你的机器不是 NVMe,请记得把盘符改成实际设备名。

6. 格式化分区并创建 Btrfs 子卷

分区完成后,我们需要用正确的文件系统来格式化它们。

# 1. 格式化 EFI 分区为 FAT32
mkfs.fat -F32 /dev/nvme0n1p1

# 2. 格式化并激活 Swap 分区
mkswap /dev/nvme0n1p2
swapon /dev/nvme0n1p2

# 3. 格式化 Btrfs 分区并创建子卷 (这是 Btrfs 的精髓所在)
#    -f: 强制格式化
#    -L: 指定一个卷标,方便识别
mkfs.btrfs -f -L myArch /dev/nvme0n1p3

# 4. 挂载 Btrfs 的顶层卷到 /mnt,为创建子卷做准备
mount /dev/nvme0n1p3 /mnt

# 5. 创建子卷,这是一种高效的目录隔离方式
#    @: 用于根目录 (/)
#    @home: 用于用户家目录 (/home)
#    @snapshots: 用于系统快照,方便备份与恢复
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@snapshots

# 6. 完成创建后,卸载顶层卷
umount /mnt

阶段三:安装基本系统

7. 挂载分区

现在,我们需要以正确的结构将这些分区(和子卷)挂载起来,为安装系统做准备。

这里要特别注意:EFI 分区请挂载到 /boot/efi,而不是直接挂载到 /boot。因为 EFI 分区通常只分配很小的空间,例如 512M;而 /boot 目录里除了 EFI 文件,还会放微码、GRUB 文件、Linux 内核和 initramfs 等内容。若把整个 /boot 都压在 EFI 分区上,后期很容易把这个小分区塞满。

# 1. 挂载 Btrfs 根子卷到 /mnt
#    noatime: 禁用文件访问时间记录,提升性能
#    compress=zstd: 使用 zstd 算法进行实时压缩,节省空间并提升读写速度
#    subvol=@: 指定挂载名为 @ 的子卷
mount -o noatime,compress=zstd,subvol=@ /dev/nvme0n1p3 /mnt

# 2. 创建其他挂载点目录
mkdir -p /mnt/home
mkdir -p /mnt/btrfs  # 这个目录用于未来访问Btrfs顶层卷,方便管理快照
mkdir -p /mnt/boot/efi

# 3. 挂载 Btrfs home 子卷
mount -o noatime,compress=zstd,subvol=@home /dev/nvme0n1p3 /mnt/home

# 4. 挂载 Btrfs 顶层卷
mount -o noatime,compress=zstd /dev/nvme0n1p3 /mnt/btrfs

# 5. 挂载 EFI 分区
mount /dev/nvme0n1p1 /mnt/boot/efi

📑 命令参数说明:

-o noatime,compress=zstd,subvol=@:挂载时附带参数,其中 noatime 用于减少磁盘写入,compress=zstd 用于启用透明压缩,subvol=@ 指定挂载根子卷。

mkdir -p:递归创建目录,若目录已存在则不会报错。

/mnt/boot/efi:EFI 分区挂载点。这里特意不用 /boot,是为了避免内核、微码、GRUB 文件把小容量 EFI 分区塞满。

8. 安装基本软件包

使用 pacstrap 命令,将 Arch Linux 的核心系统安装到我们刚刚挂载好的 /mnt 目录中。

pacstrap /mnt base linux linux-firmware vim networkmanager git btrfs-progs
  • base, linux, linux-firmware: 构成一个可启动系统的最小集合。
  • vim: 一个对新手友好的命令行文本编辑器。
  • networkmanager: 强大的网络管理工具,对桌面环境和 Wi-Fi 支持极佳。
  • git: 版本控制工具,未来安装 AUR 软件包时会用到。
  • btrfs-progs: Btrfs 文件系统的管理工具集。

9. 生成 Fstab

Fstab (File System Table) 文件记录了系统启动时需要自动挂载的分区信息。

genfstab -U /mnt >> /mnt/etc/fstab

强烈建议检查一下生成的文件

cat /mnt/etc/fstab

确保文件中包含了 EFI、Swap、Btrfs 根目录和家目录的条目,并且 Btrfs 的 subvol 选项都正确无误。

阶段四:配置新系统 (Chroot 环境)

10. Chroot 进入新系统

现在,我们将使用 arch-chroot 命令,将我们的操作环境从 Live U盘 “切换”到硬盘上刚刚安装好的新系统中。

arch-chroot /mnt

成功标志:你的命令行提示符会发生变化,通常会变成 [root@archiso /]#

11. 配置时区、语言、主机名、密码

这些是让你的系统更具个性化和可用性的基础设置。

# 1. 设置时区为中国上海
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

# 2. 设置系统语言
nano /etc/locale.gen
# 在打开的文件中,使用方向键找到以下两行,并删除它们行首的 '#' 符号:
# en_US.UTF-8 UTF-8
# zh_CN.UTF-8 UTF-8
# 按 Ctrl+X, 然后按 Y, 最后按回车保存退出。

# 生成 Locale 信息
locale-gen

# 创建全局语言配置文件,将英文作为系统界面语言,以避免终端乱码
echo "LANG=en_US.UTF-8" > /etc/locale.conf

# 3. 设置主机名 (你电脑在网络中的名字)
echo "myArch" > /etc/hostname

# 4. 配置 hosts 文件以正确解析主机名
nano /etc/hosts
# 在文件末尾添加以下内容:
127.0.0.1   localhost
::1         localhost
127.0.1.1   myArch.localdomain  myArch

# 5. 为 root (超级管理员) 用户设置一个强密码
passwd
# 你需要输入两次密码进行确认

阶段五:安装引导程序 (GRUB)

引导程序是开机时加载操作系统的第一步。这里我们使用更常见的 GRUB

12. 安装微码 (Microcode)

微码是 CPU 厂商发布的固件更新,用于修复 Bug 和安全漏洞,是确保系统稳定运行的关键一步。请根据你的 CPU 厂商安装对应微码。

# Intel CPU
pacman -S intel-ucode

# AMD CPU
pacman -S amd-ucode

13. 安装并配置 GRUB

这一节把 GRUB 相关包安装、引导写入、配置修改和配置生成一次做完。注意,本文前面把 EFI 分区挂载到了 /boot/efi,所以这里的 EFI 目录要保持一致。

# 安装 GRUB 相关包
pacman -S grub efibootmgr os-prober

包说明:

  • grub:启动引导器本体。
  • efibootmgr:用于将启动项写入 UEFI NVRAM。
  • os-prober:如果你还装了 Windows,它可以帮助 GRUB 检测其他系统。
# 将 GRUB 安装到 EFI 分区
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=ARCH

📑 命令参数说明:

--target=x86_64-efi:为 64 位 UEFI 平台安装 GRUB。

--efi-directory=/boot/efi:将 grubx64.efi 安装到之前指定的 EFI 分区挂载位置。

--bootloader-id=ARCH:把启动项命名为 ARCH,便于在主板启动菜单中识别。

# 编辑 GRUB 默认配置
vim /etc/default/grub

# 建议将 GRUB_CMDLINE_LINUX_DEFAULT 改成下面这样
# 去掉 quiet,把 loglevel=3 改成 5,并加入 nowatchdog
GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog"

# 如果需要识别 Windows 等其他系统,请加入这一行
GRUB_DISABLE_OS_PROBER=false
# 生成 GRUB 配置文件
grub-mkconfig -o /boot/grub/grub.cfg

📑 命令参数说明:

grub-mkconfig -o /boot/grub/grub.cfg:根据当前系统环境生成最终的 GRUB 启动配置文件。

成功标志:命令执行完后,如果你看到发现 Linux 内核、initramfs,甚至还检测到 Windows Boot Manager,就说明引导配置基本没问题了。

至此,基础安装部分完成

所有配置工作都已完成,是时候见证奇迹了。

14. 退出、卸载并重启

# 1. 退出 chroot 环境,回到 Live U 盘
exit

# 2. 安全地卸载所有分区
umount -R /mnt

# 3. 重启电脑
reboot

📑 命令参数说明:

exit:退出当前 chroot 环境,回到安装 U 盘的 Live 系统。

umount -R /mnt:递归卸载 /mnt 下所有已挂载分区,避免因未卸载干净导致数据不同步。

reboot:重启系统,准备首次进入新安装的 Arch Linux。

重启时请记得拔掉安装 U 盘,否则机器可能再次进入安装环境而不是新系统。

到这里,你已经完成了 Arch Linux 的基础系统安装,包括磁盘分区、Btrfs 子卷、基本软件包、系统配置、引导程序与首次启动前的全部准备。

接下来若要安装图形界面、普通用户、GNOME 桌面环境与后续优化,请继续看下一篇:《Arch Linux 图形界面与 GNOME 环境配置指南》。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇