Arch Linux UEFI 安装指南:Btrfs 子卷 + GNOME 桌面环境

从零开始配置现代化 Arch Linux 系统(含 Timeshift 快照支持)

声明:原作者信息

  • 哔哩哔哩主页:https://space.bilibili.com/2017026819
  • QQ号:2037566388

温馨提示:本教程仅适用于UEFI设备 (包括虚拟机模拟UEFI或真机UEFI)。使用传统BIOS(Legacy)设备的,出门左拐,找其他教程去

🎒 准备开始

需要准备的东西

重要注意事项

安全小贴士

  • 备份好所有重要数据
  • 操作有风险,三思而后行
  • 如果是第一次尝试,强烈建议先在虚拟机里练习

🖥️ 启动Live环境

启动方式选择

  • 使用虚拟机:直接加载下载好的ISO镜像启动
  • 使用实体机:需要用工具把ISO写入U盘后从U盘启动

💾 一、磁盘分区与配置

1. 使用cfdisk分区工具

1
cfdisk /dev/sda

分区步骤详解

  • 初始化磁盘格式:选择 gpt 选项
  • 创建EFI系统分区
    • 大小设置为500M
    • 类型选 EFI System
  • 创建根分区
    • 使用剩下的所有空间
    • 类型选择 Linux root (x86-64)

分区表示例

1
2
3
4
5
6
Disk: /dev/sda
Size: 64GiB
Label: gpt
Device    Start   End       Size  Type
/dev/sda1 2048    1026047   500M  EFI System
/dev/sda2 1026048 134215679 63.5G Linux root (x86-64)

选择Write写入分区表 输入yes确认写入 选择quit退出程序

2. 格式化分区操作

1
2
3
4
5
# 格式化EFI分区为FAT32格式
mkfs.fat -F32 -n "ARCH-EFI" /dev/sda1

# 格式化根分区为Btrfs格式
mkfs.btrfs -L "arch-root" /dev/sda2

3. Btrfs子卷设置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 先挂载根分区
mount /dev/sda2 /mnt

# 创建必要的子卷
btrfs subvolume create /mnt/@            # 根目录子卷
btrfs subvolume create /mnt/@home        # 用户目录子卷
btrfs subvolume create /mnt/@timeshift   # 备份子卷

# 临时卸载
umount /mnt

4. 创建挂载点结构(请在挂载@子卷后执行)

1
2
3
4
5
# 创建必要的目录结构
mkdir -p /mnt/{boot/efi,home,timeshift-btrfs}

# 挂载EFI分区
mount /dev/sda1 /mnt/boot/efi

5. 分情况挂载磁盘

根据你的硬件配置选择并执行合适的挂载命令:

  • 实体机(SSD,2017年及以后的CPU):
1
2
3
mount -o subvol=@,compress=zstd:3,noatime,ssd /dev/sda2 /mnt # 挂载主卷
mount -o subvol=@home,compress=zstd:4,noatime,ssd /dev/sda2 /mnt/home # 挂载用户卷
mount -o subvol=@timeshift,compress-force=zstd:5,noatime,ssd /dev/sda2 /mnt/timeshift-btrfs # 挂载备份卷
  • 实体机(SSD,2016年及以前的CPU):
1
2
3
mount -o subvol=@,compress=zstd:2,noatime,ssd /dev/sda2 /mnt # 挂载主卷
mount -o subvol=@home,compress=zstd:3,noatime,ssd /dev/sda2 /mnt/home # 挂载用户卷
mount -o subvol=@timeshift,compress-force=zstd:4,noatime,ssd /dev/sda2 /mnt/timeshift-btrfs # 挂载备份卷
  • 虚拟机(虚拟磁盘文件存放在SSD,注意不是虚拟磁盘模拟SSD!):
1
2
3
mount -o subvol=@,compress=zstd:1,noatime,ssd /dev/sda2 /mnt # 挂载主卷
mount -o subvol=@home,compress=zstd:2,noatime,ssd /dev/sda2 /mnt/home # 挂载用户卷
mount -o subvol=@timeshift,compress-force=zstd:3,noatime,ssd /dev/sda2 /mnt/timeshift-btrfs # 挂载备份卷
  • HDD(实体机HDD/虚拟磁盘文件存放在HDD):
