Dracut에 cryptsetup을 추가하는 방법

Dracut에 cryptsetup을 추가하는 방법

Dracut으로 전환하려고 하는데 문제가 많습니다. 이를 하나씩 제거하려면 먼저 시스템이 올바르게 부팅되기를 바랍니다. 따라서 내 Grub2 항목은 다음과 같습니다.

menuentry 'dracut' {
        load_video
        insmod gzio
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
        insmod part_msdos
        insmod ext2
        set root='hd1,msdos1'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1  829c0201-9b6d-4e18-8464-9d2551311ea6
        else
          search --no-floppy --fs-uuid --set=root 829c0201-9b6d-4e18-8464-9d2551311ea6
        fi
        echo    'Loading Linux 4.9.0-2-amd64 ...'
    linux   /vmlinuz-4.9.0-2-amd64 rd.shell rd.debug log_buf_len=1M
        echo    'Loading dracut initial ramdisk ...'
        initrd  /initramfs-4.9.0-2-amd64.img
}

나는 복구 셸에 들어간 다음 수동으로 루트 파일 시스템을 조립하고 부팅을 계속할 것으로 예상했지만 cryptsetup복구 셸에는 바이너리가 없습니다.

Dracut 구성 파일은 /etc/dracut.conf.d/*다음과 같습니다.

do_prelink=no
add_dracutmodule+="cryptsetup" 

관련 모듈 목록은 다음과 같습니다.

# dracut --list-modules | grep crypt
dracut: Executing: /usr/bin/dracut --list-modules
crypt
crypt-gpg
crypt-loop
ecryptfs

cryptsetup(복구 셸을 통해) 암호화된 파티션을 수동으로 잠금 해제할 수 있도록 이를 추가하려면 어떻게 해야 합니까 ?

답변1

debian dracut-core 044+243-3, /usr/lib/dracut/modules.d/90crypt/module-setup.sh에서 시작:

require_any_binary $systemdutildir/systemd-cryptsetup cryptsetup || return 1

따라서 dracut은 먼저 /lib/systemd/systemd-cryptsetup을 포함하려고 시도한 다음 첫 번째 항목이 없으면 /sbin/cryptsetup을 포함하고 둘 다 없으면 실패합니다.

이는 각각 cryptsetup-bin 2:2.1.0-5 및 systemd 241-1에서 제공됩니다.

/lib/systemd/systemd-cryptsetup의 사용법은 /sbin/cryptsetup과 동일하지 않습니다. 실제로 기능이 더 적습니다.

systemd-cryptsetup attach VOLUME SOURCEDEVICE [PASSWORD] [OPTIONS]
systemd-cryptsetup detach VOLUME

Attaches or detaches an encrypted block device.

See the [email protected](8) man page for details.

따라서 /sbin/cryptsetup을 포함해야 할 수도 있습니다.

dracut --install "/sbin/cryptsetup" /boot/initrd.1 4.19.0-5-amd64

또는 /etc/dracut.conf.d/XXX에 있습니다.

install_items+="/sbin/cryptsetup"

파일 자체만 복사하는 "include" 스위치와 동적 라이브러리도 복사하는 "install" 스위치도 있습니다.

마지막으로 확인에는 다음이 포함됩니다 lsinitrd /boot/initrd.1.

출력(아마도 |grep cryptsetup):

-rwxr-xr-x   1 root     root        47152 Jul  3 09:10 sbin/cryptsetup  
-rw-r--r--   1 root     root       363920 Feb  9 07:40 lib/x86_64-linux-gnu/libcryptsetup.so.12.4.0

관련 정보