시작 시 /sbin/cryptsetup을 찾을 수 없습니다.

시작 시 /sbin/cryptsetup을 찾을 수 없습니다.

저는 LUKS를 사용하여 일부 LVM 파티션을 포함하는 암호화된 루트 파티션을 만들었습니다. 부팅할 수 없으며 부팅 시 다음 출력이 표시됩니다.

Begin mounting root file system ... Begin: Running /scripts/local-top ... /scripts/local-top/cryptroot: line 1: /sbin/cryptsetup: not found

여전히 비밀번호를 묻는 메시지가 표시됩니다.

Unlocking the disk /dev/sda5 (macbookcrypt)
Enter passphrase: *******************************
cryptsetup: cryptesetup failed, bad password or options?
/scripts/local-top/cryptroot: line 1: /sbin/cryptsetup: not found

그러나 매번 실패했다.

내 시작 명령줄은 다음과 같습니다.

vmlinuz-3.13.0-37 generic ro root=/dev/mapper/macbooklvm-root cryptopts=target=macbookcrypt,source=/dev/sda5,lvm=macbooklvm recovery initrd=\initrd.img-3.13.0-37-generic

" dm_crypt" 를 추가한 다음 include를 /etc/modules사용하여 update-initramfs다시 생성했습니다 dm_crypt. 참고로 저는 우분투 14.04를 사용하고 있습니다.

initramfs 쉘에서는 어디에서도 찾을 수 없는 것 같습니다 cryptsetup.

(initramfs) cat /proc/modules | grep crypt
dm_crypt 23177 0 - Live 0xffffffffa0006000
(initramfs) find / -iname "cryptsetup"
(initramfs)

모듈이 로드된 것 같아서 dm_crypt괜찮지만 여기에는 cryptsetup이 존재하지 않습니다. Linux 부팅에 어떻게 설치합니까? 어떻게든 initrd, vmlinuz또는 파일에 포함되어야 합니까 System? 저는 이 해킹을 처음 접했습니다.

답변1

물론 제가 /etc/crypttab파일을 만든 것은 아닙니다. 하나를 만든 다음 update-initramfs -u문제를 해결하세요.

답변2

우분투 14.04에서 나는 놓쳤다xts커널 모듈은 다음에서 제공됩니다.

/etc/initramfs-tools/modules

놓칠 수 있는 다른 모듈은 다음과 같습니다.

raid1
raid456
aes-x86_64
sha512-ssse3
xts
dm-mod
dm-crypt

grub 명령줄(Linux)에 이 옵션을 추가하여 근본 원인을 찾았습니다.

break=mount

그러면 비지박스가 강제로 삭제됩니다. 그런 다음 USB 스틱을 통해(다른 컴퓨터에서) 이 파일을 ramfs에 복사할 수 있습니다.

mkdir /boot
mount /dev/sdc1 /boot
cp cryptsetup /sbin/cryptsetup
cp libcryptsetup.so.4.0.0 /lib/libcryptsetup.so.4
cp libpopt.so.0.0.0 /lib/libpopt.so.0
cp libgcrypt.so.11.7.0 /lib/libgcrypt.so.11
cp libgpg-error.so.0.8.0 /lib/libgpg-error.so.0
/boot/cryptsetup luksOpen /dev/md10 root

(또한 LVM이 아닌 소프트웨어 RAID에 대한 루트 액세스 권한도 있습니다.) 모듈 누락 오류가 발생합니다.

그러다가 좋은 생각이 떠올랐습니다. 위의 cryptsetup 파일을 /boot 파티션에 미리 복사해 두면 USB 드라이브를 조작할 필요가 없다는 것입니다. 대안은 /boot/tmp에서 (미리) initramfs 이미지의 압축을 푸는 것입니다:

gzip -d < ../initrd.img-3.13.0-62-generic | cpio --extract --verbose --make-directories --no-absolute-filenames

update-initramfs -k all -c 따라서 일부 커널 업데이트 후에 실패 하더라도 모든 작업 라이브러리와 cryptsetup을 사용할 수 있습니다 .

답변3

또 다른 질문으로 인해 위의 오류 메시지가 표시되었지만 위에서 언급한 대로 조사한 후에는 다음과 같은 보다 구체적인 오류 메시지를 받았습니다.

 cryptsetup luksOpen /dev/md10 cryptroot

 device-mapper: table: 252:0: crypt: unknown target type
 ioctl: error adding target to table

해결책: /etc/crypttab 루트 장치 이름(cryptroot)이 /etc/initramfs-tools/conf.d/mdadm 설정과 일치하는지 확인하십시오. 다른 사람에게는 "cryptroot"가 있고 다른 사람에게는 "root"가 있는데 대상 장치 이름을 동기화한 후 꿈처럼 부팅됩니다!

설정 수정 후 실행

update-initramfs -c -k all

관련 정보