日用Linux挑战 第5篇 标准安装流程

总字数:2674字,预计阅读时间 04分 27秒。

标准化ArchLinux的安装流程是日用Linux道路上一个重要的里程碑。

概述

本安装流程的目的在于规范化一台设备安装ArchLinux的过程,通过明确各个步骤选择的软件和格式确保不同的设备之间有着良好的互操作性,减少维护各种不同安装配置的ArchLinux示例的心智负担。

具体而言,本标准操作流程主要试图标准化如下几个问题:

  • 进行硬盘分区时使用什么格式?分成几个区?
  • 使用pacstrap安装时,应该安装哪些软件包?
  • 在编辑locale.gen时,应该选择哪些locale
  • 主机名是否应该设计统一的规则进行设置?
  • boot loader的选择和配置?
  • 图形化环境应该如何选择?

同时,本标准操作流程亦是一份ArchLinux系统安装指南,但是流程中将更多的注重于应该做什么,而不是解释为什么要这样做。

在安装开始之前

在启动Live CD环境之后,首先进行如下的操作。

验证启动模式是否为64位:

cat /sys/firmware/efi/fw_platform_size

连接互联网:

  • 如果是有线网应该可以自动进行连接;
  • 如果是无线网,使用iwctl进行连接。

测试到互联网的连接通畅之后,同步系统时钟:

timedatectl

硬盘格式化

首先使用fdisk工具对需要安装系统的磁盘进行分区,系统一般情况下使用UEFI进行启动,磁盘使用GPT分区表。各分区的参数如下表所示。

挂载的位置 大小 分区的类型 分区后的设备号(示例)
/boot 1G EFI System /dev/nvme0n1p1
/ 磁盘余下的大小 Linux root (x86) /dev/nvme0n1p2

对分区好的磁盘进行格式化。

mkfs.fat -F 32 /dev/nvme0n1p1
mkfs.btrfs -L ArchLinux /dev/nvme0n1p2

/dev/nvme0n1p2挂载到/mnt目录中,对btrfs文件系统进行顶级subvolume的划分,具体划分如下表所示:

subvolme名称 挂载的位置 是否打开写时复制
@root /
@home /home
@swap /swap
@var /var
@snapshots /.snapshots

完成顶级subvolume的划分之后,取消/mnt的挂载,使用subvol选项进行挂载:

mount --mkdir /dev/nvme0n1p2 /mnt -o subvol=@root
mount --mkdir /dev/nvme0n1p2 /mnt/home -o subvol=@home
mount --mkdir /dev/nvme0n1p2 /mnt/swap -o subvol=@swap
mount --mkdir /dev/nvme0n1p2 /mnt/var -o subvol=@var
mount --mkdir /dev/nvme0n1p2 /mnt/.snapshots -o subvol=@snapshots

设置一个和内存大小相同的swap文件,下面的指令假设机器的内存大小为16G:

btrfs filesystem mkswapfile --size 16g --uuid clear /swap/swapfile
swapon /swap/swapfile

挂载EFI分区:

mount --mkdir /dev/nvme0n1p1 /mnt/boot

安装系统

首先是选择合适的镜像源,这里推荐的几个镜像源为:

Server = https://mirrors.bupt.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.bfsu.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
Server = https://mirrors.cernet.edu.cn/archlinux/$repo/os/$arch

同时调整一些pacman.conf中的设置,打开输出颜色,将并行下载设置为8。

使用pacstrap安装需要的软件包,具体的软件包列表如下:

软件包名称 用途
base 基础软件包
base-devel 基础开发软件包
linux 系统内核
linux-firmware 系统固件
btrfs-progs btrfs文件系统工具
networkmanager 网络连接工具
vim 文本编辑器

安装的指令如下:

pacstrap -K /mnt base base-devel linux linux-fireware btrfs-progs networmanager vim

配置系统

首先生成fstab

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

注意生成之后验证生成文件。

使用chroot进入安装的新系统:

arch-chroot /mnt

配置系统时间和硬件时间:

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

配置系统的本地化,编辑/etc/locale.gen,取消下面这些区域设置:

名称 解释
en_US.UTF-8 UTF-8 英语,美国
en_GB.UTF-8 UTF-8 英语,大不列颠
zh-CN.UTF-8 UTF-8 中文,中国

编辑好之后,使用locale-gen生成本地化选项。配置系统的默认本地化选项,创建/etc/locale.conf

LANG=en_GB.UTF-8

编辑/etc/hostname,在文件中填入系统的主机名,系统中的主机名一般为当前主机的型号。

使用passwd设置root用户的密码。

安装grub

pacman -S grub efibootmgr
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg

退出chroot的系统,取消挂载硬盘,重启系统退出Live CD环境:

umount -R /mnt
reboot

安装图形化界面

新安装的系统启动之后,进行普通用户的创建和图形化界面的安装。

首先创建普通用户并添加到sudo用户组中。

useradd -m ricardo
pacman -S sudo
usermod -aG wheel ricardo

使用新创建的用户登录系统,在新用户的目录下创建一些不需要进行快照的subvolume

btrfs subvolume create .cache
btrfs subvolume create .wine
chattr +C .cache
chattr +C .wine

安装plasma图形化界面。

sudo pacman -S plasma sddm
sudo systemctl enable sddm.service

硬件相关联的操作

CPU

按照CPU的厂商,分别安装intel-ucode或者amd-ucode两个微码文件。

GPU

按照GPU的厂商,分别安装对应的驱动程序。

同样的,在使用NVIDIA显卡和Wayland显示协议,仍然需要配置对应的驱动参数:

options nvidia_drm modeset=1 fbdev=1

2021 - 2024 © Ricardo Ren, 由 .NET 8.0.10 驱动。