이 설정으로 Arch Linux를 설치했습니다. 이제 젠투로 듀얼 부팅을 하고 싶습니다. 그러나 젠투를 시작할 때 루트 UUID가 감지되지 않습니다(LVM에서). 내 파티션 구성표는 다음과 같습니다. ( lsblk -f
)
sda
├─sda1 vfat E3B9-CCB0 /boot
└─sda2 LVM2_member GwYKZG-fjl2-UV2L-KX57-1O8J-rBdp-fpdheC
├─lvm-arch ext4 67ce60f0-1a30-4da3-bb14-8dbfa0e4ea1d /
└─lvm-gentoo ext4 4db48ce0-3163-4a4d-ab8a-1961935cb680
구성 파일을 사용하여 Arch Linux를 부팅할 수 있습니다 /boot/loader/entries/arch.conf
.
title Arch Linux (LVM)
linux /vmlinuz-arch
initrd /initramfs-arch.img
options root=UUID=67ce60f0-1a30-4da3-bb14-8dbfa0e4ea1d rw
젠투 설치를 완료한 후 /boot/loader/entries/gentoo.conf
파일을 생성합니다:
title Gentoo (LVM)
linux /vmlinuz-gentoo
initrd /initramfs-gentoo.img
options root=UUID=4db48ce0-3163-4a4d-ab8a-1961935cb680 rw
나는 /boot/EFI/systemd/systemd-bootx64.efi
부팅을 사용합니다. 젠투 옵션이 부팅 메뉴에 나타나지만, 선택해도 아무 일도 일어나지 않습니다. 그냥 비어 있습니다. 내 하드 드라이브를 사용하여 virtualbox에서 직접 부팅을 시도했는데 UUID를 찾을 수 없을 때까지만 부팅이 작동합니다 rootfs
. UUID /dev/mapper/lvm-gentoo
만 /dev/sda2
감지됩니다.
내 생각엔 커널이나 initramfs에 문제가 있는 것 같습니다. 그러나 나는 장치 매퍼 지원을 사용하여 커널을 컴파일했습니다. 내가 하지 않은 일:
genkernel --lvm --install initramfs
내가 놓친 게 무엇입니까?
답변1
LVM(Logical Volume Manager)뿐만 아니라 UUID(Universally Unique Identifier)도 사용해야 하므로 genkernel 명령에 다른 옵션을 추가해야 합니다. 그러면 --disklabel
다음과 같은 결과가 나타납니다.
genkernel --lvm --disklabel --install initramfs
using --disklabel
옵션을 사용 blkid
하면 다른 명령이 initramfs에 포함되고 부팅 단계에서 사용할 수 있게 됩니다.
다른 조언은 모든 드라이버도 사용할 수 있는지 확인하기 위해 다른 옵션을 시도하는 것입니다. 어쩌면 커널이 아닌 모듈로 구축했을 수도 있습니다. --all-ramdisk-modules
initramfs 이미지의 모든 커널 모듈이 포함됩니다. 필수사항은 아니지만 안전을 위해 시도해 볼 수 있습니다.
답변2
루트가 논리 볼륨에 있는 경우 systemd-boot 로더 파일은 다음과 같아야 합니다.
title Debian10
linux /vmlinuz-4.19.0-4-amd64
initrd /initrd.img-4.19.0-4-amd64
options root=/dev/mapper/VG01-LV01 rw
LV 경로를 얻으려면 다음을 사용하십시오. (
lsblk --path --output name,kname,fstype,mountpoint,model
열 name
)