1
2
3
mount -o subvol=@,compress=lzo,noatime /dev/sda2 /mnt # 挂载主卷
mount -o subvol=@home,compress=lzo,noatime /dev/sda2 /mnt/home # 挂载用户卷
mount -o subvol=@timeshift,compress-force=lzo,noatime /dev/sda2 /mnt/timeshift-btrfs # 挂载备份卷
  • 不确定CPU发布年份,但只确定使用SSD(实体机SSD/虚拟磁盘文件存放在SSD):
1
2
3
mount -o subvol=@,compress=auto,noatime,ssd /dev/sda2 /mnt # 挂载主卷
mount -o subvol=@home,compress=auto,noatime,ssd /dev/sda2 /mnt/home # 挂载用户卷
mount -o subvol=@timeshift,compress=auto,noatime,ssd /dev/sda2 /mnt/timeshift-btrfs # 挂载备份卷
  • 不确定CPU发布年份,但只确定使用HDD(实体机HDD/虚拟磁盘文件存放在HDD)或完全不确定:
1
2
3
mount -o subvol=@,compress=auto,noatime /dev/sda2 /mnt # 挂载主卷
mount -o subvol=@home,compress=auto,noatime /dev/sda2 /mnt/home # 挂载用户卷
mount -o subvol=@timeshift,compress=auto,noatime /dev/sda2 /mnt/timeshift-btrfs # 挂载备份卷

📦 二、安装基础系统

1. 配置pacman

1
nano /etc/pacman.conf

找到并取消注释 Color
在下面添加 ILoveCandy
在文件末尾添加以下内容:\

1
2
[archlinuxcn]
Server = https://mirrors.163.com/archlinux-cn/$arch

必做! 不加这个到时候你pacstrap装不了paru!(paru相关详见Q&A)
完事后保存,然后添加archlinuxcn密钥:

1
2
pacman-key --lsign-key 'farseerfc@archlinux.org'
pacman -Sy archlinuxcn-keyring

(拍桌)重要操作! 这一步相当于给软件源上一把锁,不做的话后面装软件会报错到怀疑人生~

2. 使用国内镜像加速

1
2
3
4
5
6
# 设置镜像源
echo 'Server = https://mirrors.jxust.edu.cn/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist # 江西理工大学是一个很快的镜像源,比隔壁北外都快(北外最近开始限速了)
echo 'Server = https://mirrors.163.com/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist # 可选,添加该备用源后可在江西理工大学镜像源不可用时让冈门替补

# 刷新软件包数据库
pacman -Syy

3. 安装基本系统

1
pacstrap /mnt base base-devel linux-zen linux-zen-headers linux-firmware htop cpupower nano dhcpcd net-tools networkmanager iw wpa_supplicant bluez bluez-utils grub efibootmgr sudo doas snapper timeshift fastfetch paru # 这里paru来自archlinuxcn源

⚙️ 三、系统基础配置

1. 生成fstab

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

2. 进入新系统环境

1
arch-chroot /mnt

3. 本地化设置

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 设置中文locale
nano /etc/locale.gen  # 取消注释 zh_CN.UTF-8 UTF-8
locale-gen

# 设置默认语言
echo LANG=zh_CN.UTF-8 > /etc/locale.conf

# 设置时区
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 这里没有北京,只有上海~

# 同步硬件时钟
hwclock --systohc --utc

4. 网络相关配置

1
2
3
4
5
6
7
# 设置主机名(示例主机名wssllhdg,因为原作者是神里绫华的狗!可以改成你喜欢的名字)
echo wssllhdg > /etc/hostname

# 启用网络服务
systemctl enable dhcpcd # DHCP
systemctl enable NetworkManager # WiFi和有线
systemctl enable bluetooth  # 蓝牙

5. 用户账户管理

1
2
3
4
5
6
7
8
# 设置root密码
passwd root

# 创建普通用户(示例用户名为ayaka,因为原作者是个绫华厨!可以改成你喜欢的名字)
useradd -m -g users -G wheel -s /bin/bash ayaka

# 设置用户密码(记得将“ayaka”改为你的用户名)
passwd ayaka

6. 配置sudo和doas

  1. 配置sudo:
