UEFI-64 使用 systemd-boot 引导 btrfs
参考:
systemd-boot
mkinitcpio
Modern Arch linux installation guide
现代化的 Archlinux 安装,Btrfs、快照、休眠以及更多。
Installing archlinux the EFI/systemd-boot way
这里只讲述了一些关键步骤
以下出现的
/dev/nvme0n1 是我的硬盘
/dev/nvme0n1p1 ESP 分区
/dev/nvme0n1p2 swap 分区
/dev/nvme0n1p3 root 分区
创建和挂载 btrfs 分区
分区并格式化
查看硬盘 fdisk -l
分区 cfdisk /dev/nvme0n1
格式化分区
mkfs.fat -F 32 /dev/nvme0n1p1
mkfs.btrfs /dev/nvme0n1p3
mkswap /dev/nvme0n1p2
创建 btrfs 子卷
mount /dev/nvme0n1p3
btrfs subvolume create /mnt/@
btrfs subvolume create /mnt/@home
btrfs subvolume create /mnt/@log
btrfs subvolume create /mnt/@cache
umount /dev/nvme0n1p3
挂载分区
mount /dev/nvme0n1p3 /mnt -o subvol=@,noatime,discard=async,compress=zstd
mount --mkdir /dev/nvme0n1p3 /mnt/home -o subvol=@home,noatime,discard=async,compress=zstd
mount --mkdir /dev/nvme0n1p3 /mnt/var/log -o subvol=@log,noatime,discard=async,compress=zstd
mount --mkdir /dev/nvme0n1p3 /mnt/var/cache -o subvol=@cache,noatime,discard=async,compress=zstd
noatime 降低数据读取和写入的访问时间
discard=async (TRIM)闲时释放磁盘未使用的区块
compress 数据写入前进行压缩
禁用写时复制,用于不参与快照的位置
chattr +C /mnt/var/log
chattr +C /mnt/var/cache
挂载 boot 分区
mount --mkdir /dev/nvme0n1p1 /mnt/boot
挂载 swap 分区
swapon /dev/nvme0n1p2
安装并配置 systemd-boot
将 systemd-boot 安装到 ESP:
bootctl --path=/boot install
编辑 /boot/loader/loader.conf
default @saved
timeout 4
console-mode auto
查看根分区 UUID
配置 systemd-boot 时要用到根分区的 UUID
ls -l /dev/disk/by-uuid/
或 lsblk -dno UUID /dev/nvme0n1p3
或 cat /etc/fstab
配置 systemd-boot 增加启动选项
创建并编辑 /boot/loader/entries/arch.conf
title Arch Linux (linux)
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux.img
options root=UUID=根分区的UUID rw rootflags=subvol=@
创建并编辑 /boot/loader/entries/arch-fallback.conf
title Arch Linux (linux fallback initramfs)
linux /vmlinuz-linux
initrd /amd-ucode.img
initrd /initramfs-linux-fallback.img
options root=UUID=根分区的UUID rw rootflags=subvol=@
检验配置是否正确
bootctl list
创建新的 initramfs
编辑 /etc/mkinitcpio.conf
给 HOOKS 数组中添加 systemd
给 MODULE 数组中添加 btrfs
生成新的 initramfs mkinitcpio -P
可选:添加 Windows 启动选项
systemd-boot 会在启动时自动搜索位于 /EFI/Microsoft/Boot/Bootmgfw.efi 的 Windows Boot Manager
挂载并拷贝Win引导分区中的 Microsoft 文件夹到 /EFI 文件夹下即可
mount --mkdir /dev/windows ESP所在的硬盘分区 /mnt/win
cd /mnt/win/EFI
cp -r Microsoft /boot/EFI/

浙公网安备 33010602011771号