시작 시 시스템 암호화 비밀번호 입력 프롬프트 사용자 정의

시작 시 시스템 암호화 비밀번호 입력 프롬프트 사용자 정의

내 아치 Linux 노트북에는 전체 디스크 암호화가 있습니다. 컴퓨터의 전원을 켜면 디스크 암호를 묻는 메시지가 나타납니다. 내 시스템은 luks Archwiki 페이지의 LVM을 통해 암호화됩니다. 프롬프트에는 "cryptlvm 볼륨에 비밀번호가 필요합니다"와 같은 내용이 표시되며 소유자 및 분실 시 반환 주소와 같은 시스템에 대한 일부 정보를 포함하도록 이를 변경하고 싶습니다. 지금까지 아치 위키를 살펴보고 비슷한 질문을 한 사람이 있는지 검색해 보았는데 아무 것도 찾을 수 없는 것 같습니다.

답변1

나는 mkinitcpio를 사용하여 그러한 정보를 인쇄하는 사용자 정의 initramfs 모듈을 만들 수 있다는 것을 발견했습니다. 이것을 올바르게 따르십시오. 그렇지 않으면 커널이 충돌할 것입니다. 이렇게 하려면 다음 위치에 파일을 생성하면 됩니다.

  • /usr/lib/initcpio/hooks/MODULENAME
  • /usr/lib/initcpio/install/모듈 이름

/usr/lib/initcpio/install/모듈 이름
다음은 mkinitcpio를 사용하여 initramfs를 재생성할 때 모듈을 빌드하는 데 도움이 되는 bash 스크립트입니다. build() 및 help() 함수가 있어야 합니다. 빌드 함수는 동일한 이름의 런타임 bash 파일을 /usr/lib/initcpio/hooks/MODULENAME에 추가하는 add_runscript 명령을 호출합니다.

build() {

    add_runscript
}

/usr/lib/initcpio/hooks/MODULENAME
이는 initramfs가 로드될 때 실행되는 bash 스크립트입니다. 실행하려는 모든 명령은 run_hook()이라는 함수에 있어야 합니다.


run_hook() {
    # note this environment is limited as our drive is encrypted
    # only core system commands will be available 
    # it is possible to add more commands to the initramfs environment
    echo "hello!!"
}

mkinitcpio.conf에 후크 추가
이제 /etc/mkinitcpio.conf에 있는 mkinitcpio 구성 파일의 배열에 후크를 추가합니다.

# we put in the custom hook
# we put it before our encrypt hook!!
# so it shows before our password prompt
HOOKS=(base udev autodetect modconf kms keyboard MODULENAME encrypt lvm2 keymap consolefont block filesystems fsck)

mkinitcpio 재생성
마지막으로 다음 부팅 시 모듈이 로드될 수 있도록 initramfs를 재생성할 수 있습니다.

$~ sudo mkinitcpio -p linux

재부팅하기 전에 출력에서 ​​오류가 있는지 확인하고 커널 패닉이 발생하지 않도록 기도하세요!

관련 정보