1
EDITOR=nano visudo

在文件末尾添加以下内容(记得将“ayaka”改为你的用户名):

1
2
3
4
%wheel ALL=(ALL:ALL) ALL
%sudo ALL=(ALL:ALL) ALL
ayaka ALL=(ALL:ALL) ALL
Defaults pwfeedback
  1. 配置doas:
1
nano /etc/doas.conf

添加以下内容(记得将“ayaka”改为你的用户名):

1
2
3
permit persist :wheel as root
permit persist :sudo as root
permit persist ayaka as root

7. 安装引导程序

1
2
3
4
5
6
7
8
9
# 安装GRUB引导
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id='Arch Linux'

# 生成GRUB配置
grub-mkconfig -o /boot/grub/grub.cfg

# 生成initramfs
echo 'HOOKS=(base udev autodetect microcode modconf kms keyboard keymap consolefont block filesystems btrfs fsck)' >> /etc/mkinitcpio.conf
mkinitcpio -p linux-zen

8. 完成安装,准备重启

1
2
3
4
5
6
7
8
# 退出chroot环境
exit

# 卸载所有分区
umount -R /mnt

# 重启进入新系统
reboot

🖥️ 四、安装图形界面

1. 登录新系统

使用之前设置的用户名和密码登录tty终端

2. 配置pacman

1
doas nano /etc/pacman.conf

找到并取消注释 Color
在下面添加 ILoveCandy
在文件末尾添加以下内容:

1
2
[archlinuxcn]
Server = https://mirrors.163.com/archlinux-cn/$arch

必做! 不做这一步你到时候没法更新paru! 完事后保存,然后添加archlinuxcn密钥:

1
2
doas pacman-key --lsign-key 'farseerfc@archlinux.org'
LANG=C paru -Sy archlinuxcn-keyring

(拍桌)重要操作! 这一步相当于给软件源上一把锁,不做的话后面装软件会报错到怀疑人生~

3. 使用国内镜像加速

1
2
3
4
5
6
# 设置镜像源
echo 'Server = https://mirrors.jxust.edu.cn/archlinux/$repo/os/$arch' | doas tee /etc/pacman.d/mirrorlist
echo 'Server = https://mirrors.163.com/archlinux/$repo/os/$arch' | doas tee -a /etc/pacman.d/mirrorlist

# 刷新软件包数据库
LANG=C paru -Syy

4. 安装GNOME桌面环境、中文输入法和常用软件

1
2
3
LANG=C paru -Sy --needed xorg gnome gnome-tweaks gnome-console gnome-nettool gnome-usage adwaita-icon-theme xdg-user-dirs-gtk fwupd gdm ibus ibus-libpinyin qt5ct qt6ct libreoffice-fresh waterfox-bin vlc wqy-microhei # 其中waterfox是AUR软件,这里我们用bin是为了加快安装速度
paru -R epiphany # 顺便淦掉GNOME自带的难用的浏览器
echo 'export QT_QPA_PLATFORMTHEME=qt5ct' | tee -a ~/.xprofile | tee -a ~/.profile | tee -a ~/.bashrc # 设置Qt优化工具

5. 字体缓存重建

1
doas fc-cache -fv

6. 启用显示管理器并重启

1
2
doas systemctl enable gdm
doas reboot

🎉 四、大功告成!

恭喜你!现在可以享受你的Arch Linux系统啦!(ノ◕ヮ◕)ノ*:・゚✧

小提示: 第一次进入GNOME桌面时,别忘了点击"进行导览"看看新手教程哦~
配置输入法: 打开GNOME设置 → 键盘 → 添加输入源 → 中文 → 汉语(智能拼音) → 将“汉语(智能拼音)”放在第一位

🔙 五、Timeshift使用教程

1. Timeshift是什么?

Timeshift是一款用于Linux系统的系统备份和恢复工具 ,它能创建系统快照,就像给系统拍了一张张“照片”。在系统出现问题时(比如软件冲突导致无法启动、错误配置影响使用等情况),能将系统恢复到之前正常的状态。因其出色的备份与恢复能力,在Arch Linux堪称“必装软件”!因其能够充分利用Btrfs的快照和子卷特性,与Btrfs简直像是一对CP!
虽然它也有Rsync方式,但是它很慢!不信请看VCR:\

