초기화를 찾을 수 없습니다! 암호화된 lvm 루트 파티션

초기화를 찾을 수 없습니다! 암호화된 lvm 루트 파티션

오늘은 lvm을 사용하여 루트 파티션을 암호화된 luks 파티션으로 이동하기로 결정했지만 몇 가지 문제에 부딪혔습니다.
이것이 내 초기 설정입니다.

-- sda
    - sda1 (debian)
    - sda2 (secondary)
    - sda5 (swap)
    - sda6 (home)  
    - sda7 (voidlinux)

sda1을 512M 부팅 파티션(sda1)으로 분할하고 나머지 부분은 voidlinux(sda3)에 사용됩니다. 그것은되었다

-- sda
    - sda1 (boot)
    - sda2 (secondary)
    - sda5 (swap)
    - sda6 (home)
    - sda7 (void)
    - sda3 (for void)

그런 다음 sda3를 암호화하고 "vg"라는 lvm vg를 만들고 lv "root"를 만들었습니다.

-- sda
    - sda1 (boot)
    - sda2 (secondary)
    - sda5 (swap)
    - sda6 (home)
    - sda7 (void)
    - sda3
       - enc
          - vg-root

에 ext4 파일 시스템을 생성하고 /dev/vg/root이를 마운트한 다음 이전에 생성한 백업 tar 아카이브의 압축을 풀었습니다. tar 아카이브에는 나 /boot /usr /etc로부터의 공백이 포함되어 있습니다 ./var/

/dev/vg/root에 설치하고 /mnt디렉터리를 만든 다음 /mnt/{proc,dev,sys,tmp}실행합니다 for i in proc dev sys tmp ;do mount --rbind /$i /mnt/$i ;done.

도망치다 mv /mnt/boot/*6.1* /mnt/tmpmount /dev/sda1 /mnt/boot마침내 mv /mnt/tmp/*6.1* /mnt/boot.

이러한 심볼릭 링크는 아래에 생성됩니다 /mnt. [bin->/usr/bin, lib->/usr/lib, lib32->/usr/lib32, lib64->/usr/lib, sbin->/usr/bin]그런 다음 루트를 /mnt.

여러 프로그램을 실행해 보았는데 모든 것이 잘 작동합니다. 다음으로 .installed grub을 /etc/default/grub편집 했습니다 . grub.cfg . initramfs를 재구축하고 항목 을 추가 했습니다 .GRUB_CMDLINE_LINUX_DEFAULT="loglevel=4 rd.auto cryptdevice=/dev/sda3:enc"
grub-install /dev/sdagrub-mkconfig -o /boot/grub/grub.cfg
dracut -f
/dev/vg/root / ext4 defaults 0 1/dev/sda1 /boot ext2 defaults 0 0/etc/fstab

재부팅했을 때 비밀번호를 입력했는데 이런 메시지가 떴습니다... Cannot find init! Please check to make sure you passed a valid root filesystem!
여기에 갇혀서 다음에 무엇을 해야 할지 모르겠습니다. 도와주세요.
다음은 dracutrescue 쉘에서 얻은 전체 로그입니다.페이스트빈

답변1

해결되었습니다. 심볼릭 링크 [bin,lib*,sbin]은 상대적이어야 합니다. 즉, bin->usr/bin...입니다.이것init쉘 스크립트의 코드 조각이 initramfs이를 이해하는 데 도움이 되었습니다.

관련 정보