Arch Linux 安装教程
此文章适用于现代(2010年及以后)的x86_64机器
截至教程发布日,Arch Linux Live CD的最新版本是2025年1月的,测试无误。
支持的硬件
·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输出往往是到和网络相关的部分卡住
关机,然后拔掉电源线,等待十秒以上再插电开机
定义环境变量(可选)
很多命令都需要更改为你自己的设置。
因此为了方便(可以直接复制我的),我们在此处先定义一些环境变量。
这些环境变量的定义需要你在等号=后面输入要输入的信息。
首先,是你要连接的 WIFI 名字,也就是 SSID:
| 1 |  | 
然后是它的密码:
| 1 |  | 
新建的用户名字:
| 1 |  | 
Live CD设置
- 连接网络 ->
 WIFI:如果直接插网线的话上面的步骤可以跳过1 
 2
 3
 4iwctl 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 1 rfkill unblock all之后和正常的操作方式并无差异 reflector服务,防止/etc/pacman.d/mirrorlist被写入其他地区镜像 ->1 systemctl stop reflector.service
- 配置镜像
 国内网络环境懂得都懂,用镜像(注意:这一步须在reflector.service停止后进行,可手动结束或等待其执行完成,否则编辑完的mirrorlist会被它重写) ->1 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地址。记下它。1 ip a
 然后我们设置这台机器 root 用户的密码:这里随便设一个,只要你能记住。1 passwd
 我这里假设这台机器的ip是 192.168.101.12,于是在另一台在同一个局域网的机器上,执行然后按提示,输入1 ssh [email protected]yes,再输入刚才设置的密码,就可以连接了。
磁盘相关
- 磁盘分区 -> 这一步需要按照情况自行更改,操作不当会导致数据丢失。一定要理解下面info中的内容。 我这台机器有一个NVME接口的固态硬盘,它的编号是 nvme0n1。在有多个NVME接口的主板上,如果你插了多块硬盘,它将会有nvme1n1、nvme2n1等编号,一定要清楚自己要操作的是哪块硬盘。连在SATA与USB接口上的硬盘会显示sda、sdb等,sda可能是U盘也可能是内置硬盘,请先lsblk进行辨认。这条命令的意义是对nvme0n1进行操作,请根据自身需要更改。1 cfdisk /dev/nvme0n1如果先前有Windows安装的话,请注意不要把Windows分区直接缩小大小,会让Windows坏掉。应先使用其他工具完成分区大小调整再进行后续步骤。 - 使用GPT分区表(这是UEFI引导的必须条件)
- 推荐分区方案 ->- EFI分区:不小于4MB,类型:EFI System
- 主分区:不小于10GB,类型:Linux filesystem
 (建议在分区内部建立一个swapfile来承担swap的任务)
  
 
- EFI分区:不小于4MB,类型:
- 结束后,选Write再输入yes来写入分区表,再选Quit退出
 
- 建立文件系统 ->
 主分区使用ext4文件系统如果先前安装了Windows或者其他操作系统,不要执行第一条,会导致Windows引导损坏。 这条命令也需要自行修改,意为在 nvme0n1的第一分区创建vfat文件系统,在nvme0n1的第二分区创建ext4文件系统。1 
 2mkfs.vfat /dev/nvme0n1p1
 mkfs.ext4 /dev/nvme0n1p2如果之前 nvme0n1p2建立过其他文件系统,这里需要按y确认。
- 挂载分区 -> 改,勿照抄。 /的nvme0n1p2挂载到/mnt,再把nvme0n1p1这个EFI分区挂到/mnt/boot/efi下。1 
 2
 3mount /dev/nvme0n1p2 /mnt
 mkdir -p /mnt/boot/efi
 mount /dev/nvme0n1p1 /mnt/boot/efi
