在 btrfs 文件系统上使用 refind 作为启动管理器安装 Alpine

来自 Alpine Linux

本教程介绍如何将 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"
  1. 完成 安装 直到 基础配置 步骤。
  2. 一旦 基础配置 完成,使用以下命令识别您的分区名称并记下 btrfs 文件系统的 LABEL

    # blkid

  3. 将 btrfs 分区挂载到 /mnt。

    # mount /dev/nvme0n1p3 /mnt -t btrfs

  4. 要为 Alpine Linux 创建 Btrfs 子卷,请安装 btrfs-progs 软件包。

    # apk add btrfs-progs

  5. 为 Alpine 创建一个新的 Btrfs 子卷。

    # btrfs subvolume create /mnt/@alpine

  6. 卸载 btrfs 分区。

    # umount /mnt

  7. 将新创建的子卷挂载到 /mnt。

    # mount -o subvol=@alpine /dev/nvme0n1p3 /mnt

  8. 使用以下命令安装基本系统

    # setup-disk -m sys /mnt

  9. 这会将基本系统安装到挂载的子卷。基本系统安装完成后,chroot 进入新系统

    # chroot /mnt

  10. 检查并确保 /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
  11. 验证 linux 内核是否成功安装。

    # apk list --installed |grep lts

  12. 如果您的其他操作系统已经安装并使用 refind 作为启动管理器,则无需再次安装 refind。您可能需要删除 grub 和 grub-efi 软件包。

    # apk del grub grub-efi

  13. 退出 chroot。

    # exit

  14. 挂载 EFI 分区以编辑 refind.conf 文件。

    # mkdir /mnt/boot/efi && mount dev/nvme0n1p1 /mnt/boot/efi

  15. 编辑 /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" }
  16. 卸载所有内容

    # umount -R /mnt

  17. 重启您的系统。

    # reboot

  18. 现在,您应该在 rEFInd 启动菜单中看到一个启动到 Alpine Linux 的选项。


参见