Arch Linux 安装简明流程

这是一篇为 GPT/EFI 引导 的电脑安装 Arch Linux(双系统)的中文简明流程,尽可能省略了可以省略的流程与文字以使得篇幅尽量短小,基本上基于 Arch Wiki Installation guide 以及由联创团队 Android 组学长的这篇 优秀的安装教程,特此表示感谢。

本文严格按照操作顺序进行编写,还请认真阅读每一步操作的说明以及注意事项。

说明:下文中所指教程均指此篇教程: 以官方Wiki的方式安装ArchLinux

安装前准备

  1. 大于 100G 的硬盘空余空间。
  2. 一块储存空间至少 4G 的 U 盘。
  3. 稳定,而不需要额外进行设备认证的有线/无线网络连接,如手机热点等。
  4. 至少 3 小时或长达数星期的时间。
  5. 基本的搜索引擎使用能力以及英语阅读能力。
  6. 够闲

准备安装介质与磁盘分区

安装介质

此处默认你使用 Windows 系统,其他情况请参阅 Arch Wiki

  1. 下载 Arch Linux 最新的系统镜像,在 下载页面 下方找到 China 的镜像源,如 tuna.tsinghua.edu.cn,下载文件名形如 archlinux-2022.04.05-x86_64.iso 的 iso 镜像文件。
  2. 下载 Rufus,解压即用的便携版即可。
  3. 使用 Rufus 将 Arch Linux 镜像装载到 U 盘,所有参数保持默认不修改即可,如果 U 盘内存放有数据请先备份。

磁盘分区

Warning

重要提示:如果你的 Windows 电脑为磁盘加上了 Bitlocker 锁,请务必解除后再进行任何磁盘操作,否则会为你带来巨大的不幸。

此处默认 Arch Linux 与原系统安装在同一块硬盘上,如果你需要在一块新硬盘上安装,你还需要确定或转换新硬盘的分区表为 GPT 格式,并新建一个 EFI 分区。具体的其他情况请查阅 Arch Wiki、教程 或自行搜索。

  1. 使用 Windows 自带的磁盘管理,你可以直接在开始菜单中搜索找到它,或者右键单击计算机,选择管理。
  2. 压缩 有空余空间的磁盘分区,分配一块空间给 Arch Linux,多多益善,最小不要小于 60G,如果你要使用 Arch Linux 作为你的主要开发环境,此分区建议不要小于 200G。(我分了一整块硬盘)
  3. 不要 在这里新建一个新分区,而是在进入 Arch Linux 安装程序后再进行这一步。

BIOS 设置

不同品牌的电脑/主板进入 BIOS 设置的方法不一样,联想以及戴尔是在 按下开机键出现品牌徽标时 按 F2(或 Fn+F2),启动菜单是按下 F12,其他品牌请自行搜索。

各品牌 BIOS 设置界面各自不同,但需要做的事情大同小异。

  1. 关闭 Secure Boot,Arch Linux 安装程序无法使用 Secure Boot 启动,你可以在完成安装之后再启用此功能。

  2. 某些品牌(如戴尔)的电脑可能不会在其他系统中默认开启网卡,需要在设置中启用 Enable UEFI Network Stack

  3. 调整 BIOS 默认的启动顺序(Boot Sequence / Boot Order),检查是否有装载有 Arch Linux 的 U 盘,将其顺序调整到第一位(你也可以在计算机启动时手动进入启动菜单选择要启动的系统),保存 BIOS 设置并退出。

    说明:如果在这里找不到你的 U 盘(设备名形如 ARCH_202204 ),说明可能你的设备开启了 Secure Boot 导致 BIOS 无法找到系统入口,保存 BIOS 设置退出后重新进行这一步即可。

开始安装 Arch Linux

完成了 BIOS 的设置后,重启计算机,我们应该进入到了 Arch Linux 的界面,选择第一个进入安装程序即可进入 zsh 命令行界面。

连接网络与更新系统时间

说明:此部分问题较多,请耐心使用控制变量法以及搜索引擎进行问题排查。

连接有线网络

不同型号的无线网卡的支持情况不同,若有条件推荐优先使用有线网网络进行连接,可以直接使用 USB 线将手机连接电脑使用手机的数据网络。

接入网线或手机进行有线网连接,并测试网络是否联通

ping www.baidu.com

使用 Ctrl+C 中止当前正在执行的命令

连接无线网络

事前故障排除

解除可能出现的软硬件 block

rfkill unblock all

列出当前网络设备

ip link show

