Tại sao nó không an toàn để xóa hạt nhân cũ?


36

Tôi đã hết dung lượng trên ổ đĩa khởi động của mình, vì vậy tôi quyết định loại bỏ các hạt nhân cũ. Tôi tìm thấy trang này mô tả chính xác những gì tôi nên làm: Tài liệu LubFi: Loại bỏ các hạt nhân cũ .

Tôi đã xóa kernel cũ nhất bằng tay và bây giờ thì không sao, nhưng tôi không hiểu một điều: ở cuối bài viết có một số mã có thể xóa tất cả các phiên bản kernel cũ, nhưng nó được đánh dấu là chỉ dành cho người dùng nâng cao.

Tôi không thực sự hiểu những gì nguy hiểm ở đây. Nghe có vẻ ngớ ngẩn, nhưng dường như họ nói rằng có thể có nhiều hơn một nhân được sử dụng bởi một máy cụ thể cùng một lúc.

Có thể các ứng dụng khác nhau trên máy Ubuntu của tôi có thể sử dụng các hạt nhân khác nhau cùng một lúc không? Tại sao xóa tất cả các hạt nhân cũ tự động được coi là nguy hiểm?


8
Trên thực tế, bài viết không có từ "nguy hiểm" và "không an toàn" trong đó. Làm thế nào bạn có được một kết luận phóng đại như vậy?
mikewhthing

2
Một vài lần tôi đã nâng cấp lên kernel mới nhất và loại bỏ kernel cũ trước khi khởi động lại, chỉ để thấy rằng (trên hệ thống cụ thể của tôi) kernel không hoạt động và hệ thống sẽ không khởi động. Bây giờ tôi thực hiện khởi động lại trước và sau đó loại bỏ kernel cũ nếu tất cả đều ổn.
Matthew Đọc

Câu trả lời:


50

Loại bỏ các hạt nhân cũ vốn không an toàn, nhưng nếu bạn loại bỏ tất cả các hạt nhân của mình và khởi động lại, bạn sẽ bị bỏ lại ở màn hình Grub tức giận. Sửa chữa cần có bí quyết quan trọng (như thế nhưng apt-get install linux-genericcuối cùng).

Lần đầu tiên bạn làm điều này khá ly kỳ nhưng những người tìm cách dọn sạch menu Grub của họ hoặc khôi phục một số không gian đĩa không tìm kiếm cảm giác mạnh.

Các mối nguy hiểm đến từ những người dùng sao chép và dán một khối mã mà -unbeknownst với họ và không thừa nhận nguy cơ sức không áp dụng. Có rất nhiều ví dụ về việc phát hiện hạt nhân cũ và một số ít là hoàn hảo. Ngay cả nỗ lực mới nhất của tôi vẫn có những cạm bẫy của nó. Và chúng ta đang nói về một vấn đề có thể được khắc phục; nhiều bài đăng trên Ask Ubuntu có thể dẫn đến mất dữ liệu vĩnh viễn nếu sử dụng không đúng cách.

Chúng tôi cố gắng bảo vệ chống lại thiệt hại bằng cách đăng nhập rủi ro để khiến người dùng nhận thức được các vấn đề tiềm ẩn . Trong trường hợp tốt nhất, người dùng sẽ được chuẩn bị và trang bị để xử lý sự cố và trong trường hợp xấu nhất, ít nhất họ không thể phàn nàn rằng họ không cảnh báo.


11
Đừng xóa tất cả các kernel của bạn (rõ ràng) nhưng cũng không xóa kernel hiện đang chạy nếu bạn vừa cài đặt kernel đã cập nhật và chưa được khởi động lại. Tại sao? Nếu có gì đó bị hỏng trong kernel đã cập nhật, bạn luôn có thể chọn kernel trước đó trong Grub và quay lại làm việc. Nếu không, bạn sẽ bị mắc kẹt với một hệ thống không thể khởi động và phải chơi "trò chơi LiveCD" (không phải là một trò chơi vui nhộn, BTW).
Nathan Osman

1
Điều đó cũng vui như vậy dd if=/dev/zero of=/dev/sda bs=512 count=1. Tôi không nhớ những gì tôi đã cố gắng làm (một cái gì đó về nhiều người quản lý khởi động làm cho cuộc sống của tôi trở nên khó chịu). Tôi đã dành khoảng bảy giờ với LiveCD để cố gắng sửa chữa các bảng phân vùng của mình.
phyrfox

