사전 준비 작업은 다음과 같습니다.
- 리눅스 4.2.3-젠투
- GRUB2
- UEFI, 보안 부팅 꺼짐
이제 보안 부팅을 망쳐서 활성화하고 싶습니다. 다소간의 관심이 가이드, 나는 가지고있다:
MS의 백업 기본 키:
#efi-readvar -v PK -o old_PK.esl #efi-readvar -v KEK -o old_KEK.esl #efi-readvar -v db -o old_db.esl #efi-readvar -v dbx -o old_dbx.esl
나만의 키 생성:
#openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my platform key/" -keyout PK.key -out PK.crt -days 3650 -nodes -sha256 #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my key exchange key/" -keyout KEK.key -out KEK.crt -days 3650 -nodes -sha256 #openssl req -new -x509 -newkey rsa:2048 -subj "/CN=my kernel signing key/" -keyout db.key -out db.crt -days 3650 -nodes -sha256 #cert-to-efi-sig-list -g "$(uuidgen)" PK.crt PK.esl #sign-efi-sig-list -k PK.key -c PK.crt PK PK.esl PK.auth
efi-readvar
재부팅 시 키 입력이 출력되지 않도록 BIOS에서 키 입력을 지웁니다.백업된 키를 다시 설정하고 내 키를 추가합니다.
#efi-updatevar -e -f old_KEK.esl KEK #efi-updatevar -e -f old_db.esl db #efi-updatevar -e -f old_dbx.esl dbx #efi-updatevar -a -c KEK.crt KEK #efi-updatevar -a -c db.crt db #efi-updatevar -f PK.auth PK
부트로더에 서명합니다.
#cp /boot/EFI/grub/grubx64.efi /boot/EFI/grub/grubx64.efi.old #sbsign --key db.key --cert db.crt --output /boot/EFI/grub/grubx64.efi /boot/EFI/grub/grubx64.efi
확인 과정은 다음과 같습니다.
#sbverify --cert db.crt /boot/EFI/grub/grubx64.efi
Signature verification OK.
그럼에도 불구하고 BIOS에서 보안 부팅을 켜고 재부팅하면 일반적인 오류 메시지가 나타나고 서명되지 않은 것처럼 GRUB가 호출되지 않습니다. 내가 무엇을 놓치고 있나요?