真实案例: 原作者曾在Ta的Fedora实体机使用sudo dnf upgrade --refresh进行系统更新,结果Ta的AMD显卡驱动炸了!Ta尝试使用Timeshift,因Ta在安装Fedora时使用了ext4文件系统,只能使用Rsync。结果Ta的系统有一堆零碎文件,导致不管是备份还是恢复都很慢!
来自Moieo的调侃: “你当时就应该选Btrfs并创建timeshift子卷!现在怎么办?凉拌! ”(拿起Fedora 42 Live USB疯狂暗示原作者)

2. 如何使用Timeshift?

  1. 启动(并初始化)Timeshift - 双击Meta/Super键(Windows微标键/Command键),打开LaunchPad。 - 找到Timeshift,点击它。 - 输入你的用户密码,然后进入主界面/初始化界面。 - 当提示“选择快照类型”时,使用BTRFS,点击“下一个”。 - 当提示“选择快照位置”时,直接使用sda2,然后下一个! - 计划备份你自己看怎么安排就行。然后下一步。 - 备份home子卷?直接下一步就行,不用点! - 直接完成!

  2. 进行备份 - 进入程序主界面后,直接点击“创建”即可。 强烈建议安装完成后先进行一次初始备份!

  3. 恢复备份 - 点击你要恢复的备份,然后点击“恢复”。 - 直接点击“下一个”。 - 关闭窗口,然后重启。

❓ 六、Q&A

Q:不添加archlinuxcn密钥会怎么样?
A:会收到“签名无效”警告,无法安装paru、中文输入法、微信等archlinuxcn源软件,然后只能重装系统💥

Q:sudodoas我该用哪个?
A:优先使用sudo。如果你在tty界面(tty无法显示中文,且doas默认英文)或你的sudo坏了(如“即使密码输入正确,也提示验证失败”),则使用doas

Q:为什么某些命令前面还需要加个LANG=C
A:如前所述,tty无法显示中文。加入该参数后,执行该命令会以英文输出。

Q:为什么推荐使用paru进行所有软件包操作,而不是使用pacmanyay
A:paru是一个新晋AUR助手。它有一个很NB的点,那就是:paru支持无缝对接pacman,这一点yay干不到!通过paru,你就能像使用pacman那样,一键搜索官方源和AUR软件!(前面甚至都不用加sudo/doas,少打5个字符!)
当然,你也可以为了方便,在安装完成后,这么干!

1
2
3
4
5
echo 'alias yay=paru' >> ~/.bashrc
echo 'alias pacman=paru' >> ~/.bashrc
sudo -i # 好人干到底!!!
echo 'alias yay=paru' >> ~/.bashrc
echo 'alias pacman=paru' >> ~/.bashrc

如果你用的zsh,那你就这么干!

1
2
echo 'alias yay=paru' >> ~/.zshrc
echo 'alias pacman=paru' >> ~/.zshrc

温馨提示:别踏马手欠把paru扬了,到时候你只能暂时unaliasparupacman弄回来!

Q:为啥我创建快照时提示「空间不足」?
A:检查一下/mnt/timeshift-btrfs目录!

  • Btrfs 快照会共享文件数据,但子卷本身需要预留空间(建议给@timeshift子卷分配至少 10GB)
  • 如果你往系统里塞了 100 个 G 的原神缓存,快照空间当然会爆啊!( du -sh /var/cache/paru自己查!)

Q:恢复快照后,我的桌面壁纸/文档不见了?
A:先别急!

  • Timeshift 默认只备份 系统分区(/),不包括 数据分区(如 /home)
  • 解决方案:
    1. 手动把/home加入备份范围(GUI 里编辑快照设置)
    2. 下次重装前,记得用rsync -avh /home /backup单独备份数据!

Q:Btrfs 快照真的比 Rsync 快 100 倍?
A:实测数据说话:

  • Rsync 备份 20GB 系统:23 分钟(零碎文件让它像蜗牛)
  • Btrfs 快照:0.3 秒(写时复制直接“克隆”元数据)
    (这就是为什么我宁愿花 1 小时研究 Btrfs,也不愿再等 Rsync 龟速备份)

