ArchLinux系统安装与Systemd-boot配置

前言

虽然我在我的PC上安装了双系统,但我更倾向于使用BIOS切换启动项,且对安全启动有一定需求,故转用Systemd-boot引导ArchLinux。

本文档中所有操作均在chroot环境中完成。

安装前准备

前往任意国内镜像源下载最新镜像,比如清华源(https://mirrors.tuna.tsinghua.edu.cn)。

有U盘

1、使用任意启动盘制作工具或者直接把镜像解压到U盘根目录;

2、使用Ventoy,Ventoy支持多系统镜像启动。

无U盘

先用分区工具划分出一个新分区用来解压镜像,之后直接重启即可发现启动项。

由于ArchLinux的镜像不支持安全启动,建议在启动前关闭安全启动。

安装

首先进入LiveOS环境。

在屏幕上显示“Welcome to ArchLinux”字样时,系统已经加载进内存中,此时就可以拔掉U盘了,当然也可以不拔掉。

连接网络

建议插网线,无线连接较繁琐。

ip a	#查看网络信息
ping bing.com	#ping个网址验证网络连接。
连接wifi

1、启动

iwctl	#启动wifi连接工具

2、连接

device list	#列出网络设备
station wlan0 scan	#扫描网络
station waln0 get-networks	#列出扫描到的wifi
station wlan0 connect [SSID]	#将[SSID]替换为你的网络名称

3、退出

exit

同步时间

与服务器同步时间,防止时间错乱

timedatectl set-ntp true

更换中国源

推荐使用清华源

vim /etc/pacman.d/mirrorlist

在最上方添加一条

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

更新密钥

ArchLinux的包管理器是pacman

pacman -Sy archlinux-keyring
#-S代表安装
#-Sy代表同步服务器后安装

硬盘分区

lsblk -pf	#列出分区情况
cfdisk /dev/硬盘	#对硬盘进行分区
#cfdisk是一个分区工具,它提供了一个简单的界面,比fdisk更加友好

创建一个EFI分区,大小1GiB左右,类型选择EFI System;

创建根分区,大小随意,类型选择Linux filesystem

格式化分区

1、格式化EFI分区,并建立文件系统

EFI分区使用FAT32文件系统,使用以下命令进行格式化

mkfs.fat -F 32 /dev/(EFI分区名)

2、格式化根分区

建议使用BTRFS文件系统

mkfs.btrfs -f /dev/(根分区名)	#加-f参数强制格式化
创建BTRFS子卷

1、先挂载根分区

mount -t btrfs -o compress=zstd /dev/(根分区名) /mnt	#-t指定文件系统,-o指定挂载参数

2、创建子卷

btrfs subvolume create /mnt/@	#创建根目录子卷
btrfs subvolume create /mnt/@home	#创建home目录
btrfs subvolume create /mnt/@swap	#创建swap,笔记本建议创建,休眠必用

btrfs subvolume list -p	/mnt	#列出子卷

3、卸载分区

umount /mnt
挂载分区

1、挂载子卷

mount -t btrfs -o subvol=/@,compress=zstd /dev/(分区名) /mnt	#挂载根目录子卷
mount --mkdir -t btrfs -o subvol=/@home,compress=zstd /dev/(分区名) /mnt/home	#挂载home子卷,由于目录不存在,需加--mkdir创建目录
mount --mkdir -t btrfs -o subvol=/@swap,compress=zstd /dev/(分区名) /mnt/swap	#挂载swap子卷

2、挂载EFI分区

mount /dev/(EFI分区) /mnt/boot

3、检查

df -h	#查看已经挂载的分区

安装系统

pacstrap -K /mnt base base-devel linux linux-firmware btrfs-progs
#-K是导入密钥
#linux是内核,也可以使用zen或lts内核,没有特殊需求推荐linux内核
pacstrap /mnt networkmanager vim sudo amd-ucode
#必要的功能性软件
#networkmanager是联网工具
#vim是终端文本编辑器
#sudo是root权限管理器
#amd-ucode是微码,用来优化CPU,Intel安装intel-ucode

创建swap文件

1、创建swap文件

btrfs filesystem mkswapfile --size 16g -uuid cleat /mnt/swap/swapfile
#大小建议和内存一致或者是内存的两倍

2、启动swap

swapon /mnt/swap/swapfile

生成fstab文件

系统根据fstab文件自动挂载分区

genfstab -U /mnt > /mnt/etc/fstab
#genfstab生成文件系统表
#-U指定分区
#>将左边文件的内容覆写到右边的文件,>>是追加

临时进入系统

进入chroot环境对系统进行设置

arch-chroot /mnt

设置时区

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/loacaltime
hwclock --systohc	#同步硬件时钟

本地化设置

1、编辑配置文件

vim /etc/loacle.gen

按/搜索,取消en_US.UTF-8与zh_CN.UTF-8的注释,保存退出。

2、生成配置

locale-gen

3、设置语言

vim /etc/locale.conf

写入

LANG=en_US.UTF-8

不建议在安装桌面环境前设置中文,tty环境不支持中文。

设置主机名

vim /etc/hostname

输入想要想要的主机名

设置root密码

passwd

输入的密码不显示,输完回车就行。

安装Systemd-boot引导

启动systemd-boot-update服务

该服务负责自动更新启动项配置。

systemctl enable --now systemd-boot-update.service
安装启动管理器

chroot环境下systemd-boot不会自动创建启动项需要用户手动创建

但在258版本后似乎可以使用--variables=yes自动创建启动项,但在我这里似乎无效,具体效果有待考查。

bootctl install

​ 该命令会在EFI分区创建systemd-boot所需的文件

cd /boot/loader	#进入systemd-boot的配置目录
cp /usr/share/systemd/bootctl/loader.conf ./	#把示例配置复制到该目录
vim loader.conf	#编辑配置

loader.conf是启动菜单的配置文件

按下列示例设置

default arch.conf	#默认启动项,改为@saved可以记住上次的启动项
timeout 4	#等待时间
console max	#分辨率
editor no	#是否启用启动参数编辑器,建议关闭

配置完成后,执行以下命令,进行启动项配置

blkid	#列出所有分区的详情,记住根目录的PARTUUID
cd ./entries
cp /usr/share/systemd/bootctl/arch.conf ./	#复制示例启动项到启动项文件夹
vim arch.conf	#编辑启动项配置

示例文件如下

title   Arch Linux
linux   /vmlinuz-linux
initrd  /initramfs-linux.img
options root=PARTUUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx rw

在linux那一行下面添加一行

initrd /amd-ucode.img	#intel用户改为intel-ucode.img,加载微码

把options那一行根据实际修改一下

options root=PARTUUID=xxx rootflags=subvol=@ rw rootfstype=btrfs

btrfs文件系统需指定子卷,退出保存即可。

配置安全启动

⚠️此操作有一定风险,一些固件可能会在签署自定义密钥后无法启动,连BIOS都进不去,操作前请慎重考虑。

经测试,华硕笔记本BIOS会保留出厂密钥,就算签署错误也可以使用BIOS恢复原密钥。

Wiki上提供的方法过于复杂,建议使用sbctl。

安装sbctl

sudo pacman -S sbctl

设置安全启动模式

只有将安全启动模式设置为设置模式才可以签署自定义密钥。各品牌主板的设置方式不同。

就手上的华硕笔记本而言,安全启动页面点击key manager就可以找到切换到设置模式的选项。

查看安全启动状态

sbctl status

创建自定义密钥

sbctl create-keys

导入自定义密钥

有些主板会用微软的密钥进行签署和验证,在考虑要不要使用微软密钥时建议先上网考查

经测试,华硕主板使用微软密钥进行验证。

sbctl enroll-keys -m	

再次检查安全启动状态

sbctl status

可以看到sbctl已经安装完成。

签署

内核和引导加载程序只有被签署后才能正常在安全启动环境下工作。

sudo sbctl verify	#查看需要被签署的文件

使用下列命令对文件进行签署操作

sbctl sign -s [文件路径]

进入BIOS打开安全启动。

相关链接

系统安装部分参考
1、SHORiN-KiWATA/ShorinArchExperience-ArchlinuxGuide
2、ArchLinux官方安装指南
3、Archlinux简明指南
Systemd-boot配置部分参考
1、ArchLinux中文维基systemd-boot词条
2、基于btrfs和systemd-boot安装Arch Linux 2024-03-31

posted @ 2025-10-08 21:43  林克还是克林  阅读(364)  评论(0)    收藏  举报