ThinkPad X220 安装 Arch Linux 完美指南

1 镜像准备

1.1 镜像下载

安装镜像 iso 在开源镜像站(推荐)或者 archlinux 官方下载页面 下载。

国内常用的提供 archlinux 安装镜像的开源镜像站(选一个即可):

在镜像网站找到 arch-linux,依次点击 iso > 20XX.XX.XX > archlinux-20XX.XX.XX-x86_64.iso

注: 确保下载最新的安装镜像!因为 archlinux 是滚动发行版,不存在使用旧的安装镜像安装旧版本的说法。

1.2 制作安装盘

在 macOS 上制作安装盘,直接使用命令行即可:

bash 复制代码
# 插入 U 盘,打开终端输入下面的命令查看 U 盘是否已经 mount 到系统:
diskutil list

/dev/disk4 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *61.9 GB    disk4
   1:               Windows_NTFS Lexar                   61.9 GB    disk4s1

# 我这里的 /dev/disk4 就是挂载的 U 盘。

# 使用 unmount 命令解除挂载:
diskutil unmountDisk /dev/disk4
# 输出
Unmount of all volumes on disk4 was successful

# 写系统镜像到 U 盘
sudo dd if=/Users/mac/Downloads/archlinux-2026.02.01-x86_64.iso of=/dev/disk4 bs=1m

# 等待一下,见到如下输出就表示已经成功完成了:
1478+1 records in
1478+1 records in
1550024704 bytes transferred in 35.682722 secs (43439082 bytes/sec)

2 基础安装

在 ThinkPad x220 USB 接口插入制作好的安装盘,开机。

每个品牌的电脑启动顺序设置各有差别,这里不做赘述。我这里是在一个干净的硬盘上安装,机器上没有额外的操作系统,直接开机就会进入安装盘的安装窗口。

ThinkPad x220 支持 Legacy BIOS 启动和 UEFI 启动两种方式,务必在 BIOS 里面设置成 UEFI 启动。

2.1 进入安装环境

选择第一项回车,进入安装环境后,便可以开始通过命令安装 archlinux 了。

2.2 禁用 reflector 服务

2020 年,archlinux 安装镜像中加入了 reflector 服务,它会自己更新 mirrorlist(pacman 的软件源)。在特定情况下,它会误删某些有用的源信息。

bash 复制代码
# 禁用服务
systemctl stop reflector.service

# 查看该服务是否被禁用
systemctl status reflector.service

2.3 确认是否为 UEFI 模式

确认是否为 UEFI 模式,因为 ThinkPad x220 如果不是 UEFI 模式,后面安装系统引导会有问题,会导致安装结束后无法进入硬盘内安装好的系统。

bash 复制代码
ls /sys/firmware/efi/efivars

# 若输出了一堆东西(efi 变量),则说明已在 UEFI 模式。

2.4 连接网络

archlinux 的安装必须要求网络环境。

如果是连接网线,不需要额外操作。如果是使用无线网,使用 iwctl 进行连接:

bash 复制代码
# 进入交互式命令行
iwctl

# 列出无线网卡设备名,比如无线网卡看到叫 wlan0
device list

# 扫描网络
station wlan0 scan

# 列出所有 wifi 网络
station wlan0 get-networks

# 进行连接,回车后输入密码即可
station wlan0 connect wifi-name

# 连接成功后退出
exit

测试网络连通性:

bash 复制代码
ping www.baidu.com -c 5

若能看到数据返回,即说明已经联网。

2.5 更新系统时钟

使用 timedatectl 确保系统时间是准确的:

bash 复制代码
# 将系统时间与网络时间进行同步
timedatectl set-ntp true

# 检查服务状态
timedatectl status

2.6 更换国内软件仓库镜像源

修改 /etc/pacman.d/mirrorlist 文件,将 pacman 软件仓库源更换为国内镜像源:

bash 复制代码
vim /etc/pacman.d/mirrorlist

推荐的镜像源如下(放在最上面):

bash 复制代码
# 中国科学技术大学开源镜像站
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

2.7 分区和格式化(Btrfs 文件系统)

Btrfs 文件系统的优点:

  • 快照 ------ archlinux 作为滚动发行版,若滚挂了可以使用 Btrfs 的快照特性快速回滚。若使用传统的 ext4 文件系统,可以借助 timeshift 的 RSYNC 模式进行增量备份。但 RSYNC 方式的快照大小约等于当前实际使用大小,相当于磁盘可用空间直接少了一半多。
  • 透明压缩 ------ 可以大大减少磁盘的使用空间(压缩率约 10%)
2.7.1 建立新的 GPT 分区表
bash 复制代码
# 通过 lsblk 命令区分要安装 archlinux 的磁盘(通过观察磁盘大小等判断)
lsblk
# 我这里盘符是 sda

