Pertanyaan Mengapa tidak aman untuk menghapus kernel lama?


Saya kehabisan ruang pada drive boot saya, jadi saya memutuskan untuk menghapus kernel lama. Saya menemukan halaman ini yang menjelaskan dengan tepat apa yang harus saya lakukan: Dokumentasi Lubuntu: Hapus Kernel Lama.

Saya telah menghapus kernel tertua secara manual dan sekarang tidak masalah, tetapi saya tidak mengerti satu hal: di akhir artikel ada beberapa kode yang dapat menghapus semua versi kernel lama, tetapi itu ditandai hanya untuk pengguna tingkat lanjut.

Saya benar-benar tidak memahami bahaya apa yang ada di sini. Kedengarannya konyol, tetapi mereka sepertinya mengatakan bahwa mungkin ada lebih dari satu kernel yang digunakan oleh mesin tertentu pada saat yang bersamaan.

Apakah mungkin aplikasi yang berbeda pada mesin Ubuntu saya dapat menggunakan kernel yang berbeda secara bersamaan? Mengapa menghapus semua kernel lama secara otomatis dianggap berbahaya?


36
2018-04-10 11:52


asal


Sebenarnya, artikel tersebut tidak memiliki kata "bahaya" dan "tidak aman" di dalamnya. Bagaimana Anda sampai pada kesimpulan yang terlalu dilebih-lebihkan? - mikewhatever
Beberapa kali saya mengupgrade ke kernel terbaru dan menghapus kernel lama saya sebelum reboot, hanya untuk menemukan bahwa (pada sistem khusus saya) kernel tidak berfungsi dan sistem tidak akan boot. Sekarang saya melakukan reboot terlebih dahulu dan kemudian hapus kernel lama jika semuanya baik-baik. - Matthew Read


Jawaban:


Menghapus kernel lama tidak secara inheren tidak aman, tetapi jika Anda menghapusnya semua Kernel Anda dan reboot, Anda akan ditinggalkan di layar Grub yang marah. Memperbaiki yang dibutuhkan pengetahuan yang signifikan (seperti itu tetapi dengan apt-get install linux-generic pada akhirnya).

Pertama kali Anda melakukan hal ini cukup menegangkan tetapi orang yang ingin membersihkan menu Grub mereka atau memulihkan beberapa ruang disk tidak mencari sensasi.

Itu bahaya berasal dari pengguna copy-paste blok kode yang —tidak diketahui dan tanpa mengakui risikonya — tidak berlaku. Ada banyak contoh mendeteksi kernel lama dan hanya sedikit yang sempurna. Bahkan usaha terbaru saya masih memiliki perangkapnya. Dan kita berbicara tentang masalah yang bisa diperbaiki; banyak posting di Ask Ubuntu dapat menyebabkan kehilangan data permanen jika digunakan secara tidak benar.

Kami mencoba untuk menjaga terhadap kerusakan oleh menandatangani risiko untuk membuat pengguna sadar akan potensi masalah. Dalam skenario kasus terbaik, pengguna akan dipersiapkan dan diperlengkapi untuk menangani masalah dan dalam kasus terburuk, setidaknya mereka tidak dapat mengeluh bahwa mereka tidak diperingatkan.


51
2018-04-10 12:09



