借助Archboot安装Archlinux并开启安全启动

Archboot的启动

MOK导入hash

正常情况下,会遇到下面的错误:

Snipate

按下回车,进入如图界面:

Snipaste_2024-07-23_08-31-44

选择Enroll hash from disk

选择以下文件:

  • ARCHBOOT/EFI/BOOT/内的所有64位efi
  • ARCHBOOT/boot/vmlinuz-x86_64 !请一定导入导入此文件!

安装前配置

1. 系统时间&硬盘分区

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

使用WinPE提前预留空间并随意创建一个任何格式的分区,方便之后使用。

这一步请在win系统下完成

2. 重启至Archboot

出现下图界面时,按下CTRL-C进入bash

Snipaste_2024-07-23_08-42-28

3. 更新时间

timedatectl set-ntp true
timedatectl status

4. 更改镜像源

编辑/etc/pacman.d/mirrorlist,保留一个国内镜像即可。

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

5. 分区(Btrfs)

5.1 格式化分区

nvmeYYY为Arch分区,nvmeXXX为EFI分区。

mkfs.btrfs -L Arch /dev/nvmeYYY
mkfs.vfat -F32 /dev/nvmeXXX

5.2 挂载并创建子卷

注:Archboot的安装程序识别的挂载点是/mnt/install

mount -t btrfs -o compress=zstd /dev/nvmeYYY /mnt/install
btrfs subvolume create /mnt/install/@
btrfs subvolume create /mnt/install/@home
btrfs subvolume create /mnt/install/@swap

5.3 创建挂载点

umount -R /mnt/install
mount -t btrfs -o subvol=/@ /mnt/install
mkdir -p /mnt/install/{boot,swap,home}
umount -R /mnt/install

请务必卸载分区,稍后使用Archboot的安装程序进行挂载,避免出现grub相关错误!

5.4 使用Archboot的安装程序挂载分区

输入setup进入安装程序,选择1. Prepare Storage Device

Snipaste_2024-07-23_08-57-17

选择4. Set Filesystem Mountpoints

Snipaste_2024-07-23_08-58-12

挂载分区,但先不挂载swap分区

Snipaste_2024-07-23_09-00-19

选择Root Partition

Snipaste_2024-07-23_09-02-17

是否格式化,选择No

Snipaste_2024-07-23_09-03-23

选择@子卷

Snipaste_2024-07-23_09-04-23

选择你需要的压缩算法。

选择ESP分区

Snipaste_2024-07-23_09-05-38

选择/boot

Snipaste_2024-07-23_09-06-24

挂载额外分区,过程参考挂载root分区,最后选择DONE,完成挂载

Snipaste_2024-07-23_09-08-21 Snipaste_2024-07-23_09-09-11

生成fstab:

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

6. 安装系统

6.1 安装基本包

你既可以使用Archboot的安装程序2. Install Packages,也可以在新的tty窗口自行安装

pacstrap -K /mnt/install base base-devel linux-zen linux-zen-headers btrfs-progs neovim networkmanager terminus-font intel-ucode polkit
#AMD请用amd-ucode
#Archboot默认安装以下包 base linux polkit btrfs-progs dosfstools terminus-font linux-firmware
#这里我自行安装(因为我要用linux-zen)

6.2 配置

可通过Archboot的安装程序进行,也可通过arch-chroot /mnt/install进行

自行配置和各文件样例请移步 archlinux基础安装

MKINITCPIO EARLY USERSPACE安装程序提供BusyboxSystemd,建议选择Systemd

安装引导

借助Archboot的安装程序,选择4. Install BootLoader

Snipaste_2024-07-23_08-57-17

注:当你使用linux-zen时,你需要在下面的grub配置中添加-zen后缀,否则无法正常引导

他们分别是:/vmlinuz-linux/initramfs-linux,修改为/vmlinuz-linux-zen/initramfs-linux-zen

Snipaste_2024-07-23_09-32-43

确认秘钥保存位置

Snipaste_2024-07-23_09-34-55

自定义CN名

Snipaste_2024-07-23_09-35-37

输入MOK导入时需要的密码(简单即可),重复输入两遍

Snipaste_2024-07-23_09-36-28

最后一步:

进入新tty,编辑/etc/pacman.d/hooks/999-sign_kernel_for_secureboot.hook

更改Target = linux为你所用的内核,如Target = linux-zen,并重新安装:

pacman -S linux-zen

完成kernel签名,重启,进入MOK,导入秘钥:

Snipaste_2024-07-23_09-38-07 Snipaste_2024-07-23_09-38-19

大功告成:

Snipaste_2024-07-23_10-03-43

后续

请自行参阅桌面环境与常用应用安装和我的文章Linux实用建议