# 执行 parted,进行磁盘类型变更
parted /dev/sda

(parted) mktable
# 输入 gpt,将磁盘类型转换为 GPT 类型。如磁盘有数据会警告,输入 Yes 即可
New disk label type? gpt

# 退出 parted 命令行交互
(parted) quit
2.7.2 磁盘分区
bash 复制代码
cfdisk /dev/sda

使用 cfdisk 可视化分区:

  • EFI 分区 :选中 Free space[New] → 输入分区大小(建议 512MB)→ [Type] → 选中 EFI System
  • Swap 分区 :选中 Free space[New] → 输入分区大小(建议为内存大小的 60% 或与内存大小相等)→ [Type] → 选中 Linux swap
  • Btrfs 分区 :选中 Free space[New] → 默认剩余全部空间 → [Write] → 输入 yes 确认

因为使用 Btrfs 文件系统,所以根目录和用户主目录在一个分区上。

分区完成后复查:

bash 复制代码
fdisk -l
# sda1 512MB EFI
# sda2 8GB SWAP
# sda3 224GB btrfs
2.7.3 格式化并创建 Btrfs 子卷
bash 复制代码
# 格式化 EFI 分区
mkfs.vfat /dev/sda1

# 格式化 Swap 分区
mkswap /dev/sda2

# 格式化 Btrfs 分区
mkfs.btrfs -L myArch /dev/sda3
# -L 选项后指定该分区的 LABEL,以 myArch 为例,不能使用特殊字符及空格

创建子卷:

bash 复制代码
# 将 Btrfs 分区挂载到 /mnt 下
mount -t btrfs -o compress=zstd /dev/sda3 /mnt

# 创建 / 目录子卷
btrfs subvolume create /mnt/@

# 创建 /home 目录子卷
btrfs subvolume create /mnt/@home

# 复查子卷情况
btrfs subvolume list -p /mnt

# 卸载 /mnt,准备挂载子卷
umount /mnt

2.8 挂载

挂载有顺序,需要从根目录开始:

bash 复制代码
# 挂载 / 目录
mount -t btrfs -o subvol=/@,compress=zstd /dev/sda3 /mnt

# 创建并挂载 /home 目录
mkdir /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sda3 /mnt/home

# 创建并挂载 /boot 目录
mkdir -p /mnt/boot
mount /dev/sda1 /mnt/boot

# 挂载交换分区
swapon /dev/sda2

# 复查挂载情况
df -h
free -h

2.9 安装系统

bash 复制代码
# 安装基础包
pacstrap /mnt base base-devel linux linux-firmware btrfs-progs

# 安装其他必要的功能性软件
pacstrap /mnt networkmanager vim sudo bash

base-devel 在 AUR 包的安装过程中是必须用到的。linux 内核软件包,建议先不要替换为其它内核。

2.10 生成 fstab 文件

bash 复制代码
genfstab -U /mnt > /mnt/etc/fstab

# 复查确保没有错误
cat /mnt/etc/fstab

2.11 Change Root

bash 复制代码
arch-chroot /mnt

此时,原来安装盘下的 /mnt 目录就变成了新系统的 / 目录。

2.12 设置主机名与时区

bash 复制代码
# 设置主机名
vim /etc/hostname
# 加入你想为主机取的主机名,比如叫 myarch(不能包含特殊字符以及空格)

# 设置匹配的 hosts 条目
vim /etc/hosts
# 127.0.0.1   localhost
# ::1         localhost
# 127.0.1.1   myarch.localdomain myarch

# 设置时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2.13 硬件时间设置

bash 复制代码
hwclock --systohc

2.14 设置 Locale

Locale 决定了软件使用的语言、书写习惯和字符集。

bash 复制代码
# 编辑 locale.gen,去掉 en_US.UTF-8 UTF-8 以及 zh_CN.UTF-8 UTF-8 行前的注释符号(#)
vim /etc/locale.gen

# 生成 locale
locale-gen

# 向 locale.conf 输入内容
echo 'LANG=en_US.UTF-8' > /etc/locale.conf
# 不推荐在此设置任何中文 locale,会导致 tty 乱码

2.15 为 root 用户设置密码

bash 复制代码
passwd root

2.16 安装微码

bash 复制代码
# ThinkPad x220 使用 Intel CPU
pacman -S intel-ucode

如果报错 ERROR: file not found: '/etc/vconsole.conf',先创建空文件:

bash 复制代码
touch /etc/vconsole.conf

之后再执行安装命令。

2.17 安装引导程序

bash 复制代码
# 安装相应的包
pacman -S grub efibootmgr os-prober

