Đăng nhập bị hỏng sau khi nâng cấp 15.10 -> 16.04 LTS, liên quan đến trình điều khiển NVIDIA


10

Tôi vừa cập nhật hệ thống của mình từ 15.10 đến 16.04 thông qua sudo do-release-upgrade. Trong quá trình này, nó hiển thị một màn hình với thông báo sau:

Hệ thống của bạn đã bật UEFI Secure Boot. UEFI Secure Boot không tương thích với việc sử dụng trình điều khiển của bên thứ ba.

(...) Ubuntu vẫn có thể khởi động trên hệ thống của bạn nhưng các trình điều khiển bên thứ ba này sẽ không khả dụng cho phần cứng của bạn.

Vô hiệu hóa UEFI Secure Boot? (có | không)

Vì trình điều khiển bên thứ ba duy nhất mà tôi đang sử dụng là trình điều khiển đồ họa NVIDIA và vì chúng đã hoạt động tốt với Ubuntu 15.10 và bật Khởi động an toàn, tôi đã chọn tùy chọn "không" ở đây. Tôi không thấy lý do tại sao tôi nên vô hiệu hóa điều này mà không có lý do chính đáng và tôi cho rằng tôi chỉ có thể cài đặt lại trình điều khiển của bên thứ ba thông qua GUI cài đặt hệ thống sau khi cập nhật.

Than ôi, không. Khi khởi động lại, màn hình đăng nhập của tôi xuất hiện ở độ phân giải rất thấp. Khi cố gắng đăng nhập, nó lập tức đưa tôi trở lại màn hình đăng nhập.

Tôi đã thử các cách sau để khắc phục tình trạng này:

sudo apt-get purge nvidia*
sudo reboot

Điều này dẫn đến màn hình màu tím và không có phản ứng với Ctrl-Alt-F1. Đăng nhập qua SSH, sau đó tôi đã làm:

sudo apt-get install nvidia-current
sudo reboot

một lần nữa mang lại cho tôi kịch bản cũ, với màn hình đăng nhập có độ phân giải rất thấp và không có cách nào để đăng nhập.

Đây là một kinh nghiệm nâng cấp khá xấu. Có ai khác có cái này không, và tôi có thể làm gì để khắc phục điều này? (trong khi vẫn bật UEFI Secure Boot) Cảm ơn.


5
Có một cái nhìn ở đây
Videonauth

Wow, điều này thật tệ. Cho đến nay tôi đã phải: cài đặt nvidia-364 qua PPA tắt Secure Boot. Bây giờ mọi thứ dường như hoạt động, nhưng trình điều khiển sẽ không tự động cập nhật (nếu tôi không nhầm), tôi cũng không thể bật lại Khởi động an toàn ...
kmhofmann

Có đáng tiếc không có sự lựa chọn nào khác vào lúc này. Bạn không bận tâm rằng tôi đánh dấu câu hỏi này sau đó là trùng lặp.
Videonauth

Không, tôi không phiền.
kmhofmann

Nó không phải là một bản sao - ít nhất, không hoàn toàn. Câu hỏi này thêm thắt nút khởi động an toàn mới, không phải là một phần của câu hỏi "trùng lặp" (mặc dù nó được đề cập trong một vài bình luận và câu trả lời), và điều đó đáng chú ý hơn nữa.
Rod Smith

Câu trả lời:


8

Thông qua Ubuntu 15.10, việc xử lý Secure Boot của Ubuntu dừng lại ở GRUB - tức là phiên bản Shim của Ubuntu sẽ khởi chạy phiên bản GRUB của Ubuntu, sẽ khởi chạy bất kỳ hạt nhân Linux nào , cho dù nó có được ký hay không. Đây là một thanh hỗ trợ rất thấp cho Secure Boot. Để so sánh, GRUB của Fedora sẽ chỉ khởi chạy các nhân Linux đã ký và các nhân của Fedora, khi họ phát hiện Secure Boot đang hoạt động, sẽ chỉ tải các nhị phân hạt nhân đã ký. Mục đích của hỗ trợ Secure Boot mạnh mẽ hơn của Fedora là bảo vệ hệ thống chống lại các mô-đun hạt nhân "bất hảo", theo lý thuyết, có thể chiếm lĩnh máy tính ở mức rất thấp. Ubuntu 15.10 và trước đó thiếu sự bảo vệ như vậy.

Bắt đầu từ 16.04, Ubuntu tuân theo mô-đun Khởi động an toàn chặt chẽ hơn, giống như những gì Fedora đã làm trong một thời gian dài. Điều này có lợi ích bảo mật, nhưng như bạn đã thấy, nó cũng có vấn đề. Nếu trình điều khiển của bên thứ ba không được ký bằng khóa mật mã mà phiên bản Ubuntu của nhân Linux nhận ra là hợp lệ, nó sẽ không được tải. Điều này chủ yếu ảnh hưởng đến trình điều khiển video Nvidia và AMD / ATI nguồn đóng, nhưng cũng có những trình điều khiển khác có thể bị ảnh hưởng.

