vmlinuz-4.18.12-041812-generic geçersiz imzası var


15

Çekirdeğimi bugün ukuu ile yükselttim ve o zamandan beri bu hataları alıyorum çünkü önyükleme yapamıyorum:

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

Windows 10 ve Ubuntu 18.10 ile çift önyüklemem var (Bugün yükseltildi)

Güncelleme: Grubta "Ubuntu için gelişmiş seçenekler" den seçtiğim eski çekirdeğe önyükleme yaptım

Ama çekirdeğimi yükseltmem gerekiyor ve bunu yaparsam hala aynı sorunu yaşıyorum ...


Lenovo T480'imin donanım yazılımını güncelledikten sonra da aynı sorunu yaşıyorum ve eski çekirdeklerin neden hala çalıştığını anlamıyorum.
user205301

Yanıtlar:


5

Söz konusu çekirdeği imzalamak yerine, dizüstü bilgisayarımın BIOS / UEFI menüsünde Güvenli Önyükleme'yi kapattım.

Menüye genellikle önyükleme sırasında özel bir tuşa basarak girebilir, cihazınız için özel olanı google veya önyükleme sırasında ekranda gösterilebilir.


Teşekkürler! BIOS'umu yeni güncelledim ve devre dışı bırakmayı unuttum!
Lucas Bustamante

Bu benim için çalışıyor!
Jonathan

5

https://github.com/jakeday/linux-surface/blob/master/SIGNING.md , çekirdek imzalama hakkında daha spesifik talimatlara sahiptir (kabul edilen cevapta verilen aynı öğreticiden uyarlanmıştır). Talimatlar tam olarak aşağıdaki gibi çoğaltılır:

Güvenli Önyükleme için özel bir çekirdek imzalama

Talimatlar ubuntu içindir, ancak bootloader olarak shim ve grub kullanıyorlarsa diğer dağıtımlar için benzer şekilde çalışmalıdır. Dağıtımınız shim kullanmıyorsa (örn. Linux Foundation Preloader), imzalamayı tamamlamak için benzer adımlar olmalıdır (örneğin, LF Preloader için MokUtil yerine HashTool) veya bunun yerine kullanmak için shim yükleyebilirsiniz. Shim için ubuntu paketi çağrılır shim-signed, ancak lütfen doğru bir şekilde nasıl kurulacağı konusunda kendinizi bilgilendirin, böylece bootloader'ınızı bozmazsınız.

Ubuntu'daki en son GRUB2 güncellemesi (2.02 + dfsg1-5ubuntu1) olduğundan, GRUB2 Güvenli Önyükleme etkin olduğu sürece artık imzasız çekirdekler yüklemiyor. Ubuntu 18.04 kullanıcıları grub-efi paketinin yükseltilmesi sırasında bu çekirdeğin imzalanmadığı ve yükseltme işleminin iptal edileceği konusunda bilgilendirilir.

Böylece bu sorunu çözmek için üç seçeneğiniz vardır:

  1. Çekirdeği kendiniz imzalarsınız.
  2. Dağıtımınızın imzalı, genel bir çekirdeğini kullanıyorsunuz.
  3. Güvenli Önyükleme'yi devre dışı bıraktınız.

İkinci ve üçüncü seçenek gerçekten uygun olmadığından, bunlar çekirdeği kendiniz imzalama adımlarıdır.

Ubuntu Blogundan uyarlanan talimatlar . Takip etmeden önce, lütfen / boot / EFI dizininizi yedekleyin, böylece her şeyi geri yükleyebilirsiniz. Kendi sorumluluğunuzdadır bu adımları izleyin.

  1. İmzalama anahtarını oluşturmak için yapılandırmayı oluşturun, mokconfig.cnf olarak kaydedin:
# 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"

Tüm parçaları ayrıntılarınıza göre ayarlayın.

  1. Çekirdeği imzalamak için genel ve özel anahtarı oluşturun:
openssl req -config ./mokconfig.cnf \
        -new -x509 -newkey rsa:2048 \
        -nodes -days 36500 -outform DER \
        -keyout "MOK.priv" \
        -out "MOK.der"
  1. Anahtarı da PEM formatına dönüştürün (mokutil DER, sbsign PEM gerektirir):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
  1. Anahtarı şim kurulumunuza kaydedin:
sudo mokutil --import MOK.der

Sizden bir şifre istenecektir, sadece bir sonraki adımda anahtar seçiminizi onaylamak için kullanacaksınız, bu yüzden herhangi birini seçin.

  1. Sisteminizi yeniden başlatın. MOKManager adlı bir aracın mavi ekranıyla karşılaşacaksınız. "MOK Kaydet" i ve ardından "Görünüm tuşu" nu seçin. 2. adımda oluşturduğunuz anahtarın olduğundan emin olun. Daha sonra işleme devam edin ve 4. adımda verdiğiniz şifreyi girmeniz gerekir. Sisteminizi önyüklemeye devam edin.

  2. Anahtarınızın şu yolla kaydedildiğini doğrulayın:

sudo mokutil --list-enrolled
  1. Kurulu çekirdeğinizi imzalayın (/ boot / vmlinuz- [KERNEL-VERSION] -yüzey-linux-yüzeyde olmalıdır):
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. İmzasız çekirdeğin initramını kopyalayın, böylece imzalı çekirdek için bir initramımız var.
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
  1. Grub-config'inizi güncelleyin
sudo update-grub
  1. Sisteminizi yeniden başlatın ve imzalı çekirdeği seçin. Önyükleme çalışıyorsa, imzasız çekirdeği kaldırabilirsiniz:
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub

Şimdi sisteminiz imzalı bir çekirdek altında çalışmalı ve GRUB2 yükseltmesi tekrar çalışıyor. Özel çekirdeği yükseltmek istiyorsanız, yedinci adımdan itibaren yukarıdaki adımları izleyerek yeni sürümü kolayca imzalayabilirsiniz. Böylece MOK tuşlarını YEDEKLEME (MOK.der, MOK.pem, MOK.priv).


Ecxellent yanıt, ben sadece ubuntu talimatları ile oraya olamazdı
User632716

Postfixs ile dosyaları yeniden adlandırmak ve üzerine yazmak için harika bir kısayol.
Tom

1

Güvenli önyükleme için / boot / vmlinuz dosyasını imzalamak için bu öğreticiyi izleyerek sorunumu çözdüm, sadece öğreticinin son kısmını fark ettim


6
Lütfen bu sorunun çözümü hakkında ayrıntılı bilgi verebilir misiniz? Kesinlikle aynı hata var, ama belirtilen öğretici göre ne yapmam gerektiğini anlamıyorum.
Slon

Şu anda hatırlamıyorum, eğer hala ilgiliyse bu günün ilerleyen saatlerinde size yardım etmeye çalışacağım
Nadav Shabtai

Benim için de geçerli. Aynı sorunum var
Vitalii Diravka

Bunu buldum, ben de ihtiyacım var
Mitch Talmadge

2
Bu "yalnızca bağlantı yanıtı" gibi görünüyor. Lütfen soruyu düzenleyin ve aynı sorunu yaşayan diğer kullanıcılara yardımcı olmak için birkaç ayrıntı sağlayın. Teşekkürler!
mchid
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.