vmlinuz-4.18.12-041812- 일반에 잘못된 서명이 있습니다


15

오늘 커널을 ukuu로 업그레이드 한 후이 오류가 발생하여 부팅 할 수 없습니다.

error: /boot/vmlinuz-4.18.12-041812-generic has invalid signature
error: you need to load the kernel first

Windows 10 및 우분투 18.10으로 듀얼 부팅했습니다 (오늘 업그레이드)

업데이트 : grub의 "Ubuntu에 대한 고급 옵션"에서 선택한 이전 커널로 부팅했습니다.

그러나 커널을 업그레이드해야하며 그렇게하면 여전히 같은 문제가 발생합니다 ...


Lenovo T480의 펌웨어를 업데이트 한 후에도 동일한 문제가 발생하며 이전 커널이 여전히 작동하는 이유를 이해할 수 없습니다.
user205301

답변:



5

https://github.com/jakeday/linux-surface/blob/master/SIGNING.md 에는 커널 서명에 대한보다 구체적인 지침이 있습니다 (허용 된 답변에 링크 된 동일한 자습서에서 채택). 지침은 다음과 같이 완전히 재현됩니다.

보안 부팅을위한 사용자 정의 커널 서명

지침은 우분투 용이지만 부트 로더로 shim 및 grub을 사용하는 경우 다른 배포판에서도 유사하게 작동합니다. 배포판에서 shim (예 : Linux Foundation Preloader)을 사용하지 않는 경우 서명을 완료하는 비슷한 단계 (예 : LF Preloader 용 MokUtil 대신 HashTool)가 있거나 대신 shim을 설치하여 사용할 수 있습니다. shim 용 ubuntu 패키지는 shim-signed이지만 올바르게 설치하는 방법을 알려주므로 부트 로더를 엉망으로 만들지 마십시오.

Ubuntu의 최신 GRUB2 업데이트 (2.02 + dfsg1-5ubuntu1) 이후 보안 부팅이 활성화되어있는 한 GRUB2는 더 이상 서명되지 않은 커널을로드하지 않습니다. Ubuntu 18.04 사용자는 grub-efi 패키지를 업그레이드하는 동안이 커널이 서명되지 않았으며 업그레이드가 중단된다는 알림을받습니다.

따라서이 문제를 해결하기위한 세 가지 옵션이 있습니다.

  1. 커널에 직접 서명하십시오.
  2. 배포판의 서명 된 일반 커널을 사용합니다.
  3. 보안 부팅을 비활성화합니다.

옵션 2와 3은 실제로 실행 가능하지 않기 때문에 커널에 직접 서명하는 단계입니다.

우분투 블로그 에서 수정 된 지침 . 팔로우하기 전에 / boot / EFI 디렉토리를 백업하여 모든 것을 복원 할 수 있습니다. 자신의 위험에 따라 다음 단계를 수행하십시오.

  1. 서명 키를 작성하기위한 구성을 작성하고 mokconfig.cnf로 저장하십시오.
# This definition stops the following lines failing if HOME isn't
# defined.
HOME                    = .
RANDFILE                = $ENV::HOME/.rnd 
[ req ]
distinguished_name      = req_distinguished_name
x509_extensions         = v3
string_mask             = utf8only
prompt                  = no

[ req_distinguished_name ]
countryName             = <YOURcountrycode>
stateOrProvinceName     = <YOURstate>
localityName            = <YOURcity>
0.organizationName      = <YOURorganization>
commonName              = Secure Boot Signing Key
emailAddress            = <YOURemail>

[ v3 ]
subjectKeyIdentifier    = hash
authorityKeyIdentifier  = keyid:always,issuer
basicConstraints        = critical,CA:FALSE
extendedKeyUsage        = codeSigning,1.3.6.1.4.1.311.10.3.6
nsComment               = "OpenSSL Generated Certificate"

세부 사항에 따라 모든 부품을 조정하십시오.

  1. 커널 서명을위한 공개 및 개인 키를 작성하십시오.
openssl req -config ./mokconfig.cnf \
        -new -x509 -newkey rsa:2048 \
        -nodes -days 36500 -outform DER \
        -keyout "MOK.priv" \
        -out "MOK.der"
  1. 키를 PEM 형식으로도 변환하십시오 (mokutil에는 DER 필요, sbsign에는 PEM 필요).
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
  1. 심 설치 키를 등록하십시오.
sudo mokutil --import MOK.der

비밀번호를 묻는 메시지가 표시되면 비밀번호를 사용하여 다음 단계에서 키 선택을 확인하므로 아무거나 선택하십시오.

  1. 시스템을 다시 시작하십시오. MOKManager라는 도구의 블루 스크린이 나타납니다. "MOK 등록"을 선택한 다음 "키보기"를 선택하십시오. 2 단계에서 생성 한 키인지 확인한 후 프로세스를 계속 진행하고 4 단계에서 제공 한 암호를 입력해야합니다. 시스템 부팅을 계속하십시오.

  2. 다음을 통해 키가 등록되었는지 확인하십시오.

sudo mokutil --list-enrolled
  1. 설치된 커널에 서명하십시오 (/ boot / vmlinuz- [KERNEL-VERSION] -surface-linux-surface에 있어야 함).
sudo sbsign --key MOK.priv --cert MOK.pem /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface --output /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface.signed
  1. 서명되지 않은 커널의 initram을 복사하면 서명 된 커널에 대한 initram도 있습니다.
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
  1. grub-config 업데이트
sudo update-grub
  1. 시스템을 재부팅하고 서명 된 커널을 선택하십시오. 부팅이 작동하면 서명되지 않은 커널을 제거 할 수 있습니다.
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub

이제 시스템이 서명 된 커널에서 실행되고 GRUB2 업그레이드가 다시 작동합니다. 사용자 정의 커널을 업그레이드하려면 7 단계부터 다시 위 단계를 수행하여 새 버전에 쉽게 서명 할 수 있습니다. 따라서 MOK 키를 백업하십시오 (MOK.der, MOK.pem, MOK.priv).


Ecxellent 응답, 우분투 명령만으로는
도착할 수 없었

접미사로 파일 이름을 바꾸고 파일을 덮어 쓰는 데 유용한 바로 가기입니다.

1

보안 부팅을 위해 / boot / vmlinuz 파일에 서명 하기 위해이 튜토리얼에 따른 문제를 해결 했습니다. 튜토리얼의 마지막 부분을 확인하십시오.


6
이 문제 해결에 대한 자세한 정보를 제공해 주시겠습니까? 나는 완전히 같은 오류가 있지만 언급 한 튜토리얼에 따라해야 할 일을 이해하지 못합니다.
Slon

지금은 기억이 안납니다. 그래도 관련이 있다면 오늘 늦게 도와 드리겠습니다
Nadav Shabtai

나도 관련이 있습니다. 나는 같은 문제가있다
Vitalii Diravka

방금 이것을 찾았습니다, 나도 그것을 필요로합니다
Mitch Talmadge

1
이것은 "링크 전용 답변"인 것 같습니다. 동일한 문제가있는 다른 사용자를 돕기 위해 질문을 편집하고 몇 가지 세부 정보를 제공하십시오. 감사!
mchid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.