我无法启动新安装的 Arch Linux 系统,其根文件系统驻留在 GUID 分区设备上 LUKS 加密分区上的 LVM 精简配置逻辑卷上。
当 Systemd 的引导加载程序systemd-boot
加载我的引导条目时Arch Linux
,它会要求我输入 LUKS 加密分区的密码,但 10 秒后,无法激活 Arch Linux 根文件系统所在的 LVM 卷组。最终它把我扔进了救援壳里rootfs
。
如果我想用 Arch Linux 实现我想要实现的目标,有什么想法吗?
注意我是 Arch Linux 的新手,因此仔细阅读了所有与在特定存储配置上安装 Arch Linux 系统相关的 Arch Wiki 文章。
我专门配置的启动项Arch Linux
(/boot/loader/entries/arch.conf
)如下所示:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options cryptdevice=PARTUUID=<of /dev/sda3>:system root=UUID=<of /dev/system/arch.root> rootfstype=ext4 add_efi_memmap
为了完整起见,以下是我如何配置存储设备的要点:
$ parted —align optimal
(parted) unit MiB
(parted) select /dev/sda
(parted) mklabel gpt
(parted) mkpart primary 1 2
(parted) name 1 bios
(parted) set 1 bios_grub on
(parted) mkpart primary 2 1026
(parted) name 2 uefi
(parted) set 2 boot on
(parted) mkpart primary 1026 103426
(parted) name 3 system
(parted) quit
$ mkfs -t vfat -n UEFI -F 32 /dev/sda2
$ cryptsetup luksFormat —hash sha512 —cipher aes-xts-plain64 —key-size 512 /dev/sda3
$ cryptsetup open /dev/sda3 system
$ pvcreate /dev/mapper/system
$ vgcreate system /dev/mapper/system
$ lvcreate —type thin-pool —name pool —size 75G system
$ lvcreate —type thin —name swap —virtualsize 4G —thinpool system/pool
$ mkswap -L swap /dev/system/swap
$ lvcreate —type thin —name arch.root —virtualsize 20G —thinpool system/pool
$ mkfs -t ext4 -L arch.root /dev/system/arch.root
答案1
看起来在 Arch Linux 的初始 RAM 文件系统阶段期间lvm2
在钩子之后运行的钩子encrypt
无法激活精简配置的逻辑卷。
使用与我的问题中描述的相同的存储配置,除了正常的逻辑卷而不是精简配置的逻辑卷之外,包含这些卷的卷组可以毫无问题地激活。通过此更改,Arch Linux 成功启动。
因此,不要创建精简逻辑卷:
$ lvcreate —type thin-pool —name pool —size 75G system
$ lvcreate —type thin —name swap —virtualsize 4G —thinpool system/pool
$ mkswap -L swap /dev/system/swap
$ lvcreate —type thin —name arch.root —virtualsize 20G —thinpool system/pool
$ mkfs -t ext4 -L arch.root /dev/system/arch.root
必须创建正常的逻辑卷:
$ lvcreate —name swap —size 4G system
$ mkswap -L swap /dev/system/swap
$ lvcreate —name arch.root —size 20G system
$ mkfs -t ext4 -L arch.root /dev/system/arch.root