vmlinuz-4.18.12-041812-generic có chữ ký không hợp lệ


15

Tôi đã nâng cấp kernel của mình ngày hôm nay với ukuu và kể từ đó tôi không thể khởi động được vì tôi gặp lỗi này:

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

Tôi có khởi động kép với windows 10 và Ubuntu 18.10 (Nâng cấp ngày hôm nay)

Cập nhật: Tôi đã quản lý để khởi động kernel cũ hơn mà tôi đã chọn từ "Tùy chọn nâng cao cho Ubuntu" trong grub

Nhưng tôi cần nâng cấp kernel của mình và nếu làm như vậy tôi vẫn gặp vấn đề tương tự ...


Bây giờ tôi đang gặp vấn đề tương tự sau khi cập nhật chương trình cơ sở cho Lenovo T480 của tôi và tôi không hiểu tại sao các hạt nhân cũ hơn vẫn hoạt động.
dùng205301

Câu trả lời:


5

Thay vì ký kernel trong câu hỏi, tôi chỉ tắt Secure Boot trong menu BIOS / UEFI của máy tính xách tay của tôi.

Bạn thường có thể vào menu bằng cách nhấn một phím đặc biệt trong khi khởi động , bạn có thể google cái cụ thể cho thiết bị của mình hoặc thậm chí nó có thể được hiển thị trên màn hình trong khi khởi động.


Cảm ơn! Tôi vừa cập nhật BIOS của mình và quên vô hiệu hóa điều đó!
Lucas Bustamante

5

https://github.com/jakenay/linux-surface/blob/master/SIGNING.md có hướng dẫn cụ thể hơn về việc ký kernel (được điều chỉnh từ cùng một hướng dẫn được liên kết trong câu trả lời được chấp nhận). Các hướng dẫn được sao chép đầy đủ như sau:

Ký kernel tùy chỉnh cho Secure Boot

Các hướng dẫn dành cho Ubuntu, nhưng sẽ hoạt động tương tự đối với các bản phát hành khác, nếu chúng đang sử dụng shim và grub làm bộ nạp khởi động. Nếu bản phân phối của bạn không sử dụng shim (ví dụ: Linux Foundation Preloader), thì nên có các bước tương tự để hoàn thành việc ký kết (ví dụ HashTool thay vì MokUtil cho LF Preloader) hoặc bạn có thể cài đặt shim để sử dụng thay thế. Gói ubfox cho shim được gọi shim-signed, nhưng vui lòng thông báo cho bạn cách cài đặt chính xác, để bạn không làm rối bộ tải khởi động của mình.

Vì bản cập nhật GRUB2 gần đây nhất (2.02 + dfsg1-5ubfox1) trong Ubuntu, GRUB2 không tải hạt nhân không dấu nữa, miễn là bật Secure Boot. Người dùng Ubuntu 18.04 sẽ được thông báo trong quá trình nâng cấp gói grub-efi, rằng hạt nhân này chưa được ký và bản nâng cấp sẽ hủy bỏ.

Do đó, bạn có ba tùy chọn để giải quyết vấn đề này:

  1. Bạn tự ký kernel.
  2. Bạn sử dụng một hạt nhân chung đã ký tên của bản phân phối của bạn.
  3. Bạn tắt Secure Boot.

Vì tùy chọn hai và ba không thực sự khả thi, đây là các bước để tự ký tên hạt nhân.

Hướng dẫn điều chỉnh từ Blog Ubuntu . Trước khi làm theo, hãy sao lưu thư mục / boot / EFI của bạn để bạn có thể khôi phục mọi thứ. Thực hiện theo các bước trên rủi ro của riêng bạn.

  1. Tạo cấu hình để tạo khóa ký, lưu dưới dạng 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"

Điều chỉnh tất cả các phần với chi tiết của bạn.

  1. Tạo khóa chung và khóa riêng để ký kernel:
openssl req -config ./mokconfig.cnf \
        -new -x509 -newkey rsa:2048 \
        -nodes -days 36500 -outform DER \
        -keyout "MOK.priv" \
        -out "MOK.der"
  1. Chuyển đổi khóa cũng sang định dạng PEM (mokutil cần DER, sbsign cần PEM):
openssl x509 -in MOK.der -inform DER -outform PEM -out MOK.pem
  1. Đăng ký khóa để cài đặt shim của bạn:
sudo mokutil --import MOK.der

Bạn sẽ được yêu cầu nhập mật khẩu, bạn sẽ chỉ sử dụng nó để xác nhận lựa chọn khóa của mình trong bước tiếp theo, vì vậy hãy chọn bất kỳ.

  1. Khởi động lại hệ thống của bạn. Bạn sẽ bắt gặp một màn hình màu xanh của một công cụ có tên MOKManager. Chọn "Đăng ký MOK" và sau đó "Xem khóa". Đảm bảo đó là khóa của bạn mà bạn đã tạo ở bước 2. Sau đó tiếp tục quá trình và bạn phải nhập mật khẩu mà bạn đã cung cấp ở bước 4. Tiếp tục với việc khởi động hệ thống của bạn.

  2. Xác nhận khóa của bạn được đăng ký qua:

sudo mokutil --list-enrolled
  1. Ký tên kernel đã cài đặt của bạn (nó phải ở / 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. Sao chép initram của kernel không dấu, vì vậy chúng ta cũng có initram cho kernel đã ký.
sudo cp /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{,.signed}
  1. Cập nhật cấu hình grub của bạn
sudo update-grub
  1. Khởi động lại hệ thống của bạn và chọn kernel đã ký. Nếu khởi động hoạt động, bạn có thể loại bỏ kernel không dấu:
sudo mv /boot/vmlinuz-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo mv /boot/initrd.img-[KERNEL-VERSION]-surface-linux-surface{.signed,}
sudo update-grub

Bây giờ hệ thống của bạn sẽ chạy dưới kernel đã ký và nâng cấp GRUB2 hoạt động trở lại. Nếu bạn muốn nâng cấp kernel tùy chỉnh, bạn có thể dễ dàng ký phiên bản mới bằng cách làm lại các bước trên từ bước bảy trở đi. Do đó, BACKUP các phím MOK (MOK.der, MOK.pem, MOK.priv).


Phản hồi của Ecxellent, tôi không thể đến đó chỉ với các hướng dẫn trên Ubuntu
User632716

Phím tắt tuyệt vời để đổi tên và ghi đè lên các tập tin với hậu tố.
Tom

1

Tôi đã giải quyết vấn đề của mình theo hướng dẫn này để đăng nhập / boot / vmlinuz để khởi động an toàn, Chỉ cần lưu ý phần cuối của hướng dẫn


6
Bạn có thể cung cấp xin vui lòng một số thông tin chi tiết về việc giải quyết vấn đề này? Tôi hoàn toàn có cùng một lỗi, nhưng tôi không hiểu những gì tôi phải làm theo hướng dẫn được đề cập.
Slon

Tôi không nhớ ngay bây giờ, tôi sẽ cố gắng giúp bạn vào cuối ngày hôm nay nếu nó vẫn còn liên quan
Nadav Shabtai

Nó có liên quan đến tôi quá. Tôi có cùng một vấn đề
Vitalii Diravka

Chỉ cần tìm thấy cái này, tôi cũng cần nó
Mitch Talmadge

1
Đây dường như là một "câu trả lời chỉ liên kết". Vui lòng chỉnh sửa câu hỏi và cung cấp một vài chi tiết để giúp đỡ những người dùng khác có cùng vấn đề. Cảm ơn!
mchid
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.