Có (hoặc có thể) một số cách giải quyết cho vấn đề này:

  • Vô hiệu hóa Secure Boot - Đây là giải pháp đơn giản nhất. Bạn có thể làm điều đó bằng cách mucking với cài đặt phần sụn hoặc (tôi nghĩ) bằng cách điều chỉnh cài đặt Shim. (Tôi không chắc chắn cách thực hiện bằng cách điều chỉnh cài đặt của Shim, nhưng tôi khá chắc chắn điều đó có thể.)
  • Không sử dụng các mô-đun hạt nhân của bên thứ ba - Nếu bạn hạn chế trình điều khiển nguồn mở có trong nhân Linux tiêu chuẩn của Ubuntu, bạn sẽ ổn, vì Canonical ký tất cả các trình điều khiển như vậy (AFAIK). Lưu ý rằng cần có sự hỗ trợ của Nvidia khá tốt khi sử dụng các trình điều khiển như vậy; hệ thống của bạn có thể rơi trở lại trình điều khiển tối ưu phụ vì nó nghĩ rằng trình điều khiển nguồn đóng có sẵn. Tôi không biết cách chuyển đổi từ cái này sang cái khác, nhưng câu hỏi này là về cách làm như vậy với trình điều khiển AMD / ATI, vì vậy nó có thể là điểm khởi đầu hữu ích.
  • Ký các mô-đun có liên quan - Về lý thuyết, tự mình ký các mô-đun thương mại sẽ khiến chúng hoạt động. Thật không may, tôi không có một con trỏ để được hướng dẫn về cách thực hiện điều này và trên thực tế tôi thậm chí không hoàn toàn chắc chắn rằng có thể làm điều này với hạt nhân Ubuntu; một hạt nhân như vậy có thể chỉ tôn trọng các mô-đun được ký bằng khóa Canonical, tất nhiên bạn không sở hữu.
  • Biên dịch kernel của riêng bạn - Nếu bạn biên dịch kernel của riêng mình, bạn có thể đặt các tùy chọn của nó khi bạn thấy phù hợp, bao gồm cả việc nới lỏng các hạn chế trong việc tải các mô-đun không dấu. Sau đó, bạn cần phải ký kernel bằng khóa EFI của riêng bạn và thêm phiên bản công khai của khóa đó vào danh sách MOK của bạn. Đây là một câu hỏi và câu trả lời về việc biên dịch kernel của riêng bạn.
  • Chuyển sang GRUB cũ hơn - Vì GRUB cũ hơn sẽ khởi chạy các kernel không dấu, bạn có thể cài đặt GRUB như vậy (từ Ubuntu 15.10 trở về trước) và để nó khởi chạy kernel không dấu. Lưu ý rằng việc duy trì GRUB cũ hơn có thể sẽ là một nỗi đau.
  • Chuyển sang trình tải khởi động không tôn trọng Khởi động an toàn - Nếu bạn đã ký một trình tải khởi động như SYSLINUX hoặc ELILO bằng khóa riêng của bạn và thêm phiên bản công khai của khóa đó vào danh sách MOK của bạn, trình tải khởi động đó sẽ bỏ qua Bảo mật Cài đặt khởi động, giống như phiên bản cũ hơn của GRUB. Sau đó, bạn có thể khởi chạy một kernel không dấu.

Lưu ý rằng hai tùy chọn duy nhất mà tôi chắc chắn 100% sẽ hoạt động là tắt Secure Boot hoặc để tránh các mô-đun hạt nhân của bên thứ ba. Tôi tránh các mô-đun hạt nhân của bên thứ ba như bệnh dịch hạch, vì vậy tôi không có kinh nghiệm cá nhân khi sử dụng chúng trong môi trường Khởi động an toàn. Ngoài việc vô hiệu hóa Secure Boot, việc xây dựng kernel của riêng bạn có thể hoạt động mạnh nhất tiếp theo, tiếp theo là sử dụng GRUB cũ hơn hoặc sử dụng bộ tải khởi động không tôn trọng Secure Boot. Xây dựng kernel của riêng bạn đã từng rất phổ biến, nhưng ít người làm điều đó nữa, và với các kernel hiện đại, việc đầu tư thời gian để học cách cấu hình kernel, chưa kể thực sự làm như vậy, có thể là đáng kể. Sử dụng GRUB cũ hơn hoặc bộ tải khởi động khác có thể dễ dàng hơn, nhưng bạn sẽ cần biết đủ để có thể thiết lập điều đó.


2
* Sử dụng Ubuntu 14.04 cho đến khi sự cố này được khắc phục Có rất nhiều lý do khiến Linux trên máy tính để bàn vẫn không xuất hiện. Điều này thực sự chỉ khiến mọi người chấp nhận Linux đau đớn hơn.
Đánh giá thấp

Ký các mô-đun liên quan: ký thủ công bằng cách /lib/modules/x.y.z/updates/dkms/nvidia*.kosử dụngkmodsign (cũng sau mỗi lần cập nhật trình điều khiển) hoặc tự động vớiapt install shim-signed .
Joel Purra
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.