# 安装 GRUB 到 EFI 分区
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=ARCH

# 编辑 /etc/default/grub
vim /etc/default/grub

/etc/default/grub 进行如下修改:

  • 去掉 GRUB_CMDLINE_LINUX_DEFAULT 一行中最后的 quiet 参数
  • loglevel 的数值从 3 改成 5,方便后续系统错误排错
  • 加入 nowatchdog 参数,可以显著提高开关机速度
  • 如果是双系统,添加 GRUB_DISABLE_OS_PROBER=false

nowatchdog 参数无法禁用英特尔的看门狗硬件,改为 modprobe.blacklist=iTCO_wdt 即可。

bash 复制代码
# 生成 GRUB 配置文件
grub-mkconfig -o /boot/grub/grub.cfg

2.18 完成安装

bash 复制代码
# 退回安装环境
exit

# 卸载新分区
umount -R /mnt

# 重启(重启前先拔掉 U 盘)
reboot

重启后使用 root 账户登录系统:

bash 复制代码
# 设置开机自启并立即启动 NetworkManager 服务
systemctl enable --now NetworkManager

# 测试网络连接
ping www.baidu.com -c 5

若为无线连接,使用 nmcli 连接网络:

bash 复制代码
# 显示附近的 Wi-Fi 网络
nmcli dev wifi list

# 连接指定的无线网络
nmcli dev wifi connect "Wi-Fi名(SSID)" password "网络密码"

安装 fastfetch:

bash 复制代码
pacman -S fastfetch
fastfetch

关机命令:

bash 复制代码
shutdown -h now
# 或者
poweroff

3 桌面环境安装

没有图形界面的 archlinux 显然作为日常使用的操作系统是不合适的。

3.1 确保系统最新

bash 复制代码
pacman -Syu

3.2 配置 root 账户的默认编辑器

编辑 ~/.bash_profile 文件:

bash 复制代码
vim ~/.bash_profile
# 在适当位置加入以下内容:
export EDITOR='vim'

3.3 创建准非 root 用户

bash 复制代码
# 添加用户,比如新增加的用户叫 oehuosi
useradd -m -G wheel -s /bin/bash oehuosi

# 参数说明:
# -m      创建用户的同时创建用户家目录
# -G      指定附加组
# wheel  附加组可 sudo 进行提权
# -s      指定 shell 程序

# 设置新用户密码
passwd oehuosi

# 编辑 sudoers 文件
EDITOR=vim visudo /etc/sudoers

# 找到并去掉 %wheel ALL=(ALL:ALL) ALL 前面的注释符号 #

3.4 开启 32 位支持库与 archlinuxcn 源

bash 复制代码
vim /etc/pacman.conf
  • 去掉 [multilib] 一节中两行的注释,开启 32 位库支持
  • 在文档结尾处加入 archlinuxcn 源:
bash 复制代码
[archlinuxcn]
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/$arch
Server = https://mirrors.hit.edu.cn/archlinuxcn/$arch
Server = https://repo.huaweicloud.com/archlinuxcn/$arch
bash 复制代码
pacman -Syyu

3.5 安装 KDE Plasma 桌面环境

bash 复制代码
# 安装 plasma-meta 元软件包、konsole 终端模拟器和 dolphin 文件管理器
pacman -S plasma-meta konsole dolphin

如果想使用 Wayland:

bash 复制代码
pacman -S plasma-workspace xdg-desktop-portal
# N 卡用户需要额外安装 egl-wayland
# xdg-desktop-portal 是为了让 obs 等工具录制屏幕使用

3.6 配置并启动 SDDM

bash 复制代码
# 安装 SDDM
pacman -S sddm

# 开启 SDDM 服务
systemctl enable sddm

# 直接启动显示管理器(也可直接 reboot)
systemctl start sddm

输入新用户的密码并回车即可登录桌面。

3.7 安装基础功能包

bash 复制代码
# 声音固件
sudo pacman -S sof-firmware alsa-firmware alsa-ucm-conf

# 使系统可以识别 NTFS 格式的硬盘
sudo pacman -S ntfs-3g

# 安装开源中文字体
sudo pacman -S adobe-source-han-serif-cn-fonts wqy-zenhei

# 安装谷歌开源字体及表情
sudo pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra

# 常用浏览器
sudo pacman -S firefox chromium

# 压缩软件( dolphin 中可用右键解压)
sudo pacman -S ark

# 确保 Discover(软件中心)可用,需重启
sudo pacman -S packagekit-qt6 packagekit appstream-qt appstream

# 图片查看器
sudo pacman -S gwenview

# 游戏商店
sudo pacman -S steam

# archlinuxcn 源签名和 yay
sudo pacman -S archlinuxcn-keyring
sudo pacman -S yay