- 创建swapfile->swap的用途是在内存不足时,将硬盘的一部分作为内存的扩展空间使用。这里swap创建为8G,可根据需要改变count=后的数字,单位是MB。当然如果内存够大也可以不用执行这些命令。1 
 2
 3
 4dd if=/dev/zero of=/mnt/swapfile bs=1M count=8192
 chmod 600 /mnt/swapfile
 mkswap /mnt/swapfile
 swapon /mnt/swapfile
安装系统
- 安装软件包 ->
 首先初始化keyring!!1 pacman -Sy archlinux-keyring使用KDE Plasma作桌面环境的系统pacstrap安装必要的包1 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 chromium fastfetch btop使用GNOME作桌面环境的系统1 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 chromium fastfetch btop使用命令行界面的系统(Headless)这是我的习惯 ->1 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->1 genfstab -U /mnt >> /mnt/etc/fstab
- chroot到新系统 ->- 1 - arch-chroot /mnt
初步配置系统
- 时间设置 -> 1 
 2ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 hwclock --systohc
- 用户设置 -> 1 
 2
 3echo archlinux > /etc/hostname
 useradd -m $NEW_USERNAME -G wheel
 passwd $NEW_USERNAMEuseradd用于添加账户,passwd用于修改密码,为安全考虑输入的密码不会直接显示出来。虽然没有反应,但确实是输入进去了。-m参数用以添加用户目录,-G参数用以将用户加入到wheel组中。这个组将会被赋予使用sudo的权力。
- 编辑sudoers->将文件中的1 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,或者考虑兼容性,请跳过这一步。1 sudo pacman -S grml-zsh-config
- 本地化 -> 此处命令意为去掉1 
 2
 3echo "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的注释符号“#”
 最后运行 ->1 locale-gen
- 服务设置 -> 1 
 2
 3
 4systemctl enable NetworkManager
 systemctl enable sshd
 systemctl enable sddm # KDE
 systemctl enable gdm # GNOME
- 引导设置 ->
 gurb已支持引导Windows。
 可以让grub找到Windows。对于1 sudo pacman -Sy ntfs-3g os-proberUEFI引导的安装方式
 1 
 2
 3grub-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引导的安装方式
 1 
 2
 3grub-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的安装就完成了1 
 2exit
 reboot
 接下来是配置部分
