initrd에서 실제 init로 실행을 전달할 때 문제가 발생하고 /dev/mapper에서 장치가 누락되었습니다.

initrd에서 실제 init로 실행을 전달할 때 문제가 발생하고 /dev/mapper에서 장치가 누락되었습니다.

Gentoo에서는 (마침내) initrd와 LILO를 사용하여 암호화된 시스템을 부팅할 수 있었습니다.

나는 이 가이드를 사용했다http://whitehathouston.com/documentation/gentoo/initramfs_howto.htm

그러나 시스템 부팅이 완료된 후 /dev/mapper/cryptvg-root가 누락된 것으로 나타납니다. 왜 그럴까요? ls -al /dev/mapper를 실행하면 "control" 파일만 표시됩니다. 그러나 mount는 /dev/mapper/cryptvg-root가 /에 마운트되었다고 말합니다.

제어권을 전달하기 전에 initrd의 /dev 파일 시스템을 실제 루트 파일 시스템으로 다시 매핑하기 위해 뭔가를 추가해야 할 수도 있다고 생각했습니다. 그래서 나는 이것을 추가했습니다 :

mount -o move /dev /mnt/root/dev

switch_root를 실행하기 전에.

그러나 부팅이 완료되어도 여전히 /dev/mapper/cryptvg-root가 없습니다.

switch_root 실행 전과 실행 중에 제어권을 제대로 전달하려면 어떻게 해야 합니까?

중요한 경우:

/dev/sda1 = /boot (암호화되지 않음) /dev/sda2 = / (암호화됨)

답변1

initramfs를 구축하려면 dracut을 사용하는 것이 좋습니다. 당신이 전체 과정을 배우기 위해 거기에 있지 않는 한, 나는 추측합니다.

현재 문제의 경우 udev가 initramfs에서 실행되어 실제 드라이브를 찾은 다음 루트 fs를 전환하여 모든 실제 장치 노드를 생성한 후 올바르게 실행되는지 확인하세요.

답변2

너무 늦었지만, switch_root 다음에 "dmsetup mknodes"를 실행하면 /dev/mapper 아래에 장치 노드가 제공됩니다. checkfs 및 fsck를 실행하기 전에 이 작업을 수행했는지 확인하세요. 자세한 내용은 젠투 보드의 주제 940802를 참조하세요.

관련 정보