在 btrfs 文件系统上使用 refind 作为启动管理器安装 Alpine
本教程介绍如何将 Alpine Linux 作为 btrfs 子卷与另一个 Linux 发行版双启动安装,并使用 refind 作为启动管理器。
注意: 本教程假设您的其他操作系统已经安装并使用
rEFInd
作为启动管理器,并且您的硬盘文件系统是 btrfs。即使 refind 在 Alpine Linux 的 testing 仓库中可用,本教程也不需要安装它。以下说明基于 blkid
命令显示的以下分区布局。
/dev/nvme0n1p1: UUID="55C3-8AB4" TYPE="vfat" /dev/nvme0n1p2: UUID="dab64e31-fb89-4364-b90f-b79400f73304" TYPE="swap" /dev/nvme0n1p3: LABEL="BTRFSVOL" UUID="823a3283-30a7-4fef-b50b-8a2230c71b5b" TYPE="btrfs"
- 完成 安装 直到 基础配置 步骤。
- 一旦 基础配置 完成,使用以下命令识别您的分区名称并记下 btrfs 文件系统的 LABEL。
# blkid
- 将 btrfs 分区挂载到 /mnt。
# mount /dev/nvme0n1p3 /mnt -t btrfs
- 要为 Alpine Linux 创建 Btrfs 子卷,请安装 btrfs-progs 软件包。
# apk add btrfs-progs
- 为 Alpine 创建一个新的 Btrfs 子卷。
# btrfs subvolume create /mnt/@alpine
- 卸载 btrfs 分区。
# umount /mnt
- 将新创建的子卷挂载到 /mnt。
# mount -o subvol=@alpine /dev/nvme0n1p3 /mnt
- 使用以下命令安装基本系统
# setup-disk -m sys /mnt
- 这会将基本系统安装到挂载的子卷。基本系统安装完成后,chroot 进入新系统
# chroot /mnt
- 检查并确保
/etc/fstab
使用正确的子卷作为 root 条目,如下所示。挂载 efi 分区是可选的。如果您想在两个操作系统之间共享您的 @home 子卷,您也可以立即添加一个条目。/etc/fstab
的内容UUID=823a3283-30a7-4fef-b50b-8a2230c71b5b / btrfs rw,relatime,compress=zlib:3,ssd,discard=async,space_cache=v2,subvol=/@alpine 0 1 UUID=55C3-8AB4 /boot/efi vfat rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=utf8,shortname=mixed,errors=remount-ro 0 2 - 验证 linux 内核是否成功安装。
# apk list --installed |grep lts
- 如果您的其他操作系统已经安装并使用 refind 作为启动管理器,则无需再次安装 refind。您可能需要删除 grub 和 grub-efi 软件包。
# apk del grub grub-efi
- 退出 chroot。
# exit
- 挂载 EFI 分区以编辑 refind.conf 文件。
# mkdir /mnt/boot/efi && mount dev/nvme0n1p1 /mnt/boot/efi
- 编辑 /mnt/os/boot/efi/EFI/refind/refind.conf 以引导 alpine,方法是为 Alpine Linux 添加一个条目,如下所示
/boot/efi/EFI/refind/refind.conf
的内容menuentry "Alpine Linux" { volume "BTRFSVOL" loader @alpine/boot/vmlinuz-lts initrd @alpine/boot/initramfs-lts options "root=UUID=823a3283-30a7-4fef-b50b-8a2230c71b5b rw rootflags=subvol=@alpine rootfstype=btrfs" } - 卸载所有内容
# umount -R /mnt
- 重启您的系统。
# reboot
- 现在,您应该在 rEFInd 启动菜单中看到一个启动到 Alpine Linux 的选项。