Cara menurunkan kernel setelah pembaruan buruk (16.04)

20

Pembaruan terbaru untuk kernel Ubuntu 16.04 (4.4.0-89 dan -91) gagal pada laptop saya. Untungnya, saya punya versi sebelumnya yang berfungsi masih diinstal (4.4.0-57). Untuk saat ini saya sudah mengonfigurasi Grub untuk menampilkan menu, dan saya secara manual memilih -57 saat boot, tetapi ini tampaknya rapuh, kemungkinan akan rusak di masa depan sudo apt upgrade.

Saya rasa saya ingin:

  • Untuk menghapus -89 dan -91, karena mereka tidak ada gunanya bagiku.
  • Untuk menjadikan -57 default untuk Grub, dengan cara yang akan bertahan melalui peningkatan.
  • Untuk memastikan -57 tetap terpasang, bahkan jika saya menginstal upgrade kernel nanti
  • Agar dapat dengan mudah mencoba pembaruan kernel, tetapi kembali ke -57 jika gagal. Perhatian utama saya adalah -57 dihapus secara otomatis.
  • Jika saya menemukan pembaruan yang berfungsi kemudian, jalur mudah untuk kembali ke membatalkan semua ini dan kembali ke mengikuti pembaruan kernel.

Mencoba untuk menghapus -91 dengan sudo apt remove linux-image-4.4.0-91-genericmengharuskan saya untuk menghapus linux-generic dan linux-headers-generic. Itu kelihatannya Buruk, jadi saya belum mencobanya.

Saya dapat menemukan berbagai pertanyaan tentang masalah umum, tetapi tidak ada yang menjawab semua tujuan saya, dan sebagian besar sudah cukup tua sehingga saya pikir mereka tidak berlaku lagi.

Apa cara terbaik untuk melakukan ini?

Tambahan : Ini ditandai sebagai duplikat dari Bagaimana mencegah pembaruan paket tertentu? . Jawaban itu mungkin menjawab sebagian dari pertanyaan saya, tetapi tidak membahas gambaran yang lebih besar.

Secara umum, masalahnya adalah bahwa kernel ditangani dengan cara yang tidak biasa. Ini diinstal melalui linux-generic, yang tidak lain adalah ketergantungan pada linux-image-generic dan linux-image-header. Yang pada gilirannya hanya ketergantungan pada linux-linux-image-VERSION-generic dan header-VERSION-generic, paket-paket yang perlu diperhatikan untuk memanggang nomor versi ke dalam nama paket (mungkin untuk membuatnya mudah untuk menginstal banyak secara paralel).

Secara khusus tidak dibahas dalam jawaban itu adalah:

  • Tidak membahas cara menghapus -89 dan -91.
  • Tidak membahas bagaimana menjadikan -57 sebagai default untuk Grub, walaupun saya menginstal pembaruan selanjutnya.
  • Tidak membahas bagaimana memastikan bahwa -57 tetap terpasang, meskipun saya menginstal pembaruan selanjutnya Bahkan jika jawabannya adalah menyimpan satu atau lebih paket, mengingat beberapa paket yang terlibat, paket mana yang akan saya pegang? Jika ini masalah memegang linux-generic, bagaimana cara menurunkan versi pertama?
Alan De Smet
sumber
Sangat tidak mungkin kernel "gagal" di laptop Anda. Mungkin Anda menginstal beberapa driver dengan cara yang salah dan "gagal" setelah upgrade kernel. Apakah Anda menginstal driver grafis?
Pilot6
Jika Anda menghapus kernel dan linux-generic terbaru dengan header, Anda akan mencapai tujuan Anda. Tapi seperti yang saya katakan masalahnya berbeda.
Pilot6
1
"Gagal" tidak ada wifi dan X tidak senang dengan gambar saya. Keduanya merupakan driver stok terintegrasi dan bekas Intel. Masalah telah bertahan melalui beberapa reboot, termasuk shutdown / power penuh. Jadi saya tujuan saya adalah sementara sampai saya bisa menyelidiki dengan serius. Secara alami, saya mulai mengumpulkan beberapa informasi untuk penyelidikan serius dan -91 mulai bekerja seperti yang diharapkan. desah aku akan menyilangkan jari saya untuk saat ini.
Alan De Smet
1
Ini bukan duplikat. Ini bukan hanya tentang membekukan beberapa paket. Mungkin itu adalah duplikat tetapi bukan dari pertanyaan yang diajukan.
Pilot6

Jawaban:

19

Hapus kernel terbaru dengan

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

Itu akan menghapus paket meta linux-generic, linux-image-genericdan linux-headers-generic. Kernel tidak akan pernah ditingkatkan.

Untuk mengembalikannya, Anda dapat menjalankan

sudo apt install linux-generic

Itu akan menginstal kernel terbaru dan kernel akan mendapatkan upgrade.

linux-genericadalah paket meta. Ini kosong, tetapi tergantung pada dua paket meta lainnya: linux-image-genericdan linux-headers-generic.

Dua poin terakhir ke kernel image dan header terbaru.

Jika Anda menghapus paket meta, tidak ada yang akan dihapus dari Linux, tetapi header dan header kernel tidak akan mendapatkan pembaruan. Anda selalu dapat menginstalnya nanti. Mereka akan menarik paket kernel "nyata" terbaru.

Jadi solusinya adalah menghapus secara manual paket kernel yang tidak Anda inginkan dan juga paket meta.

Pilot6
sumber
3

Meskipun solusi Pilot6 mungkin merupakan solusi terbaik, Anda dapat melakukan tindakan yang kurang drastis.

Saya pribadi akan menghapus kernel yang tidak Anda inginkan dari pusat perangkat lunak dan kemudian menahan paket-paket itu Bagaimana mencegah memperbarui paket tertentu?

Ini adalah perubahan sepele dan Anda dapat naik atau mengembalikannya dengan mudah.

Harimau kumbang
sumber
Paket mana yang Anda sarankan untuk disimpan?
Pilot6
linux-generic mungkin cukup, saya tidak yakin. Mungkin perlu menambahkan yang lain dan mungkin perlu menentukan kernel yang tepat, tapi saya ragu.
Panther
3
sudo apt-mark hold linux-image-generic linux-headers-genericakan melakukan
Panther
1
@ Pilot6 - Tidak, Anda dapat menyimpan kernel lama dan menandai grub kernel mana yang akan di-boot. askubuntu.com/questions/216398/…
Panther
1
Ya kamu bisa. Tetapi itu terlalu rumit dan tidak masuk akal secara praktis.
Pilot6