一般而言,无线网卡的名字默认为 wlan0,检查其状态,若为 DOWN 还需设置为 UPwlan0 请替换成此处显示的网卡名

ip link set wlan0 up

执行以下命令

iwctl

会进入一个以 [iwd] 开头的命令行环境中,接着执行:

device list

会列出当前可用的所有网卡设备,一般而言,无线网卡的名字默认为 wlan0,接着执行下列命令进行无线网络的扫描:wlan0 请替换成此处显示的网卡名

station wlan0 scan

接着执行下列命令列出扫描到的网络:

station wlan0 get-networks

最后输入下列命令连接指定网络:Wifi-SSID 请切换成你想要连接的网络,输入密码回车即可连接成功。

station wlan0 connect Wifi-SSID

提示:单次或多次按下 Tab 可以补全或选择可能的选项,免去输入校对之苦

使用 quit 退出 iwc,测试网络是否联通

ping www.baidu.com

使用 Ctrl+C 中止当前正在执行的命令

提示:可以使用方向键的上、下键来查看曾经执行过的指令的历史记录

设置系统时间

timedatectl set-ntp true

操作成功无提示

分区的格式化与挂载

Warning

警告:除非你清楚你自己在做什么,否则请不要对硬盘分区表、以及除自己新建的分区之外的分区进行任何操作,并且请多次检查自己有没有输错命令,以防对其他分区的数据产生影响。

换而言之,只要你不对其他分区(Windows 相关分区)进行任何操作,就不需要担心有任何数据丢失的风险。

使用已有的 EFI 系统分区

如果你在一个 已经安装有 Windows 的硬盘 上安装 Arch Linux,你并不需要对已存在的分区进行任何操作,请直接跳至 新建数据分区

新建 EFI 系统分区

如果你在一块 新硬盘 上安装 Arch Linux,则需要为其新建一个 EFI 系统分区;

如果你要在一块已经安装有 Windows 的硬盘上安装 Arch Linux,跳过这一步

列出当前所有设备与分区

fdisk -l

选择进入即将安装 Arch Linux 的 新硬盘,形如 /dev/nvme0n1(请以自己的设备情况为准)

fdisk /dev/nvme0n1

使用 F 列出当前的未分配空间(即在 Windows 下分配出的空间)

使用 n 在未分配空间新建分区,分区号与起始扇区默认即可,终止扇区输入 +500M,即给该新分区分配 500M 空间

新建完成后使用 t,选中该分区后将该分区标记为 EFI System 分区,使用 L 可以找到 EFI System 分区类型标号,如无意外应该是 1

w 保存并退出

格式化该分区,假设该分区名为 /dev/nvme0n1p1

mkfs.fat -F32 /dev/nvme0n1p1

新建数据分区

列出当前所有设备与分区

fdisk -l

选择进入即将安装 Arch Linux 的硬盘,形如 /dev/nvme0n1(请以自己的设备情况为准)

fdisk /dev/nvme0n1

使用 F 列出当前的未分配空间(即在 Windows 下分配出的空间)

使用 n 在未分配空间新建分区,如无意外全部默认即可

w 保存并退出

格式化数据分区

列出当前所有分区

fdisk -l

找到 EFI System 分区 以及刚刚建立的 Linux Filesystem 新分区记下这两个分区的路径(形如 /dev/nvme0n1p1/dev/nvme0n1p5)。EFI 系统分区一般大小为 300-500M 不等。

再次提示:单次或多次按下 Tab 可以补全或选择可能的选项,免去输入校对之苦。 部分电脑蜂鸣器会在 Tab 无法补全时发出刺耳的提示声,使用 rmmod pcspkr 移除。

格式化刚刚新建的 数据分区(替换为你自己的路径)

mkfs.ext4 /dev/nvme0n1p5

挂载分区

请将 nvme0n1p5 替换为之前创建的数据分区,将 nvme0n1p1 替换为已经存在的 EFI 系统分区

mount /dev/nvme0n1p5 /mnt
mkdir /mnt/boot
mount /dev/nvme0n1p1 /mnt/boot 

检查挂载是否成功

mount

根目录挂载点 /mnt 应当被挂载到 ext4 文件系统的数据分区

启动目录挂载点 /mnt/boot 应当被挂载到 vfat 文件系统的 EFI 系统分区

如有操作失误,请取消挂载后重新检查进行挂载

umount /mnt/boot
umount /mnt

配置包管理器与安装基本包

Arch Linux 的包管理器 pacman 十分强大,大部分情况下,一行命令就可以搞定软件包及其依赖。

运行命令以配置 pacman 所使用的镜像源,Reflector 会自动帮我们配置位于 China 的下载速度最快的镜像源