3.8 检查家目录

bash 复制代码
cd ~
ls -hl
xdg-user-dirs-update

3.9 配置非 root 账户的默认编辑器

bash 复制代码
vim ~/.bashrc
# 在适当位置加入以下内容:
export EDITOR='vim'

3.10 设置系统为中文(可选)

打开 System SettingsLanguage and Regional Settings → 在 Language 中点击 Add languages... → 选择中文加入 ADD,再拖拽到第一位 → 点击 Apply

注销并重新登录即可生效。

3.11 安装输入法

bash 复制代码
# 安装输入法基础包组和中文输入引擎
sudo pacman -S fcitx5-im
sudo pacman -S fcitx5-chinese-addons
sudo pacman -S fcitx5-anthy          # 日文输入引擎
sudo pacman -S fcitx5-pinyin-moegirl # 萌娘百科词库(archlinuxcn)
sudo pacman -S fcitx5-material-color # 输入法主题

设置环境变量:

bash 复制代码
vim ~/.config/environment.d/im.conf
# 在文件中加入以下内容:
GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

配置输入法:

  • 打开 系统设置 > 区域设置 > 输入法
  • 点击提示信息中的 运行 Fcitx
  • 点击 添加输入法 → 找到 简体中文 下的 Pinyin → 点击 添加
  • 点击 Pinyin 右侧的配置按钮 → 点选 云拼音在程序中显示预编辑文本 → 点击 应用
  • 回到输入法设置 → 点击 配置附加组件 → 找到 Classic User Interface → 选择一个喜欢的主题颜色 → 点击 应用

通过 Ctrl + 空格 切换中英文输入。

3.12 启动蓝牙(若有)

bash 复制代码
sudo systemctl enable --now bluetooth

3.13 设置 Timeshift 快照

bash 复制代码
sudo pacman -S timeshift

# 如果 Timeshift 没有自动备份,需要手动开启 cronie 服务
sudo systemctl enable --now cronie.service

打开 Timeshift,第一次启动会自动启动设置向导。

使用 Btrfs 文件系统
  • 快照类型选择 BTRFS,点击下一步
  • 快照位置选择 BTRFS 分区,点击下一步

  • 选择快照计划,点击下一步

由于 BTRFS 类型快照占用空间相对较小,可以适当提高快照数量。

  • 若希望 /home 用户主目录也快照,则勾选 在备份中包含 @home 子卷,然后点击下一步
  • 点击 完成 结束配置

完成后建议执行下述指令删除 subvolid,否则恢复 BTRFS 类型快照时,可能因子卷 ID 改变导致无法正常进入系统:

bash 复制代码
sudo sed -i -E 's/(subvolid=[0-9]+,)|(,subvolid=[0-9]+)//g' /etc/fstab

3.14 自动生成快照启动项

通过安装 grub-btrfs 包,可以实现在每次使用 grub-mkconfig 重新生成 GRUB 启动项时,自动添加快照的启动入口:

bash 复制代码
# 安装 grub-btrfs 并开启服务
sudo pacman -S grub-btrfs
sudo systemctl enable --now grub-btrfsd.service

修改监视路径:

bash 复制代码
sudo systemctl edit grub-btrfsd.service

# 在默认的光标位置,添加以下内容后保存并退出
[Service]
ExecStart=
ExecStart=/usr/bin/grub-btrfsd --syslog --timeshift-auto

# 重载并重启服务
sudo systemctl daemon-reload
sudo systemctl restart grub-btrfsd.service

自此,一个可以当作日常系统使用的 Arch Linux 已经基本配置完成!

相关推荐
自动化智库3 小时前
库卡机器人定义全局变量
linux·运维·机器人
Yiyi_Coding3 小时前
BUG列表:如何定位线上 OOM ?
java·linux·bug
杨云龙UP3 小时前
MySQL慢查询日志暴涨导致磁盘告警:slow query log膨胀至397G的生产故障排查:清理、参数优化
linux·运维·服务器·数据库·mysql
chQHk57BN3 小时前
DeepFlow Agent 故障排查指南:注册失败、协议解析、资源识别与配置方式
linux·运维·服务器
LSL666_4 小时前
Linux命令
linux·运维·服务器
SQVIoMPLe4 小时前
[拆解LangChain执行引擎]以Actor模型的视角来看Pregel
服务器·数据库·langchain
想唱rap4 小时前
线程之条件变量和生产消费模型
java·服务器·开发语言·数据库·mysql·ubuntu
笨笨饿4 小时前
32_复变函数在工程中实际应用区别于联系
linux·服务器·c语言·人工智能·单片机·算法·学习方法
Bert.Cai4 小时前
Linux pwd命令详解
linux·运维