오늘은 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/tmp
가 mount /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/sda
grub-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
이를 이해하는 데 도움이 되었습니다.