Cách hạ cấp kernel sau khi cập nhật xấu (16.04)


20

Những nâng cấp gần đây cho kernel Ubuntu 16.04 (4.4.0-89 và -91) đã thất bại nặng nề trên máy tính xách tay của tôi. Hạnh phúc, tôi đã có phiên bản làm việc trước đó vẫn được cài đặt (4.4.0-57). Hiện tại, tôi đã cấu hình Grub để hiển thị cho tôi một menu và tôi đang chọn thủ công -57 khi khởi động, nhưng điều này có vẻ mong manh, có khả năng sẽ phá vỡ trong tương lai sudo apt upgrade.

Tôi nghĩ rằng tôi muốn:

  • Để loại bỏ -89 và -91, vì chúng không làm tôi tốt chút nào.
  • Để biến -57 thành mặc định cho Grub, theo cách sẽ tồn tại thông qua các bản nâng cấp.
  • Để đảm bảo -57 vẫn được cài đặt, ngay cả khi tôi cài đặt nâng cấp kernel sau
  • Để có thể dễ dàng thử các bản cập nhật kernel sau, nhưng hoàn nguyên về -57 nếu thất bại. Mối quan tâm chính của tôi là -57 được tự động loại bỏ.
  • Nếu tôi tìm thấy một bản cập nhật chức năng sau này, một đường dẫn dễ dàng để quay lại hoàn tác tất cả những điều này và quay lại các bản cập nhật kernel.

Đang cố gắng xóa -91 bằng sudo apt remove linux-image-4.4.0-91-generic yêu cầu tôi loại bỏ linux-generic và linux-headers-generic. Điều đó có vẻ xấu, vì vậy tôi đã không thử nó.

Tôi có thể tìm thấy nhiều câu hỏi khác nhau về vấn đề chung, nhưng dường như không có câu hỏi nào giải quyết được tất cả các mục tiêu của tôi và hầu hết đều đủ tuổi để tôi không nghĩ rằng chúng áp dụng nữa.

Cách tốt nhất để làm điều này là gì?

Phụ lục : Điều này được gắn cờ là bản sao của Cách ngăn cập nhật một gói cụ thể? . Câu trả lời đó có thể giải quyết một phần câu hỏi của tôi, nhưng không giải quyết được bức tranh lớn hơn.

Nhìn rộng ra, vấn đề là kernel được xử lý theo cách khác thường. Nó được cài đặt thông qua linux-generic, không có gì ngoài sự phụ thuộc vào các tiêu đề linux-image-generic và linux-image-head. Đến lượt chúng chỉ phụ thuộc vào linux-linux-image-VERSION-generic và headers-VERSION-generic, các gói đáng chú ý để nướng số phiên bản vào tên gói (có lẽ để dễ dàng cài đặt song song nhiều).

Cụ thể không được giải quyết trong câu trả lời đó là:

  • Không giải quyết làm thế nào để loại bỏ -89 và -91.
  • Không giải quyết cách tạo -57 mặc định cho Grub, ngay cả khi tôi cài đặt các bản cập nhật sau.
  • Không giải quyết làm thế nào để đảm bảo rằng -57 vẫn được cài đặt, ngay cả khi tôi cài đặt các bản cập nhật sau. Ngay cả khi câu trả lời là giữ một hoặc nhiều gói, với một số gói có liên quan, tôi sẽ giữ gói nào? Nếu đó là vấn đề giữ linux-generic, làm thế nào để tôi hạ cấp nó trước?

Rất có khả năng các hạt nhân "thất bại" trên máy tính xách tay của bạn. Có thể bạn đã cài đặt một số trình điều khiển sai cách và nó "không thành công" sau khi nâng cấp kernel. Bạn đã cài đặt bất kỳ trình điều khiển đồ họa?
Pilot6

Nếu bạn loại bỏ kernel mới nhất và linux-generic bằng các tiêu đề, bạn sẽ đạt được mục tiêu của mình. Nhưng như tôi đã nói vấn đề là khác nhau.
Pilot6

1
"thất bại" là không có wifi và X không hài lòng về đồ họa của tôi. Cả hai đều là trình điều khiển chứng khoán tích hợp và sử dụng Intel. Vấn đề đã tồn tại qua nhiều lần khởi động lại, bao gồm cả tắt / bật nguồn hoàn toàn. Vì vậy, mục tiêu của tôi là một điểm dừng cho đến khi tôi có thể nghiêm túc điều tra. Đương nhiên, tôi bắt đầu thu thập một số thông tin để điều tra nghiêm túc và -91 bắt đầu hoạt động như mong đợi. Bây giờ tôi sẽ thở dài .
Alan De Smet

1
Đây không phải là một bản sao. Nó không chỉ là về việc đóng băng một số gói. Có thể đó là một bản sao nhưng không phải là câu hỏi được đề xuất.
Pilot6

Câu trả lời:


19

Loại bỏ kernel mới nhất bằng cách

sudo apt remove linux-image-4.4.0-91-generic linux-headers-4.4.0-91-generic

Điều đó sẽ gỡ cài đặt các gói meta linux-generic, linux-image-genericlinux-headers-generic. Kernels sẽ không bao giờ được nâng cấp.

Để hoàn nguyên nó, bạn có thể chạy

sudo apt install linux-generic

Điều đó sẽ cài đặt kernel mới nhất và kernel sẽ được nâng cấp.

linux-genericlà một gói meta. Nó trống, nhưng phụ thuộc vào hai gói meta khác: linux-image-genericlinux-headers-generic.

Hai điểm cuối cùng đến hình ảnh hạt nhân và tiêu đề mới nhất.

Nếu bạn xóa các gói meta, sẽ không có gì bị xóa khỏi Linux, nhưng hình ảnh và tiêu đề kernel sẽ không nhận được bản cập nhật. Bạn luôn có thể cài đặt chúng sau này. Họ sẽ kéo các gói kernel "thực" mới nhất.

Vì vậy, giải pháp là loại bỏ thủ công các gói kernel mà bạn không muốn và cả các gói meta.


3

Mặc dù giải pháp của Pilot6 có thể là giải pháp tốt nhất, bạn có thể thực hiện các biện pháp ít quyết liệt hơn.

Cá nhân tôi sẽ xóa các hạt nhân mà bạn không muốn khỏi trung tâm phần mềm và sau đó tạm dừng các gói đó - xem Làm thế nào để ngăn cập nhật một gói cụ thể?

Đây là một thay đổi nhỏ và bạn có thể lái xe hoặc hoàn nguyên thay đổi khá dễ dàng.


Gói nào bạn đề nghị giữ?
Pilot6

linux-generic có lẽ là đủ, tôi không chắc chắn. Có thể cần thêm vào những cái khác và có thể cần chỉ định kernel chính xác, nhưng tôi nghi ngờ nó.
Panther

3
sudo apt-mark hold linux-image-generic linux-headers-genericsẽ làm
Panther

1
@ Pilot6 - Không bạn có thể giữ các hạt nhân cũ và đánh dấu grub mà kernel sẽ khởi động. Askubfox.com/questions/216398/ trộm
Panther

1
Vâng, bạn có thể. Nhưng nó quá phức tạp và không có ý nghĩa thực tế.
Pilot6
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.