Arch Linux 安装教程
此文章适用于现代(2010年及以后)的x86_64机器
截至教程发布日,Arch Linux Live CD的最新版本是2025年12月的,测试无误。
支持的硬件
·x86_64架构的CPU,建议为2008年以后的CPU,比如 Intel Core i系列之后的以及AMD FX
·至少有1GB内存(Arch Wiki上写的最小的512MB现在已经无法启动如今的Live CD)
·可用的网络连接
·20GB可用的硬盘空间
具体步骤
制作安装介质
- 到镜像站去下载最新的Arch Linux Live CD iso ->
https://mirrors.ustc.edu.cn/archlinux/iso/latest/archlinux-x86_64.iso - 使用工具将其写入到USB驱动器或者刻录光盘(不建议)
推荐写入工具balenaEtcher - 重启后按主板厂商的指引设置USB启动或选择USB启动(若失败请先关闭安全启动[^1])
- 从USB驱动器引导后就进入了Live CD环境
如果这一步循环重启,并且Systemd log输出往往是到和网络相关的部分卡住
关机,然后拔掉电源线,等待十秒以上再插电开机
Live CD设置
- 连接网络 ->
WIFI:如果直接插网线的话上面的步骤可以跳过iwctl station wlan0 scan iwctl station wlan0 get-networks iwctl station wlan0 connect $SSID --passphrase $WIFI_PASSWORD #$SSID代表WIFI的名字,$PASSWORD代表密码 ip addr如果没有
wlan0的话,可能是没有无线网卡或者是没有驱动,请插网线。如果没有RJ45网口,请更换无线网卡至AX210(
对于另一种情况(通常和上面提到的循环重启绑定),参见下面的内容
若ip addr返回了wlan0的信息并且下面有正确的ip,则代表网络已连接成功。可选:停止遇到循环重启的情况下,通常正常开机之后无线网卡被block了,需要手动unblock
rfkill unblock all之后和正常的操作方式并无差异
reflector服务,防止/etc/pacman.d/mirrorlist被写入其他地区镜像 ->systemctl stop reflector.service - 配置镜像
国内网络环境懂得都懂,用镜像(注意:这一步须在reflector.service停止后进行,可手动结束或等待其执行完成,否则编辑完的mirrorlist会被它重写) ->vim /etc/pacman.d/mirrorlist- 在文件开头按
i进入insert模式,添加Server = https://mirrors.ustc.edu.cn/archlinux/$repo/os/$arch - 按
esc退出insert模式,输入:wq保存并退出vim
- 在文件开头按
- (可选)ssh 远程连接
远程访问,可以直接复制命令。看 wlan0(如果是 WIFI 连接)下面的信息,这里会显示联网后本机在局域网内被分配的ip地址。记下它。ip a
然后我们设置这台机器 root 用户的密码:这里随便设一个,只要你能记住。passwd
我这里假设这台机器的ip是 192.168.101.12,于是在另一台在同一个局域网的机器上,执行 然后按提示,输入yes,再输入刚才设置的密码,就可以连接了。
磁盘相关
- 磁盘分区 ->
这一步需要按照情况自行更改,操作不当会导致数据丢失。一定要理解下面info中的内容。
我这台机器有一个NVME接口的固态硬盘,它的编号是
nvme0n1。在有多个NVME接口的主板上,如果你插了多块硬盘,它将会有nvme1n1、nvme2n1等编号,一定要清楚自己要操作的是哪块硬盘。连在SATA与USB接口上的硬盘会显示sda、sdb等,sda可能是U盘也可能是内置硬盘,请先lsblk进行辨认。这条命令的意义是对nvme0n1进行操作,请根据自身需要更改。cfdisk /dev/nvme0n1如果先前有Windows安装的话,请注意不要把Windows分区直接缩小大小,会让Windows坏掉。应先使用其他工具完成分区大小调整再进行后续步骤。
- 使用GPT分区表(这是UEFI引导的必须条件)
- 推荐分区方案 ->
- EFI分区:不小于4MB,类型:
EFI System - 主分区:不小于10GB,类型:
Linux filesystem
(建议在分区内部建立一个swapfile来承担swap的任务)

- EFI分区:不小于4MB,类型:
- 结束后,选
Write再输入yes来写入分区表,再选Quit退出
- 建立文件系统 ->
主分区使用btrfs文件系统如果先前安装了Windows或者其他操作系统,不要执行第一条,会导致Windows引导损坏。
这条命令也需要自行修改,意为在
nvme0n1的第一分区创建vfat文件系统,在nvme0n1的第二分区创建ext4文件系统。mkfs.vfat /dev/nvme0n1p1 mkfs.btrfs /dev/nvme0n1p2如果之前
nvme0n1p2建立过其他文件系统,这里需要按y确认。 - 挂载分区 ->
改,勿照抄。
/的nvme0n1p2挂载到/mnt,再把nvme0n1p1这个EFI分区挂到/mnt/boot/efi下。mount /dev/nvme0n1p2 /mnt mkdir -p /mnt/boot/efi mount /dev/nvme0n1p1 /mnt/boot/efi - 创建
swapfile->swap的用途是在内存不足时,将硬盘的一部分作为内存的扩展空间使用。这里swap创建为8G,可根据需要改变count=后的数字,单位是MB。当然如果内存够大也可以不用执行这些命令。dd if=/dev/zero of=/mnt/swapfile bs=1M count=8192 chmod 600 /mnt/swapfile mkswap /mnt/swapfile swapon /mnt/swapfile
安装系统
- 安装软件包 ->
首先初始化keyring!!pacman -Sy archlinux-keyring使用KDE Plasma作桌面环境的系统
pacstrap安装必要的包pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel git zsh zsh-completions grub efibootmgr networkmanager openssh vim plasma konsole dolphin noto-fonts-cjk noto-fonts noto-fonts-emoji noto-fonts-extra fcitx5-chinese-addons fcitx5-gtk firefox fastfetch btop使用GNOME作桌面环境的系统
pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel git zsh zsh-completions grub efibootmgr networkmanager openssh vim gnome noto-fonts-cjk noto-fonts-emoji noto-fonts-extra ibus ibus-libpinyin firefox fastfetch btop使用命令行界面的系统(Headless)
这是我的习惯 ->pacstrap /mnt base linux-zen linux-firmware linux-zen-headers base-devel git zsh zsh-completions grub efibootmgr networkmanager openssh vim fastfetch btop tmux - 生成
fstab->genfstab -U /mnt >> /mnt/etc/fstab chroot到新系统 ->arch-chroot /mnt
初步配置系统
- 时间设置 ->
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime hwclock --systohc - 用户设置 ->
echo archlinux > /etc/hostname useradd -m $NEW_USERNAME -G wheel passwd $NEW_USERNAMEuseradd用于添加账户,passwd用于修改密码,为安全考虑输入的密码不会直接显示出来。虽然没有反应,但确实是输入进去了。-m参数用以添加用户目录,-G参数用以将用户加入到wheel组中。这个组将会被赋予使用sudo的权力。 - 编辑
sudoers->将文件中的visudo# %wheel ALL=(ALL:ALL) ALL(大概率在第125行,使用vim按:125跳转)的注释取消,使得wheel组里的用户可以使用sudo - 配置
zsh->zsh 是一个有强大客制化能力的 shell,并且 Apple 也将新 macOS 默认的 shell 换成了 zsh。现在Arch Linux Live CD 的默认 shell 就是 zsh。
如果不喜欢zsh,或者考虑兼容性,请跳过这一步。sudo pacman -S grml-zsh-config - 本地化 -> 此处命令意为去掉
echo "LANG=\"en_US.UTF-8\"" >> /etc/locale.conf sed -i "s@#zh_CN.UTF-8 UTF-8@zh_CN.UTF-8 UTF-8@g" /etc/locale.gen sed -i "s@#en_US.UTF-8 UTF-8@en_US.UTF-8 UTF-8@g" /etc/locale.gen#zh_CN.UTF-8 UTF-8和#en_US.UTF-8 UTF-8的注释符号“#”
最后运行 ->locale-gen - 服务设置 ->
systemctl enable NetworkManager systemctl enable sshd systemctl enable sddm # KDE systemctl enable gdm # GNOME - 引导设置 ->
gurb已支持引导Windows。
可以让grub找到Windows。对于sudo pacman -Sy ntfs-3g os-proberUEFI引导的安装方式
grub-install --target=x86_64-efi --efi-directory=/boot/efi sed -i "s@#GRUB_DISABLE_OS_PROBER=false@GRUB_DISABLE_OS_PROBER=false@g" /etc/default/grub grub-mkconfig -o /boot/grub/grub.cfg
对于BIOS引导的安装方式
grub-install /dev/nvme0n1 sed -i "s@#GRUB_DISABLE_OS_PROBER=false@GRUB_DISABLE_OS_PROBER=false@g" /etc/default/grub grub-mkconfig -o /boot/grub/grub.cfg - 退出
chroot环境并重启 ->至此Arch Linux的安装就完成了exit reboot
接下来是配置部分
进一步配置系统
如果是KDE的话,重启系统后,大概就是这样的 ->
输入法配置
首先把Fcitx5设为默认输入法并自动启动 ->
编辑 /etc/environmentsudo vim /etc/environment把下面的东西加进去 ->
GTK_IM_MODULE=fcitx QT_IM_MODULE=fcitx XMODIFIERS=@im=fcitx SDL_IM_MODULE=fcitx GLFW_IM_MODULE=ibus进入设置 -> 键盘 -> 虚拟键盘,并按使用的 Compositor 设置:

之后注意任务栏右下角的键盘图标:
如果直接右键-配置是会显示这个的 ->

这会进入文本配置,显然我们是不懂的(
所以要安装fcitx5-configtool->sudo pacman -S fcitx5-configtool然后再
右键-配置就可以看到 ->

重新登录就可以正常使用了
更多用法请参阅Arch Wiki软件源
众所周知,官方源对于灰色地带/非自由软件是不收录的。
所以我们通常用第三方源+AUR来进行补充。
官方源是不带任何AUR工具的,所以我们先装archlinuxcn源 ->sudo vim /etc/pacman.conf加入以下文本 ->
[archlinuxcn] Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$arch然后获取
keyring->(2024.9.7测试问题已解决,此部分的内容已过时,仅在后续出现类似问题时供参考用)
近期这一步会出现问题,因为archlinuxcn 社区源的 keyring 包 archlinuxcn-keyring 由 farseerfc 的 key 签署验证,而 Arch Linux 官方 keyring 中包含了 farseerfc 的 key 。自12月初 archlinux-keyring 中删除了一个退任的 master key (https://gitlab.archlinux.org/archlinux/archlinux-keyring/-/issues/246) 导致 farseerfc 的 key 的信任数不足,由 GnuPG 的 web of trust 推算为 marginal trust,从而不再能自动信任 archlinuxcn-keyring 包的签名。(转自Arch Linux CN Telegram Messages Channel)如果你在新系统中尝试安装
archlinuxcn-keyring包时遇到如下报错:error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) <[email protected]>" is marginal trust请使用以下命令在本地信任 farseerfc 的 key 。此 key 已随
archlinux-keyring安装在系统中,只是缺乏信任:sudo pacman-key --lsign-key "[email protected]"然后
sudo pacman -Sy archlinuxcn-keyring就可以使用
archlinuxcn源了!
由于要使用AUR,所以我们先装一个AUR工具:sudo pacman -S paru详细的用法和
pacman一样。引导Windows
在安装系统时,os-prober往往不能正常检测到Windows,需要我们再运行sudo grub-mkconfig -o /boot/grub/grub.cfg重启即可看到
Windows Boot Manager。
显卡驱动
如果是A卡和I卡,开源的驱动会做得很好
sudo pacman -S xf86-video-amdgpu # AMD
sudo pacman -S xf86-video-intel # Intel对于部分老显卡,可能不适用,需要移步 Arch Wiki 中相关部分
https://wiki.archlinux.org/title/Xorg#Driver_installation
而N卡,需要进行以下步骤
查看显卡型号
lspci -k | grep -A 2 -E "(VGA|3D)"GeForce 900 系以及更新的显卡(NV110+),安装 nvidia(用于官方源里的标准内核)或者 nvidia-lts(用于 linux-lts 内核)
Turing (NV160/TUXXX) 系列或更新的显卡。可以安装 nvidia-open 包,开源的(仅适用于官方源里的内核,其他内核上必须使用 nvidia-open-dkms 包)
更老的显卡型号(发布于 2010 年或更早),就用内核自带的 Nouveau
安装驱动
sudo pacman -S nvidia-open-dkms nvidia-settings后续
安装 NVIDIA 官方的驱动之后,需要编辑/etc/mkinitcpio.conf,在 HOOKS 一行删除kms并保存
然后执行
mkinitcpio -P重新生成一次镜像。这能防止 initramfs 包含 nouveau 模块,避免 nouveau 和官方驱动的冲突。
笔记本双显卡配置
因为笔记本经常遇到需要睡眠/唤醒的情况,故不建议在使用Linux时开启独显直连
建议使用Intel/AMD的核显,安装适用的驱动,还有渲染分载需要的NVIDIA PRIME
sudo pacman -S xf86-video-amdgpu # AMD
sudo pacman -S xf86-video-intel # Intel
sudo pacman -S nvidia-prime之后就可以愉快的使用 Wayland 作为显示协议
在需要使用 NVIDIA GPU 的时候(如游戏),使用
prime-run xxx # xxx为命令常用软件
- telegram
sudo pacman -S telegram-desktop- Visual Studio Code(Official version)
paru -S visual-studio-code-bin- Wine
先启动/etc/pacman.conf中的multilib源,其中包含32位软件
不要直接复制这些命令,要先看好你的显卡是哪家的
sudo pacman -S lib32-mesa # 普通御三家卡
sudo pacman -S lib32-nvidia-utils # 绿厂闭源驱动,效果好,需要现代N卡
sudo pacman -S lib32-amdgpu-pro-oglp # 专业A卡
sudo pacman -S wine wine-gecko wine-mono lib32-alsa-lib lib32-alsa-plugins- Chrome / Edge
paru -S microsoft-edge-stable-bin # 莫名慢速下载警告
paru -S google-chrome- 网易云音乐
现在可以使用Web版:https://music.163.com/st/webplayer
因为原版好像似了一半,所以使用替代版
Go 写的 musicfox,TUI 版网易云
paru -S go-musicfox-git原版:
paru -S netease-cloud-music- Steam
sudo pacman -S steam
paru -S proton- Clash Verge Reversion
这是一个 Clash Verge 的修复版本,解决了原版无法更新订阅的问题
paru -S clash-verge-rev美化
替换 ls 与 cat
ls -> eza
cat -> bat
这两个是用Rust写的升级版
sudo pacman -S eza bat将如下内容填入 ~/.zshrc
alias ls="eza"
alias cat="bat"Shell
对于 zsh, 我推荐 Powerlevel10k。
它的 Github 仓库链接是https://github.com/romkatv/powerlevel10k
当你添加了 archlinuxcn 源之后,你可以
sudo pacman -S zsh-theme-powerlevel10k-git创建~/.zshrc并加入source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
在这里如果你直接运行source ~/.zshrc,你会发现这里有很多图标不能显示。
所以要安装「高级」的字体,也就是打了补丁的 Nerd Fonts。这是一个系列,加入了很多图标。
我喜欢 Meslo Font,你也可以换成别的,比如 ttf-jetbrains-mono-nerd
paru -S ttf-meslo-nerd重启Konsole, 然后新建配置文件,更改字体,
然后source ~/.zshrc并运行p10k configure就可。
字体配置
一天你打开浏览器,看到了抽象的日本字体,比如关、复的字形过窄,门的点变成了竖插在上面……
这是不可接受的。
于是你执行mkdir -p ~/.config/fontconfig && vim ~/.config/fontconfig/fonts.conf
把以下内容写了进去:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
<family>sans-serif</family>
<prefer>
<family>Noto Sans CJK SC</family>
<family>Noto Sans CJK TC</family>
<family>Noto Sans CJK JP</family>
</prefer>
</alias>
<alias>
<family>monospace</family>
<prefer>
<family>Noto Sans Mono CJK SC</family>
<family>Noto Sans Mono CJK TC</family>
<family>Noto Sans Mono CJK JP</family>
</prefer>
</alias>
</fontconfig>并fc-cache -fv
问题就聪明的解决了。
Vim
Vim 是一个文本编辑器,我们已经安装好了。
它有强大的客制化能力,你甚至可以把它变成IDE。
比如https://github.com/amix/vimrc
git clone --depth=1 https://github.com/amix/vimrc.git ~/.vim_runtime
sh ~/.vim_runtime/install_awesome_vimrc.sh如果网络条件差也是没有办法((
请注意一下「常用软件」部分的第7号,这是一个奇妙小工具。