1. Arch linux 安装
  2. Arch Linux 基础软件安装与KDE 桌面美化
  3. 在Arch中使用Timeshift保系统平安

Arch Linux的安装一般可以分为五个步骤。 本文根据个人的实际操作经验进行叙述,可供读者参考。

前期准备

  1. 下载并烧录Arch Linux安装引导盘。
  2. 在BIOS中将系统引导方式调整为UEFI(重要)。
  3. 准备一块干净的硬盘,用于安装Arch Linux。
    对于新手用户不建议在一块硬盘上安装多个系统,避免操作不当引起损失。
  4. 连接好网络,建议使用有线网络,可以简化联网过程。
    Arch的整个安装过程都需要联网,请务必确保网络通畅。

上述事项都确认Ready之后,开机进入Arch安装过程,并执行下述命令检查安装环境:

ls /sys/firmware/efi/efivars # 检查此目录内是否有文件存在,如果有,则可确定启动方式为UEFI,否则请退出到BIOS调整引导方式
ping www.bilibili.com # 确保网络通畅

# 下述命令启用ntp时间同步服务,并检查ntp服务是否work
timedatectl set-ntp true
timedatectl status

安装前的准备工作

系统分区与挂载

系统分区应该是整个安装过程中最为复杂的过程,务必需要小心仔细。

分区过程没有图形界面辅助,因此需要对分区工具需要有一定的了解。

本文使用fdisk工具对一整块硬盘进行分区,文件系统采用BTRFS。

之所以采用BTRFS文件系统是为了以后备份系统方便(详情参考:在Arch中使用Timeshift保系统平安)。

在进行分区之前,先对分区进行一个整体的规划,我划分了三个分区,另外再加上两个Btrfs子卷,具体如下:

分区类型 尺寸 挂载点 说明
Efi 200M /boot/efi 系统引导分区,用于安装引导器
Swap 32G N/A 交换分区,总内存的100%
Btrfs 剩余全部 N/A Btrfs分区,用于安装系统
->@ N/A / Btrfs子卷,挂载根分区
->@home N/A /home Btrfs子卷,挂载home分区

分区规划好之后,进一步确认要安装Arch的硬盘设备名称,使用lsblk进行查看:

# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda           8:0    0 894.3G  0 disk 
├─sda1        8:1    0   529M  0 part 
├─sda2        8:2    0   100M  0 part 
├─sda3        8:3    0    16M  0 part 
├─sda4        8:4    0   893G  0 part 
└─sda5        8:5    0   670M  0 part 
sdb           259:0    0 953.9G  0 disk 

可以看到我的电脑有两块硬盘,其中sda已经安装了windows,而sdb则是一块没有分区的空盘。

我准备将Arch安装在sdb上,下面开始对硬盘进行分区:

fdisk /dev/sdb # 进入fdisk的分区模式

n 
# 键入n新建分区。
# Partition type,Partition number, First sector都回车默认即可
# Last sector 输入 +200M
t
# 接着输入t修改分区类型
1
# Partition number输入1
ef
# Hex code or alias 输入ef,将分区设置为“EFI”格式
# EFI 分区就创建好了
---------------------------
# 接下来创建swap分区
n 
# 键入n新建分区。
# Partition type,Partition number, First sector都回车默认即可
# Last sector 输入 +32G
t
# 接着输入t修改分区类型
2
# Partition number输入1
82
# Hex code or alias 输入ef,将分区设置为“Linux Swap”格式
# swap分区就创建好了
---------------------------
# 接下来创建btrfs分区
n 
# 键入n新建分区。
# Partition type,Partition number, First sector,Last sector 都回车默认即可
# btrfs分区就创建好了,分区类型不用修改,默认的Linux即可

w
# 键入w保存分区并退出fdisk

分区创建之后,还需要对分区进行格式化才能正常使用,接下来进行分区格式化:

# 将/dev/sdb1(即EFI分区)格式化为fat32格式
mkfs.vfat -F 32 /dev/sdb1

# 将/dev/sdb2格式化为交换分区
mkswap /dev/sdb2

# 将/dev/sdb3格式化为btrfs分区
mkfs.btrfs /dev/sdb3

分区格式化完毕之后,还需要给btrfs分区创建子卷,继续:

# 现将btrfs分区挂载到/mnt 目录
mount -t btrfs -o compress=zstd /dev/sdb3 /mnt

# 接着创建子卷
btrfs subvolume create  /mnt/@
btrfs subvolume create  /mnt/@home

# 子卷创建完毕后卸掉挂载
umount /mnt

OK,子卷也挂载完毕了,接下来正式挂载系统各个分区:

mount -t btrfs -o subvol=/@,compress=zstd /dev/sdb3 /mnt

mkdir -p /mnt/home
mount -t btrfs -o subvol=/@home,compress=zstd /dev/sdb3 /mnt/home

mkdir -p /mnt/boot/efi
mount /dev/sdb1 /mnt/boot/efi

swapon /dev/sdb2

最后,再确认一下分区是否如我们期望的那样

lsblk