reflector --country China --sort rate --latest 5 --save /etc/pacman.d/mirrorlist

可能会报 WARNING 但无需理会

学习 Vim 的使用

休息一下,接下来我们的所有文字编辑命令都需要使用 Vim。推荐使用以下的链接进行学习,只需要掌握第一等级即可:

简明 VIM 练级攻略

打开 pacman 设置,启用 pacman 的并行下载功能,加速下载,事半功倍。

vim /etc/pacman.conf

找到 ParallelDownloads = 5 这一行并取消其注释。

安装基本包

执行以下命令,安装 Arch Linux 所需要的基本包

pacstrap /mnt base base-devel linux linux-firmware dhcpcd vim reflector

遇到需要选择的场合一路回车选择默认项即可

请重点观察此步是否输出错误(警告可忽略)

生成 Fstab 文件

生成(Generate)自动挂载分区的 fstab 文件(即文件系统表 File System Table)

genfstab -L /mnt >> /mnt/etc/fstab

由于这步比较重要,所以我们需要输出生成的文件来检查是否正确,执行以下命令:

cat /mnt/etc/fstab

如果前面的挂载操作没有出错,应该输出且 仅输出 两条记录:(以你的磁盘分区情况为准)

  • 根分区 / 被挂载到了此前建立的 数据分区 /dev/nvme0n1p5,分区的文件系统为 ext4

  • 引导分区 /boot 被挂载到了 硬盘已有的 EFI 系统分区 /dev/nvme0n1p1,分区的文件系统为 vfat

如果 fstab 文件有任何错误,请先删除该文件

rm /mnt/etc/fstab

检查前面的挂载操作有没有出错,umount 之后再重新挂载、生成。

新系统的必要配置

这里的配置流程虽然有些繁琐,但不会像前面的操作一样容易出错。

Chroot

Chroot 意为 Change root ,相当于把操纵权交给我们新安装(或已经存在)的 Linux 系统,执行了这步以后,我们的操作都相当于在磁盘上新装的系统中进行

执行如下命令:

arch-chroot /mnt

顺带一提,如果以后系统出现了问题,只要插入任意一个安装有 Arch Linux 镜像的 U 盘并启动,将我们的系统根分区挂载到 /mnt 下、EFI 系统分区挂载到 /mnt/boot 下,再通过这条命令就可以进入我们的系统进行修复操作。(用 Arch 的人身边都应该常备一个急救 U 盘)

安装必要软件包

打开 pacman 设置,启用 pacman 的并行下载功能,加速下载,事半功倍。

vim /etc/pacman.conf

找到 ParallelDownloads = 5 这一行并取消其注释,可以将 5 调整为你想要的数值。

运行命令以配置 pacman 所使用的镜像源,Reflector 会自动帮我们配置位于 China 的下载速度最快的镜像源

reflector --country China --sort rate --latest 5 --save /etc/pacman.d/mirrorlist

可能会报 WARNING 但无需理会

你可能会发现,此处对 pacman 进行的操作似曾相识。这是由于之前我们进行配置的对象是 U 盘系统之中的 pacman,在 chroot 到新的系统后需要重新配置

目前,系统根目录已经从 U 盘切换到了硬盘中,需要安装一些必需的软件包

pacman -S dialog wpa_supplicant ntfs-3g networkmanager netctl git

遇到需要选择的场合一路回车选择默认项即可。

设置时区、地区与语言信息

依次执行如下命令设置我们的时区为上海,并生成相关文件

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock --systohc

执行如下命令,设置我们使用的语言选项

vim /etc/locale.gen

在文件中找到 en_US.UTF-8 UTF-8zh_CN.UTF-8 UTF-8zh_HK.UTF-8 UTF-8zh_TW.UTF-8 UTF-8 这四行,去掉行首的 # 号,保存并退出。

执行如下命令,系统会生成我们需要的本地化文件

locale-gen

打开(不存在时会创建)/etc/locale.conf文件:

vim /etc/locale.conf

在文件的第一行加入以下内容

LANG=en_US.UTF-8

保存并退出

设置主机名

打开(不存在时会创建)/etc/hostname 文件:

vim /etc/hostname

在文件的第一行输入你自己设定的一个 myhostname,这将会是你的 计算机名,保存并退出。

打开(不存在时会创建)/etc/hosts 文件:

vim /etc/hosts

在文件末添加如下内容(将 myhostname 替换成你自己设定的主机名),保存并退出。

127.0.0.1	localhost
::1		localhost
127.0.1.1	myhostname.localdomain	myhostname

