Arch Linux 安装指引
info
LICENSE
本文使用 GNU自由文档许可证1.3 发布.
secondary
致谢
Arch Linux 安装指引
相信读者们早都听说过了 Arch Linux 的名声,笔者也从接触 Arch Linux 起就被他所具有的特性吸引.
本文中将讲述从 Arch Linux Live CD 中安装 Arch Linux 的方法.本文中假设读者已经完成了 下载、验证 Arch Linux 安装镜像以及将 Arch Linux 安装镜像写入物理介质并使用其介质以 UEFI 模式下完成引导,启动欲安装 Arch Linux 的设备的步骤.如有读者对该部分的操作方式存在疑问,请查阅 Installation guide 获得更多信息.
连接网络
Arch Linux 安装过程必须连接网络.在以 UEFI 模式启动至 Arch Linux 安装环境后,首先要做的便是连接网络.因在「Arch Linux 安装环境」中连接 WiFi 较为麻烦,笔者推荐一下两种方式在「 Arch Linux 安装环境」中连接网络,读者任选其一即可:
- 使用「网线」连接「设备」与「路由器」的
LAN
插口 - 使用「数据线」连接「设备」与「Android 手机」,并在「『系统设置』—『热点和网络共享』」中开启「USB 网络共享共享」
请读者在安装环境中使用
1 | # ping archlinux.org |
来测试网络连接是否通畅.
时间校准
在系统中开启时间同步服务:
1 | # timedatectl set-ntp true |
使用使用 timedatectl status
检查服务状态.
请在进行下一步前确保系统的时间正确.
建立硬盘分区
warn
WARNNING
本步骤中请勿直接套用本文中的命令.
在进行分区操作时,请仔细检查防止错误操作带来不良后果.
使用 lsblk
命令能清晰的看到目前电脑中的硬盘的分区情况.固态硬盘通常以 nvme
开头,机械硬盘通常以 sda
开头.请使用 cfdisk
工具,完成对硬盘的分区.
例如,如需对 /dev/sda
进行分区操作,请使用:
1 | # cfdisk /dev/sda |
同理,对
nvme0n1
进行分区操作的指令为:1 | # cfdisk /dev/nvme0n1 |
在分区时,需要分出 至少 两个分区.
分区名 | 大小 | Type | 备注 |
---|---|---|---|
/ | 越大越好 | Linux filesystem | 必选 |
boot | 至少 260 MB ,一般不超过 500 MB | EFI System | 必选 |
swap | 通常和内存大小近似,可根据喜好适量扩大或缩小 | Linux swap | 小内存设备可选,大内存设备不需要 |
home | 越大越好 | Linux filesystem | 可选 |
- 需要注意的是 swap 即交换空间可以是一个分区(「swap 分区」)也可以是一个文件(「swap 文件」),甚至可以选择不需要 swap.如果读者的设备的内存足够大(例如:32 GB 或以上)那么通常不需要 swap.
- 笔者十分推荐创建 home 分区,有了它读者在日后重新安装 GNU/Linux 操作系统的时候,就不再需要备份个人的数据,仅需要将 home 分区挂载即可.笔者使用 512 GB 的固态硬盘安装 Arch Linux,对 home 分区和 / 分区的存储空间分配是各占一半,home 分区稍多一些,/ 分区仅有 200 GB 但对笔者而言已经十分充足.
- 在使用
cfdisk
时请通过界面下方的Type
栏选择合适的类型(表中已注明).
选择文件系统 格式化硬盘分区
warn
WARNNING
本步骤中请勿直接套用本文中的命令.
在进行格式化操作时,请仔细检查防止错误操作带来不良后果.
笔者推荐使用 ext4
、xfs
作为 /
或 home
的文件系统.
如果读者想尝试一下 COW ( Copy-On-Write )
的文件系统的话,那也可以尝试一下 btrfs
.
当然,选择文件系统时也需要充分的考虑文件系统所具有的各种特性和自身的需求,最终还请读者们理性选择.
如果读者不知道如何选择的话,那便使用 ext4
作为 /
或 home
的文件系统吧.
- 格式化 boot 分区,请将
/dev/nvme0nxpy
替换为 boot 分区的位置1
# mkfs.fat -F32 /dev/nvme0nxpy
- (如果没有swap分区则跳过)格式化swap分区,请将 请将
/dev/nvme0nxpy
替换为 swap 分区的位置1
# mkswap /dev/nvme0nxpy
请根据在上文中选择的文件系统,选择合适的格式化指令.请把 nvme0nxpy
替换成合适的名称.
- 选择
ext4
作为文件系统格式化/dev/nvme0nxpy
1
# mkfs.ext4 /dev/nvme0nxpy
- 选择
xfs
作为文件系统格式化/dev/nvme0nxpy
1
# mkfs.xfs /dev/nvme0nxpy
- 选择
btrfs
作为文件系统格式化/dev/nvme0nxpy
请选择合适的文件系统,并用相应的指令格式化「/ 分区」和「home 分区」(如果没有「home 分区」则不需要格式化「home 分区」).1
# mkfs.btrfs /dev/nvme0nxpy
挂载
- 挂载
/ 分区
.1
# mount /dev/nvme0nxpy /mnt
- 创建
/boot
1
# mkdir /mnt/boot
- 挂载
boot 分区
.1
# mount /dev/nvme0nxpy /mnt/boot
- 如果读者创建了
swap 分区
,那么请挂载swap 分区
1
# swapon /dev/nvme0nxpy
- 如果读者创建了
home 分区
,那么请创建/home
目录1
# mkdir /mnt/home
- 如果读者创建了
home 分区
,那么请挂载home 分区
1
# mount /dev/nvme0nxpy /mnt/home
tip
TIP
选择 btrfs
作为文件系统的读者,可以考虑笔者在上面提供的方案.
也可以考虑使用 btrfs
的子卷管理功能,将 home
分区作为 btrfs 的子卷
.
在使用 btrfs
前请读者务必查阅 Btrfs.
首先将格式化好的 btrfs 分区挂载至 /mnt
,然后在创建子卷
1 | mount /dev/nvme0nxpy /mnt |
@ 子卷将作为新安装的系统的根目录, @home 将作为新安装的系统的 /home 目录.
创建 @ 子卷
1 | btrfs subvolume create /mnt/@ |
创建 @home 子卷
1 | btrfs subvolume create /mnt/@home |
然后 umount /mnt
将刚才创建的 btrfs 的 @ 子卷 挂载至 /mnt
1 | mount -o subvol=@ /dev/nvmen0nxpy /mnt |
如果你还想启用透明压缩,那么可以使用(下面以使用 zstd 压缩算法作为演示)
1 | mount -o compress=zstd,subvol=@ /dev/nvmen0nxpy /mnt |
如需手动指定 zstd 压缩级别可使用(下面指定 zstd 压缩级别为 6 作为演示):
1 | mount -o compress=zstd:6,subvol=@ /dev/nvmen0nxpy /mnt |
在 /mnt
下创建 home
文件夹
1 | mkdir /mnt/home |
将 @home 子卷挂载至 /mnt/home
并使用 zstd 并指定压缩级别为6级的透明压缩:
1 | mount -o compress=zstd:6,subvol=@home /nvmen0nxpy /mnt/home |
安装
编辑镜像源列表
文件 /etc/pacman.d/mirrorlist 定义了软件包会从哪个镜像源下载.[3]
Arch Linux 在安装过程中会下载大量的软件包,因此选择一个访问速度较快的镜像源是十分重要的.
在执行下载并安装的操作前请使用 nano
(推荐) 或 vim
或其他的编辑器修改镜像源.
笔者在此推荐使用 nano
,因为其操作简便对新手更加友好.
1 | # nano /etc/pacman.d/mirrorlist |
注意:在修改的时候去掉表示内容是注释的#
号,将访问速度最快的镜像源的行放在文件的最上面./etc/pacman.d/mirrorlist
将被从前至后读取,写在前面的镜像源具有更高的优先级.
安装必要的软件包
在完成修改并保存后,请强制同步软件包的数据库.
1 | # pacman -Syy |
其后使用
pacstrap
安装 Arch Linux1 | # pacstrap /mnt base base-devel linux linux-firmware linux-headers nano |
生成 fstab
fstab
用来说明在启动过程中如何挂载硬盘分区.在 Arch Linux
上只需要简单的命令即可生成 fstab
1 | # genfstab -U /mnt >> /mnt/etc/fstab |
chroot
Chroot 就是变更当前进程及其子进程的可见根路径.变更后,程序无法访问可见根目录外文件和命令.这个目录叫作 chroot jail.[4]
1 | # arch-chroot /mnt |
本地化设置
以中国大陆的用户为例,这条语句在系统层面更改了时区的配置.
1 | # ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime |
设置标准时间为世界协调时(UTC).
1 | # hwclock --systohc --utc |
这里的配置影响「地域、货币、时区日期的格式、字符排列方式」等.只需要用文版编辑器打开它然后编辑并保存.
1 | # nano /etc/locale.gen |
需要作的是在文件中找到#en_US.UTF-8 UTF-8
、#zh_CN.UTF-8 UTF-8
、#zh_TW.UTF-8 UTF-8
这三行,并删掉这三行中的#
.
然后执行
1 | # locale-gen |
其后执行
1 | # echo LANG=en_US.UTF-8 > /etc/locale.conf |
设置主机名
1 | # echo myhostname > /etc/hostname |
安装引导程序
1 | # pacman -S grub efibootmgr dosfstools |
有多系统的需求的读者还需要执行
1 | # pacman -S os-prober |
并且在 /etc/default/grub
中添加
1 | GRUB_DISABLE_OS_PROBER=false |
有安装多系统的需求,且多系统中含有 Microsoft Windows
操作系统的,可执行以便在 ArchLinux 中挂在 Microsoft Windows 中的 NTFS 文件系统的分区.
1 | # pacman -S ntfs-3g |
安装 grub 引导
1 | # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub --recheck |
用户管理
首先配置 sudo
,和上面一样,还是使用 nano
作为编辑的工具.但是这次打开方式与以往不太相同.
1 | # EDITOR=nano visudo |
寻找到下面这行的内容,删掉这行中的
#
.1 | # %wheel ALL=(ALL:ALL) ALL |
设置 root 用户密码
1 | # passwd |
在日常的操作中不推荐使用 root 用户,因此需要创建一个新的用户.下面的命令讲创建一个叫
username
的用户,并将其加入了 wheel
用户组.1 | # useradd -m -G wheel username |
设置用户的密码
1 | # passwd username |
配置 swap 文件
- 如果创建了 swap 分区,则跳过本节
- 如果设备的内存大于等于 32 GB,通常也该跳过本节的内容
正如前文所说的那样: swap 可以是一个硬盘分区也可以是一个文件
创建 swap 文件的方式本文不在说明,请查阅 Swap.
安装桌面环境
安装 KDE
1 | # pacman -S plasma sddm |
开启
sddm
1 | # systemctl enable sddm |
安装字体
安装 Google Noto Fonts 字体
1 | # pacman -S noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra |
安装 更纱黑体
1 | # pacman -S ttf-sarasa-gothic |
安装网络管理器
1 | # pacman -S networkmanager |
启用网络管理器
1 | # systemctl enable NetworkManager |
此时 Arch Linux 的安装步骤全部结束.重启设备享受 Arch Linux 即可.
启用 Arch Linux 中文社区仓库
使用 nano 编辑 /etc/pacman.conf
在
1 | #[multilib] |
后面加入
1 | [archlinuxcn] |
保存并退出后执行
1 | $ sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring |
再次编辑 /etc/pacman.conf
将刚才加入的内容中的 Server = https://repo.archlinuxcn.org/$arch
修改为 Include = /etc/pacman.d/archlinuxcn-mirrorlist
编辑 /etc/pacman.d/archlinuxcn-mirrorlist
为 Arch Linux 中文社区
仓库选择你喜欢的镜像源.如何编辑镜像源请参照前文.
配置中文拼音输入法
安装 fcitx5-im
、fcitx5-chinese-addons
、fcitx5-pinyin-zhwiki
1 | $ sudo pacman -S fcitx5-im fcitx5-chinese-addons fcitx5-pinyin-zhwiki |
安装完编辑或创建 /etc/environment
添加以下内容:
1 | GTK_IM_MODULE=fcitx |
在 fcitx5
配置中将 拼音
加入当前输入法.
使用蓝牙
在使用蓝牙前,请安装 bluez
、bluez-utils
、pulseaudio-bluetooth
.
1 | $ sudo pacman -S bluez bluez-utils pulseaudio-bluetooth |
设置用户 locale
创建或编辑 ~/.config/locale.conf
1 | LANG=zh_CN.UTF-8 |
使用 zsh
1 | $ sudo pacman -S zsh |
参考资料
1. ArchWiki编者. Installation guide (简体中文)[G/OL]. ArchWiki, https://wiki.archlinux.org/index.php/Installation_guide_(简体中文). ↩
2. ArchWiki编者. Installation guide[G/OL]. ArchWiki, https://wiki.archlinux.org/index.php/Installation_guide. ↩
3. ArchWiki编者. pacman (简体中文)[G/OL]. ArchWiki, https://wiki.archlinux.org/index.php/Pacman_(简体中文). ↩
4. ArchWiki编者. Chroot (简体中文)[G/OL]. ArchWiki, https://wiki.archlinux.org/index.php/Chroot_(简体中文). ↩
5. 约伊兹的萌狼乡手札.给 GNU/Linux 萌新的 Arch Linux 安装指南 rev.B[G/OL]. 约伊兹的萌狼乡手札, https://blog.yoitsu.moe/arch-linux/installing_arch_linux_for_complete_newbies.html. ↩