# 最后检查一次分区的类型,尺寸与挂载目录是否正确
sdb     259:0    0 953.9G  0 disk 
├─sdb1 259:1    0   512M  0 part /boot/efi
├─sdb2 259:2    0    32G  0 part [SWAP]
└─sdb3 259:3    0 921.4G  0 part /home
                                   /

至此,分区工作算是完成了。

安装核心组件

接下来开始安装系统的核心组件。

# 安装仓库的密钥,否则后续部分组件无法正常安装
pacman -Sy archlinux-keyring

# 安装系统核心
pacstrap /mnt base base-devel linux linux-firmware

# 安装网络组件与基础工具
pacstrap /mnt dhcpcd vim sudo zsh zsh-complections

整个过程的快慢取决于网速,如果中途失败可以重试。

安装完毕后,需要将分区挂载信息写入系统配置,否则系统重启后不知道如何挂载系统。执行如下命令写入:

genfstab -U /mnt >> /mnt/etc/fstab

然后需要进行一些必要的配置:

# 从安装环境切换到准系统环境
arch-chroot
# 编辑系统的主机名称,我这里使用arch作为主机名称
vim /etc/hostname
# 在文件中输入:
# arch

设置Hostname

# 接着编辑Hosts文件,将主机名称的IP映射到本机
vim /etc/hosts
# 在文件中输入:
127.0.0.1      localhost
::1                 localhost
127.0.0.1      arch.localdomain arch

设置Hosts

# 设置系统时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 将时间同步到硬件
hwclock --systohc
# 设定系统方言
vim /etc/locale.gen
# 将en_US.UTF-8  UTF-8和 zh_CN.UTF-8  UTF-8 取消注释

# 重新生成系统方言
local-gen

设定系统方言

# 设定系统默认语言
vim /etc/locale.conf
# 在文件中输入:
LANG=en_US.UTF-8

设定系统默认语言

# 给root用户设置密码
passwd root

安装启动引导

系统引导仍然采用GRUB

# 安装CPU微码
# intel用户执行:
pacman -S intel-ucode
# AMD用户执行: 
pacman -S amd-ucode

# 安装GRUB相关组件
pacman -S grub efibootmgr os-prober

# 将GRUB引导器安装到EFI分区中
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch
# 如果安装完后BIOS里面看不到系统引导项,试试下面的命令:
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Arch --removable
# 调整GRUB配置
vim /etc/default/grub
# 将GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quite"
# 更改为
# GRUB_CMDLINE_LINUX_DEFAULT="loglevel=5 nowatchdog"
# 关闭watchdog提升开关机速度,提升日志级别,便于观察错误
# 去掉GRUB_DISABLE_OS_PROBER=false 的注释
# 使GRUB可以发现系统中的其他系统,并自动添加到引导项中

关闭watchdog提升开关机速度,提升日志级别,便于观察错误
 使GRUB可以发现系统中的其他系统,并自动添加到引导项中

我这里有两块硬盘,每块硬盘上面都有一个EFI分区,一个是安装的Windows引导,一个是Arch的引导。

由于不在同一块硬盘上,GRUB无法发现Windows系统,因此我这里需要特殊处理一下:

# 将window的efi分区挂载到系统的任意目录中,GRUB即可识别
mount /dev/sda2 /tmp

似乎一切就绪,接下来开始生成引导:

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

# 至此,系统核心与引导都安装完毕,退出准系统
exit

# 卸载所有挂载项
umount -R /mnt

# 拔掉U盘引导盘,重启电脑
reboot

安装桌面环境

重启之后就正式进入了Arch系统,使用root用户登录,开始安装桌面软件。

我这里采用的桌面软件是KDE(我觉得gnome太丑了,而且我看大部分Arch用户都是使用KDE吧)。

# 启动有线网络服务
systemctl enable --now dhcpcd

# 确保网络通畅
ping www.bilibili.com

# 全面更新系统
pacman -Syyu

# 添加一个普通用户,后面进入KDE就用这个账户了
useradd -m -G wheel -s /bin/bash april

# 设置用户的密码
passwd april
# 编辑sudos文件,给wheel组加入sudo权限,这样凡是加入wheel组的用户就可以执行sudo操作了
EDITOR=vim visudo
# 去掉%wheel ALL=(ALL:ALL) ALL 这一行的注释

给wheel组加入sudo权限

# 编辑/etc/pacman.conf 配置文件,打开32位软件仓库
# 同时添加archlinuxcn仓库
vim /etc/pacman.conf
# 去掉 [multilib]一节的两行注释

去掉 [multilib]一节的两行注释

# 文件的最末尾加上archlinuxcn仓库,内容如下:
# [archlinuxcn]
# Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch 

加上archlinuxcn仓库

# 再次更新仓库及系统
pacman -Syyu

# 安装KDE
pacman -S plasma-meta konsole dolphin

# 启动登录窗口
systemctl enable --now sddm

如果一切顺利,此时已经可以看到图形化登录界面了,自此Arch安装完毕。

关于系统进一步的设置与美化,请参考:Arch Linux 基础软件安装与KDE 桌面美化

操作视频