Alpine Linux + EFISTUB + BTRFS

2024-07-20 14:40 +0800

文件系统策略

/boot --- /dev/nvme0n1p1 vfat 
/     --- /dev/nvme0n1p3 btrfs subvol=/root
/home --- /dev/nvme0n1p3 btrfs subvol=/home
swap  --- /dev/nvme0n1p2 swapfs
fdisk /dev/nvme0n1
# ... 分区和格式化操作省略
# 制作 btrfs 子卷
apk add btrfs-progs
mount /dev/nvme0n1p3 /mnt
btrfs subvolume create /mnt/home
btrfs subvolume create /mnt/root
umount /mnt

# 挂载分区到 /mnt
mount /dev/nvme0n1p3 /mnt -osubvol=/root
mkdir /mnt/{boot,home}
mount /dev/nvme0n1p3 /mnt/home -osubvol=/home
mount /dev/nvme0n1p1 /mnt/boot

安装 rootfs

系统

  env BOOTLOADER=none DISKOPTS=/mnt setup-alpine

与正常的 sys 模式安装相比,最后会多两个步骤

# 设置 lbu 备份路径
Enter where to store configs

# 设置 apk 缓存路径
Enter apk cache directory

如不需要,皆 none 即可(与 sys 模式安装相同

微码

apk add --root /mnt amd-ucode # intel cpu 需替换 intel-ucode ,下文不赘述

启用 swap

fstab 中会没有 swap 的配置(如果需要),需要手动编辑 /mnt/etc/fstab 添加

EFISTUB

apk add efibootmgr
#!/bin/sh

params="root=/dev/nvme0n1p3 rootfstype=btrfs rootflags=subvol=/root rw modules=sd-mod,usb-storage,btrfs,nvme\
  initrd=\amd-ucode.img \
  initrd=\initramfs-lts"

efibootmgr --create --label "Alpine Linux" \
  --disk /dev/nvme0n1 --part 1 \
  --loader /vmlinuz-lts \
  --unicode "${params}" \
  --verbose