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

浙公网安备 33010602011771号