1
Thật dễ dàng, giữ (ít nhất) một kernel đã được kiểm tra và chắc chắn hoạt động. Ai đó - @NathanOsman - đã thực sự phải nói nó thành những từ tôi đoán. Bài học quan trọng thứ hai được học ở đây, đừng làm những điều bạn không biết hậu quả.
Nicolai

1
Tôi sẽ không sử dụng từ "ly kỳ", nhưng cảm giác là một cảm giác mãnh liệt khi tôi làm điều đó.
MDeBusk

Đã sửa lỗi hạt nhân trong quá khứ, tôi hạnh phúc hơn nhiều khi để lại ba hạt nhân. Tôi thường đi với kernel hiện đang chạy, kernel mới nhất và kernel ngay trước kernel hiện tại. Điều này mang lại cho tôi bản mới nhất khi khởi động lại, cái được biết là hoạt động và cái trước nếu thất bại vì một số lý do. Đó có thể là quá mức cần thiết, nhưng được CYA chấp thuận.
flickerfly

4

Các hạt nhân cũ là một phần của gói. Nếu bạn chỉ cần loại bỏ, /boot/vmlinuz-3.13.0-44-genericbạn sẽ để lại vụn gói tất cả.

Đầu tiên, tìm ra kernel nào bạn đang chạy. KHÔNG xóa bất cứ thứ gì có giá trị này là tên của nó:

$ uname -r  
3.13.0-49-generic  

YMMV. Sau đó, hỏi dpkgnhững gì nó biết:

$ dpkg -l linux-*

Một số trong những gói đó có thể được gỡ bỏ, nhưng những gì khác là có? Sử dụng một dòng được trích xuất (trên hệ thống MY) từ đầu ra của 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

Bây giờ chúng ta sẽ thấy những gói khác có -3.13.0-44trong tên của chúng:

$ dpkg -l *-3.13.0-44*

Khi bạn thực hiện kiểm tra lần cuối để đảm bảo rằng kernel hiện tại ( uname -r) KHÔNG có trong danh sách các gói, bạn có thể bắt đầu loại bỏ chúng thông qua hệ thống quản lý gói bạn chọn.


0

Lần cuối cùng tôi gỡ bỏ hạt nhân cũ của mình, tôi đã mượn một đoạn mã cũ. Chà, đoạn mã này đã yêu cầu tôi khởi động lại sau khi cài đặt kernel mới, vì vậy tôi bị bỏ lại mà không có kernel. May mắn thay, tôi đã bắt được điều này trước khi khởi động lại, nhưng như những người khác nói, tôi có thể đã bị bỏ lại với "màn hình grub tức giận".

Tóm lại, nó đơn giản là thứ gì đó có thể dễ dàng bị rối tung, dẫn đến một hệ thống cục gạch khó có thể phục hồi.


0

Nó không an toàn. Sử dụng Linux, bạn có thể làm chính xác những gì bạn muốn nếu bạn biết các lệnh đúng.

Trong /bootthư mục, bạn có thể thực hiện một cách đơn giản ls -lađể có một danh sách dài cũng như tìm thấy bất kỳ tệp hoặc thư mục ẩn nào (không được phép có ở đó nếu có bất kỳ !!).

Từ thông tin này, bạn có thể đánh giá ngày và các tệp của phiên bản cũ. Không xóa tất cả chúng, nhưng các tệp cũ nhất tương ứng với cùng một phiên bản.

Tại một số điểm, tôi đã nghĩ rằng có thể, nếu bạn đã biên dịch kernel từ nguồn, thì bạn sẽ cần phải điều chỉnh một cái mới. Các .configtập tin, mà tôi không nghĩ là trường hợp theo lời giải thích của bạn, sẽ ở lại đó.

Vì vậy, nếu điều đó xảy ra là sau khi xóa các tệp cũ tương ứng với một phiên bản duy nhất và sau khi khởi động lại máy của bạn, có thể bạn gặp phải sự hoảng loạn hạt nhân.

Giải pháp đơn giản là khởi động máy bằng USB hoặc CD / DVD Linux trực tiếp. chrootvào nó, và xây dựng lại kernel với các công cụ như dracut.

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.