设置 Root 密码

root 账户是 Linux 系统中的最高权限账户,需要设置密码保护起来,以免无意间实施了破坏性的敏感操作。

passwd

新建用户与配置 sudo

关于这一步操作的说明,可以查看 教程

请自行替换 username 为你想要使用的用户名

useradd -m -G wheel username
passwd username

为了在普通用户下使用 root 操作,需要配置 sudo

pacman -S sudo
vim /etc/sudoers

找到 # %wheel ALL=(ALL:ALL) ALL,取消注释并保存退出。

或许有的人已经发现 Arch Wiki 和一些其他教程资料中的命令是以 #$ 开头的,这两个符号就对应着命令行中的命令提示符,# 代表以 Root 用户执行命令,$ 代表以普通用户执行命令,平时使用教程中的命令时应该注意这一点。

安装处理器微码

显然你应该根据你电脑的 CPU 型号选取一个包进行安装

pacman -S intel-ucode
pacman -S amd-ucode

配置系统引导

此处使用 grub 进行系统引导,先安装必要的包

pacman -S os-prober ntfs-3g grub efibootmgr

启用 os-prober:编辑 grub 设置,取消注释下述设置项

vim /etc/default/grub
# GRUB_DISABLE_OS_PROBER=false

部署 grub

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub

生成配置文件

grub-mkconfig -o /boot/grub/grub.cfg

检查文件末尾的 menuenrtry 是否有 Arch Linux 入口

vim /boot/grub/grub.cfg

若有任何报错请查阅 Arch Wiki、教程或自行搜索

创建交换文件

交换文件可以在物理内存不足的时候将部分内存暂存到交换文件中,避免系统由于内存不足而完全停止工作。之前通常采用单独一个分区的方式作为交换分区,现在更推荐采用交换文件的方式,更便于我们的管理。分配一块空间用于交换文件,执行:

dd if=/dev/zero of=/swapfile bs=1M count=8192 status=progress

8192 换成需要的大小,单位 Mb,一般与计算机 RAM 大小一致即可。

更改权限,执行:

chmod 600 /swapfile

设置交换文件,执行:

mkswap /swapfile

启用交换文件,执行:

swapon /swapfile

最后我们需要编辑 /etc/fstab 为交换文件设置一个入口,使用 Vim 打开文件:

vim /etc/fstab

注意编辑 fstab 文件的时候要格外注意不要修改之前的内容,直接在最后新起一行加入以下内容

/swapfile none swap defaults 0 0

安装图形界面

再次提醒,你应当开启 pacman 的并行下载功能

遇到需要选择的场合一路回车选择默认项即可

安装 Xorg 图形服务

pacman -S xorg

初次安装一般在 KDE PlasmaGNOME 两种图形界面中选择其一,选择你认为好看的即可,日后可以方便地进行卸载替换

GNOME

安装 GNOME

pacman -S gnome gdm

设置 gdm 开机启动

systemctl enable gdm

KDE Plasma

安装 KDE Plasma 与 桌面管理器 sddm

pacman -S plasma kde-applications sddm

设置 sddm 开机启动

systemctl enable sddm

网络服务

启用适用于桌面环境的网络服务 NetworkManager

systemctl disable netctl
systemctl enable NetworkManager

reboot,进入图形界面

安装后配置与提示

这里的内容根据本人习惯配置进行,时不时更新一下,方便炸系统之后重装

给新手的提示

如果你是第一次安装 Arch Linux,恭喜你,你已经走完了整个安装教程的一半!🎉

请你坐和放宽,打开系统自带的默认网页浏览器,在本机查看此教程,方便你进行命令的复制粘贴

如果你不习惯使用自带的毛坯房浏览器,可以安装 Chromium

sudo pacman -S chromium

如果你发现中文等 Unicode 字符显示为小方块,请安装中文字体后重启

sudo pacman -S noto-fonts-cjk
reboot

社区支持

Arch Linux 有完善的 Wiki 与活跃的社区支持,有任何问题先在 Wiki 内查找以及 Google 一下, 绝大部分问题都会找到解决方案

滚动更新

在使用之前,要了解 Arch Linux 使用的是激进的滚动更新策略,你的系统可以时刻保持并且也 必须保持 最新的内核版本与最新的软件版本。

因此在你安装软件包的时候,pacman 的命令应当从简单的 安装 变为 安装软件包+同步软件资料库+进行全面系统更新,也就是说:

sudo pacman -S package-name

应当改为

sudo pacman -Syu package-name

代理配置