进一步配置系统
如果是KDE的话,重启系统后,大概就是这样的 ->
- 输入法配置
 如果直接右键-配置是会显示这个的 ->
  
 这会进入文本配置,显然我们是不懂的(
 所以要安装fcitx5-configtool->然后再1 sudo pacman -S fcitx5-configtool右键-配置就可以看到 ->
  
 然而现在按Ctrl+Tab是不能切换到拼音输入法的,我们需要把Fcitx5设为默认输入法并自动启动 ->把下面的东西加进去 ->1 sudo vim /etc/environment重新登录就可以正常使用了1 
 2
 3
 4
 5GTK_IM_MODULE=fcitx
 QT_IM_MODULE=fcitx
 XMODIFIERS=@im=fcitx
 SDL_IM_MODULE=fcitx
 GLFW_IM_MODULE=ibus
 更多用法请参阅Arch Wiki
- 软件源
 众所周知,官方源对于灰色地带/非自由软件是不收录的。
 所以我们通常用第三方源+AUR来进行补充。
 官方源是不带任何AUR工具的,所以我们先装archlinuxcn源 ->加入以下文本 ->1 sudo vim /etc/pacman.conf然后获取1 
 2[archlinuxcn]
 Server = https://mirrors.bfsu.edu.cn/archlinuxcn/$archkeyring->如果你在新系统中尝试安装(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包时遇到如下报错:请使用以下命令在本地信任 farseerfc 的 key 。此 key 已随1 error: archlinuxcn-keyring: Signature from "Jiachen YANG (Arch Linux Packager Signing Key) <[email protected]>" is marginal trustarchlinux-keyring安装在系统中,只是缺乏信任:然后1 sudo pacman-key --lsign-key "[email protected]"就可以使用1 sudo pacman -Sy archlinuxcn-keyringarchlinuxcn源了!
 由于要使用AUR,所以我们先装一个AUR工具:详细的用法和1 sudo pacman -S parupacman一样。
- 引导Windows
 在安装系统时,os-prober往往不能正常检测到Windows,需要我们再运行重启即可看到1 sudo grub-mkconfig -o /boot/grub/grub.cfgWindows Boot Manager。
显卡驱动
如果是A卡和I卡,开源的驱动会做得很好
| 1 |  | 
对于部分老显卡,可能不适用,需要移步 Arch Wiki 中相关部分
https://wiki.archlinux.org/title/Xorg#Driver_installation
而N卡,需要进行以下步骤
查看显卡型号
| 1 |  | 
GeForce 900 系以及更新的显卡(NV110+),安装 nvidia(用于官方源里的标准内核)或者 nvidia-lts(用于 linux-lts 内核)
Turing (NV160/TUXXX) 系列或更新的显卡。可以安装 nvidia-open 包,开源的(仅适用于官方源里的内核,其他内核上必须使用 nvidia-open-dkms 包)
更老的显卡型号(发布于 2010 年或更早),就用内核自带的 Nouveau
安装驱动
| 1 |  | 
后续
安装 NVIDIA 官方的驱动之后,需要编辑/etc/mkinitcpio.conf,在 HOOKS 一行删除kms并保存
然后执行
| 1 |  | 
重新生成一次镜像。这能防止 initramfs 包含 nouveau 模块,避免 nouveau 和官方驱动的冲突。
笔记本双显卡配置
因为笔记本经常遇到需要睡眠/唤醒的情况,故不建议在使用Linux时开启独显直连
建议使用Intel/AMD的核显,安装适用的驱动,还有渲染分载需要的NVIDIA PRIME
| 1 |  | 
之后就可以愉快的使用 Wayland 作为显示协议
在需要使用 NVIDIA GPU 的时候(如游戏),使用
| 1 |  | 
常用软件
- telegram
| 1 |  | 
- Visual Studio Code(Official version)
| 1 |  | 
- Wine
 先启动/etc/pacman.conf中的multilib源,其中包含32位软件
 不要直接复制这些命令,要先看好你的显卡是哪家的
| 1 |  | 
- Chrome / Edge
| 1 |  | 
- 网易云音乐
 因为原版好像似了一半,所以使用替代版
 Go 写的 musicfox,TUI 版网易云
| 1 |  | 
原版:
| 1 |  | 
- Steam
| 1 |  | 
- Clash Verge Reversion
 这是一个 Clash Verge 的修复版本,解决了原版无法更新订阅的问题
| 1 |  | 
美化
Shell
对于 zsh, 我推荐 Powerlevel10k。
它的 Github 仓库链接是https://github.com/romkatv/powerlevel10k
当你添加了 archlinuxcn 源之后,你可以
| 1 |  | 
创建~/.zshrc并加入source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme
在这里如果你直接运行source ~/.zshrc,你会发现这里有很多图标不能显示。
所以要安装「高级」的字体,也就是打了补丁的 Nerd Fonts。这是一个系列,加入了很多图标。
我喜欢 Meslo Font,你也可以换成别的,比如 ttf-jetbrains-mono-nerd
| 1 |  | 
重启Konsole, 然后新建配置文件,更改字体,
然后source ~/.zshrc并运行p10k configure就可。
字体配置
一天你打开浏览器,看到了抽象的日本字体,比如关、复的字形过窄,门的点变成了竖插在上面……
这是不可接受的。
于是你执行vim ~/.fonts.conf
把以下内容写了进去:
| 1 |  | 
并fc-cache -fv
问题就聪明的解决了。
Vim
Vim 是一个文本编辑器,我们已经安装好了。
它有强大的客制化能力,你甚至可以把它变成IDE。
比如https://github.com/amix/vimrc
| 1 |  | 
如果网络条件差也是没有办法((
请注意一下「常用软件」部分的第7号,这是一个奇妙小工具。