Q:不小心把重要快照扬了,还能抢救吗?
A:节哀顺变…

  • Btrfs快照删除后默认直接释放空间,不像Rsync有“保留版本”机制
  • 下次记得定期检查快照列表( btrfs subvolume list /timeshift-btrfs),别妮玛手滑点“删除”!

Q:能不能用 Timeshift 备份 Windows 分区?
A:你在想pitch!

  • Timeshift 只认 Linux 文件系统(Btrfs/Ext4)
  • Windows 的 NTFS 分区?建议用winsync或者直接买移动硬盘拷贝!

Q:教程里说「Timeshift 是 Arch 必装」,真的不是广告吗?
A:当然不是!

  • 除非 Timeshift 给我打钱(但他们开源项目穷得连服务器都靠爱发电)
  • 装不装随你,但等你误扬/usr又没快照时,别来论坛哭唧唧!

Q:能不能在快照期间强制关机?
A:禁止套娃!

  • Btrfs 快照创建时正在记录元数据,强制关机可能导致文件系统损坏
  • 正确做法:等快照完成( timeshift --wait查看进度),或者先喝杯咖啡再关机~

Q:系统卡顿/风扇狂转怎么办?
A:先查这!

  1. 打开终端输入 htop → 找出占用资源的进程(可能是paru编译AUR包)
  2. 笔记本用户:安装并启用power-profiles-daemon优化电池管理:
1
2
3
paru -S power-profiles-daemon
sudo systemctl enable power-profiles-daemon.service 
sudo systemctl start power-profiles-daemon.service
  1. 桌面环境:GNOME默认后台服务较多,可禁用不必要的扩展

Q:SSD寿命会被Btrfs淦爆吗?
A:想多了!

  • Btrfs自带TRIM支持(默认启用)
  • 日常使用下,512GB SSD撑10年没问题(除非你拿它当硬盘录像机)

Q:Steam游戏卡顿/闪退?
A:兼容模式欢迎你!

1
2
3
# 安装Steam Play
paru -S steam-native-runtime proton-ge-custom
# 右键游戏 → 属性 → Steam Play → 勾选“启用非Steam游戏兼容层”

Q:如何优雅地截图?
A:按下Print Screen键,直接进入GNOME Screenshot!

Q:能Arch上安装Windows软件吗?
A:当然能! 简单程序:用wine!(paru -S wine-staging) 复杂软件:装虚拟机!(Virtualbox/VMware)

Q:误删/usr了怎么办?
A:凉拌炒鸡蛋,好吃又好看!

1
reboot && sudo pacman -S arch-install-scripts  # 重装吧,少年

开玩笑的。。。如果你之前有Timeshift备份,还可以抢救一下(Timeshift没备份过你就重装吧)

Q:Arch能用来办公吗?
A:不仅能!还能摸鱼!

Q:为什么我们选择Arch而不是Ubuntu?
A:因为我们追求:

  • 滚动更新带来的新鲜感
  • 自己配置系统的掌控感
  • 向新手炫耀时的成就感😎
    (Ubuntu:那我走?)
    以及……
  • 不被Snap限制的自由感!
    (Ubuntu:Snap多好用啊)

Q:Arch难吗?
A:那必须的!但学会后:

  • 装Windows系统像过家家
  • 看其他Linux文档像读小学课本
  • 从此告别“电脑小白”称号🏆

Q:其他问题?
A:Arch Linux 中文维基 里面请

Q:中文Wiki没写?
A:出门右拐 Arch Linux Wiki

Q:英文Wiki也没写?
A:(拍桌)大侠且慢!此处藏着30万Arch玩家,再难的坑也能给你盘出花来:Arch Linux 中文论坛

Q:为什么这个教程天天在更新?
A:原作者要么就是为了语言表述更准确,要么就是因为你们的建议要更新教程,以及呼应Arch Linux滚动更新 Q:当前教程版本号? A:北京时间 2025年6月1日 00:00:00

Licensed under CC BY-NC-SA 4.0
昵称
邮箱
网址
0/500
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
  • Bilibili
0 条评论
没有评论
  • 今日访客数 8
  • |
  • 今日浏览量 8
  • |
  • 昨日访客数 38
  • |
  • 昨日浏览量 38
  • |
  • 总访浏览量 2594