如果你使用 clash 进行国际联网,可以直接下载 Clash Verge,注意选择 amd64 架构版本,直接在命令行运行即可

如果你已经处于国际联网的环境中,在完成了下一节的配置后,可以使用 yay 安装

yay -Syu clash-verge
  • System Settings 中搜索 proxy,手动将代理地址设置为 127.0.0.1,Clash 默认端口为 7890

  • 设置 Git 代理:

    git config --global http.proxy "http://127.0.0.1:7890"
    
  • 设置终端代理:将 cfw 中的命令手动粘贴到终端中回车,但只在本次对话中生效

    export https_proxy=http://127.0.0.1:7890;
    export http_proxy=http://127.0.0.1:7890;
    export all_proxy=socks5://127.0.0.1:7890
    

AUR helper: yay

Arch Linux 除了官方源之外,还拥有广大社区用户维护的 Arch 用户软件仓库(Arch User Repository,简称 AUR)可供使用,极大丰富了 Arch Linux 的软件库,用户体验++

在与国际互联网联通的环境下,安装可以让我们便捷安装 AUR 包的 yay

pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Code - OSS or VS Code

前者开源,后者是微软基于开源项目二次开发的软件,可以类比 Chromium 与 Google Chrome

安装 Code - OSS

sudo pacman -Syu code

或者 Visual Studio Code

yay -Syu visual-studio-code-bin

装好之后可以用 code 代替 nano 或 vim 等命令行编辑器进行文本编辑

可以修改 git 的默认编辑器为 code

git config --global core.editor "code --wait"

zsh 与 oh-my-zsh

zsh 比系统默认搭载的 bash 更好用,搭配上社区支持的项目 oh-my-zsh,插件和主题都很齐全

yay -Syu zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  • 切换默认 shell 为 zsh
sudo chsh -s /bin/zsh username

reboot 后再次打开终端,或直接运行 zsh,就能看到带颜色的默认 robbyrussell 主题 zsh 了

  • 编辑 ~/.zshrc,找到 plugins 行,加入我推荐的几个插件
code ~/.zshrc
plugins=(git z sudo zsh-syntax-highlighting zsh-autosuggestions)

其中 zsh-syntax-highlightingzsh-autosuggestions 需要自行安装,或者可以看这个 gist

接着在 .zshrc 中粘贴上文代理中的三行终端命令,zsh 每次启动都会读取 .zshrc 初始化,即可自动化配置终端代理

Git

随手配配能用就行

中文字体与中文输入法

参照:简体中文本地化 - Arch Linux 中文维基

在系统语言设置内加入中文,安装中文字体与中文输入法后重启即可

yay -Syu noto-fonts-cjk noto-fonts-emoji

可以使用 fcitx4 的搜狗输入法,或在 fcitx5 的拼音输入法中导入搜狗词库,参照 fcitxfcitx5

安装 fcitx5 及组件,自行在应用列表中打开 Fcitx5 Configuation 图形化界面工具,添加中英文输入法后即可使用,具体参照 Arch Wiki

yay -Syu fcitx5-im fcitx5-chinese-addons fcitx5-qt fcitx5-gtk

修改 /etc/environment 文件,在文件开头加入如下内容:

GTK_IM_MODULE=fcitx
QT_IM_MODULE=fcitx
XMODIFIERS=@im=fcitx
INPUT_METHOD=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

可以解决一些软件无法调出 fcitx 的问题

蓝牙配置

参照 Arch wiki

yay -Syu bluez bluez-utils blueman
systemctl start bluetooth.service && systemctl enable bluetooth.service

浏览器

没什么好说的,但我喜欢用 Edge

yay -Syu google-chrome
yay -Syu microsoft-edge-dev-bin
yay -Syu chromium

QQ、微信与飞书

使用 yay 安装 AUR 包即可

linuxqq

deepin-wine-wechat

feishu-bin

Grub 引导炸了

小心 Windows

插入写入有 Arch Linux 安装介质的 U 盘,联网后先 mount //boot(参考 挂载分区 一节), 之后 arch-chroot/mnt 进行抢救,先重装一下内核(pacman -S linux)这一步会自动为你重新生成 initramfs 镜像,然后跳至 配置系统引导部署 grub 环节照做。

Windows 引导炸了

如果你不经意间将 Windows 所在的 EFI 分区格式化/擦除掉了,你将无法正常引导进入 Windows,我们需要像制作一张 Arch Linux 安装镜像一样,制作一张 Windows 启动盘,然后进入命令行,根据 C 盘中的 Windows 系统文件进行引导重建。

Restoring an accidentally deleted EFI system partition