Jangan hapus semua kernel Anda (jelas) tetapi juga jangan menghapus kernel yang sedang berjalan jika Anda baru saja menginstal kernel yang diperbarui dan belum reboot. Mengapa? Jika ada yang rusak di kernel yang diperbarui, Anda selalu dapat memilih kernel sebelumnya di Grub dan kembali bekerja. Jika tidak, Anda akan terjebak dengan sistem yang tidak dapat diboot dan harus memainkan "LiveCD game" (bukan permainan yang menyenangkan, BTW). - Nathan Osman
Itu hampir sama menyenangkannya dd if=/dev/zero of=/dev/sda bs=512 count=1. Saya tidak ingat apa yang saya coba lakukan (sesuatu tentang beberapa manajer boot membuat hidup saya menyebalkan). Saya menghabiskan sekitar tujuh jam dengan LiveCD mencoba memperbaiki tabel partisi saya. - phyrfox
Caranya mudah, jaga (setidaknya) satu kernel yang sudah teruji dan pasti berfungsi. Seseorang - @NathanOsman - harus benar-benar memasukkannya ke dalam kata-kata yang saya kira. Pelajaran penting kedua yang dipelajari di sini, jangan lakukan hal-hal yang tidak Anda ketahui akibatnya. - Nicolai
Saya tidak akan menggunakan kata "mendebarkan," tetapi perasaan itu terasa kuat ketika saya melakukannya. - MDeBusk
Setelah menyelesaikan masalah kernel di masa lalu, saya jauh lebih senang meninggalkan tiga kernel. Saya biasanya pergi dengan kernel yang sedang berjalan, kernel terbaru dan yang benar sebelum yang sekarang. Ini memberi saya yang terbaru saat reboot, yang diketahui berfungsi dan sebelumnya jika gagal karena suatu alasan. Itu mungkin berlebihan, tetapi disetujui CYA. - flickerfly


Kernel lama adalah bagian dari paket. Jika Anda baru saja menghapus /boot/vmlinuz-3.13.0-44-generic Anda akan meninggalkan remah-remah paket.

Pertama, cari tahu kernel mana yang Anda jalankan. JANGAN hapus apa pun dengan nilai ini adalah namanya:

$ uname -r  
3.13.0-49-generic  

YMMV. Kemudian, tanyakan dpkg apa yang diketahuinya:

$ dpkg -l linux-*

Beberapa paket itu dapat dihapus, tetapi apa lagi yang ada di sana? Menggunakan satu baris diekstraksi (pada sistem MY) dari output dari dpkg -l linux-*:

 ii  linux-image-3.13.0-44-generic       3.13.0-44.73           amd64                  Linux kernel image for version 3.13.0 on 64 bit x86 SMP

Sekarang kita akan melihat paket-paket lain -3.13.0-44 dalam nama mereka:

$ dpkg -l *-3.13.0-44*

Setelah Anda melakukan pemeriksaan terakhir untuk memastikan bahwa kernel saat ini (uname -r) BUKAN pada daftar paket, Anda dapat mulai menghapusnya melalui sistem manajemen paket pilihan Anda.


4
2018-04-10 17:04





Terakhir kali saya menghapus kernel lama saya, saya meminjam cuplikan kode lama. Nah, potongan kode ini mengharuskan saya untuk reboot setelah menginstal kernel baru, jadi saya ditinggalkan tanpa kernel. Untungnya, saya telah menangkap ini sebelum me-reboot, tetapi seperti yang orang lain katakan, saya mungkin telah ditinggalkan dengan "layar grub yang marah".

Singkat cerita, itu hanya sesuatu yang dapat dengan mudah kacau, menghasilkan sistem bata yang bisa sulit untuk pulih.


0
2018-04-10 15:42





Itu tidak aman. Menggunakan Linux, Anda dapat melakukan apa yang Anda inginkan jika Anda tahu perintah yang tepat.

Dalam /boot direktori, Anda bisa melakukan yang sederhana ls -la untuk memiliki daftar panjang serta untuk menemukan file atau direktori tersembunyi (yang tidak seharusnya ada jika ada !!).

Dari informasi ini, Anda dapat menilai tanggal dan file versi lama. Jangan hapus semuanya, tetapi file tertua yang sesuai dengan versi yang sama.

Pada titik tertentu, saya berpikir bahwa mungkin saja, jika Anda telah mengompilasi kernel dari sumber, maka Anda perlu mengubah yang baru. Itu .config file, yang saya rasa tidak sesuai dengan penjelasan Anda, akan tetap ada di sana.

Jadi, jika itu terjadi bahwa setelah menghapus file lama yang sesuai dengan versi tunggal dan setelah me-reboot komputer Anda, mungkin Anda mengalami kepanikan kernel.

Solusi sederhananya adalah mem-boot mesin dengan live USB atau CD / DVD Linux. chroot ke dalamnya, dan membangun kembali kernel dengan alat seperti dracut.


0
2018-04-10 15:18