그래서 다음과 같은 레이아웃으로 시스템을 설치했습니다.
- 이라는 두 개의 NVME 드라이브에 걸쳐 있는 LV를 생성했습니다
spanned_vg-spanned_lv
. - LUKS로 LV를 포맷하고 다음과 같이 매핑했습니다.
cryptroot
- 이
cryptroot
가상 드라이브에는 루트 파티션으로 사용할 파티션이 하나만 있습니다. - 부팅은 드라이브 중 하나에 있는 별도의 파티션입니다.
lsblk
:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 3.1G 1 loop /mnt/livecd
sda 8:0 1 119.3G 0 disk
├─sda1 8:1 1 119.2G 0 part
│ └─ventoy 253:0 0 3.2G 1 dm /mnt/cdrom
└─sda2 8:2 1 32M 0 part
nvme1n1 259:0 0 476.9G 0 disk
└─nvme1n1p1 259:1 0 476.9G 0 part
└─spanned_vg-spanned_lv 253:1 0 1.4T 0 lvm
└─cryptroot 253:2 0 1.4T 0 crypt /mnt/gentoo
nvme0n1 259:2 0 931.5G 0 disk
├─nvme0n1p1 259:3 0 512M 0 part /mnt/gentoo/boot
└─nvme0n1p2 259:4 0 931G 0 part
└─spanned_vg-spanned_lv 253:1 0 1.4T 0 lvm
└─cryptroot 253:2 0 1.4T 0 crypt /mnt/gentoo
나는 luks의 아치에서 systemd-boot를 많이 사용했지만 LVM이나 gentoo에서는 한 번도 사용하지 않았습니다(문서에서는 약간 다른 구성 항목을 사용하는 것 같습니다). 그래서 약간 당황스럽습니다. 나는 온라인에서 찾은 몇 가지 예를 시도해 보았고 지금까지 로더 항목을 얻었습니다.
tile Gentoo Linux
efi /vmlinuz-6.1.41-gentoo-x86_64
initrd /initramfs-6.1.41-gentoo-x86_64.img
options luks.name=/dev/mapper/spanned_vg-spanned_lv=cryptroot root=/dev/mapper/cryptroot init=/usr/lib/systemd/systemd ro dolvm
하지만 부팅하려고 하면 루트 디렉터리를 찾을 수 없기 때문에 커널 패닉이 발생합니다.
따라서 다음 중 하나가 정확하다고 생각합니다.
- 평소 사용하던 가상 디스크 생성을 엉망으로 만들었기
mkinitcpio
때문에 잘못 사용하고 있을 가능성도 있습니다genkernel
. 내genkernel.conf
것은:
INSTALL="yes"
NOCOLOR="false"
LVM="yes"
LUKS="yes"
MICROCODE="amd"
GK_SHARE="${GK_SHARE:-/usr/share/genkernel}"
CACHE_DIR="/var/cache/genkernel"
DISTDIR="${GK_SHARE}/distfiles"
LOGFILE="/var/log/genkernel.log"
LOGLEVEL=1
DEFAULT_KERNEL_SOURCE="/usr/src/linux"
- 내 lv는 systemd가 cryptroot를 열려고 시도할 때까지 발견되지 않습니다. 이 문제를 어떻게 해결할 수 있을지 모르시나요?
- 내가 하고 있는 일은 어리석은 일이고 이 레이아웃은 실제로 지원되지 않습니다.
여기에 어떤 도움이라도 좋을 것입니다. 감사합니다!
답변1
저는 젠투를 사용하지 않았으므로 틀릴 수도 있습니다. 이러한 커널 매개변수는 실제로 커널 자체가 아니라 initramfs에 의해 해석되기 때문입니다. 하지만...
한 단계를 놓친 것 같습니다. 이렇게 하려면 cryptsetup이 initramfs에서 LUKS 드라이브의 잠금을 해제해야 합니다.
root=/dev/mapper/
다른 배포판에서는 다음을 수행해야 합니다.
- 패키지를 설치하고 initramfs에 스크립트를 추가하여 LUKS 블록 장치의 잠금을 해제하세요. 예를 들어 우분투에서는 설치할 수 있습니다cryptsetup-initramfs
/etc/cryptab
잠금 해제 행을 포함하도록 업데이트되었습니다 ./dev/mapper/cryptroot
- initramfs를 다시 빌드하는 명령을 실행하십시오(
update-initramfs
).
젠투에도 비슷한 세 단계가 필요한 것 같습니다.