Làm thế nào tôi bỏ hạt nhân cũ phiên bản để làm sạch các đơn khởi động?

Mỗi lần tôi cài đặt một mới Linux, nó bị bỏ lại trong grub_config, làm cho các đơn khởi động mỗi lần mỗi lâu hơn.

Tôi biết tôi có thể tự tìm kiếm thông qua các cài đặt gói và bỏ họ.

Không Ubuntu cung cấp bất kỳ cách dễ dàng hơn để làm sạch chúng, hoặc giữ chúng đang ở trong cốp danh sách?

16.04 và phiên bản mới của bạn

sudo apt autoremove

Lệnh này loại bỏ gói đã được tự động cài đặt để giải quyết một phụ thuộc, nhưng bây giờ không còn phụ thuộc vào. Này, bao gồm phiên bản cũ của linux-headers-*linux-image-*. (Nó cũng thông minh về quá trình này, để lại một phụ tùng phiên bản của hạt nhân xung quanh như một dự phòng!)

11.10 và phiên bản mới của bạn

GRUB2 và nó hiển thị tất cả các hạt nhân

Những phiên bản mới Grub2 cài đặt trong Ubuntu tự động hiển thị các hạt nhân mới nhất và giấu tuổi hạt nhân mà bạn có thể đã cài đặt.

GNU GRUB

Nếu bạn không nhìn thấy bạn grub - sau đó hãy nhớ để nhấn Shift trong khi khởi động.

Như ông có thể thấy, chỉ là hạt nhân mới nhất là hiển thị.

Nếu bạn lựa chọn hiển thị (nhấn Enter) sau đó tất cả các hạt nhân trở nên nhìn thấy và sẵn sàng để khởi động từ.

GNU GRUB Previous versions

Làm thế nào để xóa cũ hạt nhân

Khởi động đầu tiên với mới nhất có hạt nhân.

Có một số cách để xóa già hạt nhân. Cá nhân, tôi sẽ không chạm vào Máy Tính, Người Gác Cổng kể từ khi điều này được công nhận phá vỡ máy tính với đề nghị của nó.

khớp

Một sự thay thế được Khớp (sudo apt install synaptic)

tìm kiếm unix ảnh-phải nhấn vào một hạt nhân và chọn bỏ hoàn toàn và cuối cùng nhấn Áp dụng nút hủy bỏ hạt nhân.

Lặp lại tìm kiếm nhưng lần này cho unix tiêu đề - bạn có thể xóa các tiêu đề có liên quan cho hạt nhân ảnh được lựa chọn đó.

Khớp mặc dù sẽ không cố gắng để xác thực, những gì bạn đang cố gắng để loại bỏ... bạn có thể vô tình xóa mới nhất của bạn hạt nhân, hoặc thậm chí xóa tất cả các bạn hạt nhân thông qua công cụ này rời khỏi bạn một nén Ubuntu!.

Nhớ kiểm tra mà hạt nhân bạn đang sử dụng loại:

uname -r

Kết quả sẽ là tương tự:

Terminal <uname -r>

Nhớ là kết quả và số lượng - hãy chắc chắn rằng bạn không xóa hình ảnh tương ứng hoặc tiêu đề.

Đề nghị

Đề nghị của tôi là giữ ít nhất là hai hoặc tốt hơn là ba hạt nhân đó mới nhất. Lý do cho sự giới thiệu là ông sẽ có ít nhất một/hai hạt nhân khác để khởi động, nếu cho những gì-bao giờ lý hạt nhân mới nhất, bạn có thể khởi động với hoặc giới thiệu một thụt lùi khả năng như bị hỏng không.

Đầu tiên, khởi động lại Hệ thống của bạn để đảm bảo rằng nó được sử dụng hạt nhân mới nhất. Sau đó, mở thiết bị đầu cuối và kiểm tra hiện tại của hạt nhân:

uname -r 

ĐỪNG BỎ HẠT NHÂN NÀY!

Tiếp theo, loại lệnh dưới đây để xem danh sách tất cả cài đặt hạt nhân trên hệ thống của bạn.

dpkg --list 'linux-image-*'

Tìm tất cả các hạt nhân mà thấp hơn hiện tại của hạt nhân. Khi bạn biết đó hạt nhân để bỏ, tiếp tục dưới đây để loại bỏ nó. Chạy lệnh dưới đây để loại bỏ hạt nhân bạn lựa chọn.

sudo apt-get purge linux-image-x.x.x-x-generic 

Cuối cùng, chạy lệnh dưới đây để cập nhật grub2

sudo update-grub2 

Khởi động lại hệ thống của bạn.

Một của tôi-lót để loại bỏ già hạt nhân (này cũng giải phóng lên đĩa)

dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p' | xargs sudo apt-get -y purge

Giải thích (nhớ, | sử dụng đầu ra trước lệnh như các đầu vào kế tiếp)

  • dpkg --list danh sách tất cả cài đặt gói
  • grep linux-image trông cho cài đặt linux hình ảnh
  • awk '{ print $2 }' chỉ cần kết quả 2 cột (đó là tên gói)
  • sort -V đặt các mặt hàng của số phiên bản
  • sed -n '/'`uname -r`'/q;p' in lines trước khi hạt nhân hiện tại
  • xargs sudo apt-get -y purge thanh trừng tìm thấy hạt nhân

Thư giãn sed gọi:

  • -n nói sed để được yên tĩnh
  • `uname -r` kết quả các giờ cài đặt hạt nhân thả - chúng ta bao gồm nó vào backticks để đầu ra là bao gồm như là một phần của lệnh (bạn cũng có thể thấy điều này như là $(uname -r)
  • /something/q nói dừng lại khi bạn phù hợp 'something' (trong trường hợp này, cái gì là của ra uname -r) - những / bao quanh một biểu hiện thường xuyên
  • p được in
  • những ; là lệnh separtor, vì vậy /something/q;p nói từ bỏ khi bạn phù hợp với một cái gì đó khác in

hoàn toàn, sed -n '/'`uname -r`'/q;p' được in lines cho đến khi nó phù hợp với sự hiện tại hạt nhân tên.

Nếu bạn đang bị hoang tưởng (như tôi), bạn có thể làm cho phần cuối cùng xargs echo sudo apt-get -y purge vì vậy mà lệnh để tẩy già hạt nhân được in, sau đó anh có thể kiểm tra rằng không có gì bất ngờ, bao gồm trước khi bạn chạy nó.


Sửa đổi phiên bản bỏ tiêu đề:

dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo apt-get -y purgedpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs sudo apt-get -y purge

Chú ý: sed gọi là thay đổi. "$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")" chiết xuất chỉ là phiên bản (ví dụ như "3.2.0-44") , không có "-chung" hoặc tương tự từ uname -r


Tất cả trong một phiên bản bỏ hình ảnh và tiêu đề (kết hợp hai phiên bản trên):

echo $(dpkg --list | grep linux-image | awk '{ print $2 }' | sort -V | sed -n '/'`uname -r`'/q;p') $(dpkg --list | grep linux-headers | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p') | xargs sudo apt-get -y purge

Ubuntu 16.04+:

$ sudo apt autoremove...The following packages will be REMOVED:  linux-headers-4.4.0-57 linux-headers-4.4.0-57-generic linux-image-4.4.0-57-generic linux-image-extra-4.4.0-57-generic linux-tools-4.4.0-57 linux-tools-4.4.0-57-generic

Ubuntu 15.10 và dưới đây,:

Tôi tìm thấy điều này là cách tốt nhất. Nó giữ hạt nhân mới nhất, cũng như hai nữa:

sudo apt-get install bikeshedsudo purge-old-kernels

Để thay đổi số thêm hạt nhân đó đang giữ:

sudo purge-old-kernels --keep 3

Loại bỏ Mục hợp 2Entries nên được loại bỏ chỉnh sửa hay loại bỏ các tập tin trong /etc/ăn.d thư mục. Các /khởi động dòng ăn.cfg tập tin là chỉ đọc và nên bình thường không cần chỉnh sửa.

Quá Nhiều Hạt Nhân?

  • Nếu ông không chắc chắn về hạt nhân bạn đang sử dụng trong một loại thiết bị đầu cuối uname -r.

  • Hạt nhân loại bỏ qua KHUYNH (Tiếp hợp một loại yum bỏ và lần etc.) sẽ tự động cập nhật mà.cfg và không có hành động dùng được yêu cầu.

  • Một công cụ tuyệt vời cho việc loại hạt nhân (và đơn mục) là môi trường-tinh Chỉnh, một an toàn và dễ sử dụng GUI ứng dụng.

  • Cài đặt thống nhất tinh chỉnh

  • Làm thế nào để điều Chỉnh sẽ có sẵn trong các Ứng dụng > Hệ thống công Cụ.

Bỏ Cũ Hạt Nhân Mục

  • Chọn một;Gói Và một bên trái, và một Loại Hạt nhân và sẽ từ bên phải.

  • Báo chí tương lai, Mở khóa và một nút ở thấp hơn, phải nhập vào mật khẩu.

  • Chọn từ danh sách hiển thị các hạt nhân hình ảnh và tiêu đề mà bạn muốn bỏ. Hạt nhân trong sử dụng không được liệt kê.

  • Báo chí tương lai, Dọn dẹp và một nút ở dưới quyền để loại bỏ các lựa chọn ảnh hạt nhân và các tiêu đề.

Bỏ Hệ điều Hành từ hạ menu

  • Các điều Hành, Hệ thống đó đã được lấy ra từ máy tính cũng sẽ được lấy ra từ những đơn một lần và một bản cập nhật tương lai, là chạy như là gốc.

  • Đơn các mặt hàng được đặt trên Grub2 menu bằng kịch bản. Nếu bạn không muốn Hệ khác được nhập vào các đơn, vô hiệu hóa /etc/ăn.d/30_osprober

  • Chạy này lệnh để ngăn chặn các kịch bản chạy
    sudo chmod -x /etc/grub.d/30_os-prober

  • DISABLE_30_OS-PROBER='sự thật' trong /etc/định dòng

Bỏ Memtest86 từ hạ Menu
sudo chmod -x /etc/grub.d/20_memtest86+

  • Chạy chạy chậm lệnh cho phép thay đổi để được kết hợp từ trong kho lưu.cfg

Nguồn

Chú ý:Sau khi hạt nhân cập nhật một mục mới được thêm vào thức ăn đơn.Bạn có thể bỏ một lớn hơn.nếu em muốn.Tuy nhiên, hầu hết người sẽ khuyên bạn để giữ ít nhất một phụ tùng nhập trong trường hợp có gì sai trái với một nâng cấp và bạn cần phải khởi động một phiên bản hạt nhân cho sự cố mục đích.

Cách khác để loại bỏ Hạt nhân mục (trước khi 10.04)

cho GRUB không GRUB2

startupmanager

Bạn có thể tìm thấy nó dưới Hệ thống gt;>Quản lý>>



Bạn nhìn thấy trong lần thứ hai, hình bạn có thể chọn bao nhiêu hạt nhân để cho? Tôi thường chỉ cần giữ nó trên 1, nhưng khi tôi nhận được nâng cấp hạt nhân tôi luôn luôn thay đổi nó vào 2 trước khi khởi động lại để tôi có thể chọn cũ hạt nhân nếu các hạt nhân mới có vấn đề với phần cứng của tôi. Một khi tôi biết những hạt nhân mới là làm việc tôi cũng thay đổi nó trở lại để 1.

Hoàn toàn là lệnh, điều này sẽ bỏ tất cả, nhưng hiện tại và thứ nhất, hiện tại (thông qua "-2" trong đầu lệnh dưới):

OLD=$(ls -tr /boot/vmlinuz-* | head -n -2 | cut -d- -f2- |    awk '{print "linux-image-" $0 " linux-headers-" $0}' )if [ -n "$OLD" ]; then    apt-get -qy remove --purge $OLDfiapt-get -qy autoremove --purge

Cập nhật: purge-old-kernelsphản đối ngày nay.

Tôi đã thực hiện một kịch bản để tẩy hạt nhân thậm chí trong điều kiện. Nó được gọi là linux-purge và bạn có thể tìm thấy nó ở đây.

Nếu bạn chỉ muốn thanh trừng những hạt nhân (và liên quan gói) đó là hơn cả đang được sử dụng hạt nhân, khi hệ thống không bị hỏng, bạn có thể sử dụng kịch bản này,.

Đó cũng là mạng trang tài liệu mà tôi đã đóng góp vào liên quan đến loại bỏ già hạt nhân ở đây.

Bạn có thể làm theo những Bằng cách sử dụng "mặc-nâng cấp" gói phần của An Ninh Tự Động Cập Nhật bài viết trên ổ Wiki để thực hiện điều này.

Bạn cần phải thay đổi dòng sau trong /etc/khuynh/khuynh.tập tin.d/50unattended-nâng cấp tập tin;

//Unattended-Upgrade::Remove-Unused-Dependencies "false";

với

Unattended-Upgrade::Remove-Unused-Dependencies "true";

để tự động bỏ gói cũ, bao gồm cả hạt nhân.

Cũng bỏ hoặc bình luận các dòng

"^linux-image.*"; 

trong "NeverAutoRemove" phần của các tập tin /etc/khuynh/khuynh.tập tin.d/01autoremove.

Các nhanh nhất/cách đơn giản hơn (Áp dụng ít nhất kể từ khi 12.04) có thể là đã đến với mọi là apt-get. Làm như sau, nếu bạn muốn loại bỏ tất cả các già hạt nhân bản mà không có trong sử dụng (ngoại Trừ trước đó rằng bạn đã không sử dụng. Điều này là để đảm bảo rằng nếu sự hiện tại phiên bản hạt nhân không thành công trong một cách nào đó, bạn có một cách để trở lại một trạng thái trước). Làm như sau:

sudo apt-get autoclean

Điều này sẽ rõ ràng bất kỳ file cũ (bao Gồm cả hạt nhân phiên bản), bạn có thể có. Lưu ý rằng nếu bạn có nhiều phiên bản cũ, nó sẽ mất một khi nó đã chắc chắn rằng loại bỏ những phiên bản hạt nhân không có vấn đề. Cho tôi loại bỏ những vòng 12 hạt nhân phiên bản mất khoảng 2 phút. Bạn cũng có thể làm như sau:

sudo apt-get clean

Đó sẽ loại bỏ tất cả mọi thứ về và lưu trong bộ nhớ mục của khuynh. Cuối cùng, bạn có:

sudo apt-get autoremove

đó sẽ kiểm tra cho bất kỳ gói và bỏ họ nếu cần thiết. Điều này là rất tốt cho những thư viện và phụ thuộc gói đó không còn cần thiết cầu bất cứ ứng dụng cài đặt.

Để tìm ra những gì hạt nhân và các tiêu đề đang cài đặt sử dụng

dpkg -l | grep linux-imagedpkg -l | grep linux-headers

Sau đó bạn có thể bỏ họ một hoặc lại với nhau, chỉ cần chắc chắn để giữ gần đây nhất.

Cũng có một số tiện lệnh và kịch bản để tự động các loại.

http://ubuntuforums.org/showthread.php?t=1658648

Sau tuyên bố để loại bỏ tất cả không sử dụng hạt nhân và các tiêu đề:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'|grep -E "(image|headers|modules)" | grep -v hwe | xargs sudo apt-get purge

(sử dụng apt-get -y để loại bỏ mà không có câu hỏi)

Đây là những gì sẽ xảy ra khi chạy trên 18.04.1:

~$ dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'|grep -E "(image|headers|modules)" | xargs sudo apt-get -y purgeReading package lists... DoneBuilding dependency tree       Reading state information... DoneThe following packages will be REMOVED:  linux-headers-4.15.0-33* linux-headers-4.15.0-33-generic* linux-headers-4.15.0-34* linux-headers-4.15.0-34-generic* linux-image-4.15.0-33-generic* linux-image-4.15.0-34-generic*  linux-modules-4.15.0-33-generic* linux-modules-4.15.0-34-generic* linux-modules-extra-4.15.0-33-generic* linux-modules-extra-4.15.0-34-generic*0 upgraded, 0 newly installed, 10 to remove and 1 not upgraded.After this operation, 671 MB disk space will be freed.(Reading database ... 227403 files and directories currently installed.)Removing linux-headers-4.15.0-33-generic (4.15.0-33.36) ...Removing linux-headers-4.15.0-33 (4.15.0-33.36) ...Removing linux-headers-4.15.0-34-generic (4.15.0-34.37) ...Removing linux-headers-4.15.0-34 (4.15.0-34.37) ...Removing linux-modules-extra-4.15.0-33-generic (4.15.0-33.36) ...Removing linux-image-4.15.0-33-generic (4.15.0-33.36) .../etc/kernel/postrm.d/initramfs-tools:update-initramfs: Deleting /boot/initrd.img-4.15.0-33-generic/etc/kernel/postrm.d/zz-update-grub:Generating grub configuration file ...Found linux image: /boot/vmlinuz-4.15.0-36-genericFound initrd image: /boot/initrd.img-4.15.0-36-genericFound linux image: /boot/vmlinuz-4.15.0-34-genericFound initrd image: /boot/initrd.img-4.15.0-34-genericAdding boot menu entry for EFI firmware configurationdoneRemoving linux-modules-extra-4.15.0-34-generic (4.15.0-34.37) ...Removing linux-image-4.15.0-34-generic (4.15.0-34.37) ...I: /vmlinuz.old is now a symlink to boot/vmlinuz-4.15.0-36-genericI: /initrd.img.old is now a symlink to boot/initrd.img-4.15.0-36-generic/etc/kernel/postrm.d/initramfs-tools:update-initramfs: Deleting /boot/initrd.img-4.15.0-34-generic/etc/kernel/postrm.d/zz-update-grub:Generating grub configuration file ...Found linux image: /boot/vmlinuz-4.15.0-36-genericFound initrd image: /boot/initrd.img-4.15.0-36-genericAdding boot menu entry for EFI firmware configurationdoneRemoving linux-modules-4.15.0-33-generic (4.15.0-33.36) ...Removing linux-modules-4.15.0-34-generic (4.15.0-34.37) ...(Reading database ... 156180 files and directories currently installed.)Purging configuration files for linux-image-4.15.0-34-generic (4.15.0-34.37) ...Purging configuration files for linux-modules-4.15.0-33-generic (4.15.0-33.36) ...dpkg: warning: while removing linux-modules-4.15.0-33-generic, directory '/lib/modules/4.15.0-33-generic' not empty so not removedPurging configuration files for linux-modules-4.15.0-34-generic (4.15.0-34.37) ...Purging configuration files for linux-image-4.15.0-33-generic (4.15.0-33.36) ...Purging configuration files for linux-modules-extra-4.15.0-34-generic (4.15.0-34.37) ...Purging configuration files for linux-modules-extra-4.15.0-33-generic (4.15.0-33.36) ...~$ uname -r4.15.0-36-generic

ngôi yum autoremove nên làm các thủ thuật trên ổ 14.04+

Đó là mạng gọi là lệnh thanh trừng-old-hạt nhân để làm công việc. Thấy trả lời để biết thêm thông tin.

Tôi giữ trở về trang này… các bình luận của @bếp chỉ làm việc nếu bạn hạt nhân đã tự động cài đặt - tuy nhiên bạn làm bạn yum autoremove --thanh trừng câu trả lời theo khuynh-mark lời khuyên về https://help.ubuntu.com/community/RemoveOldKernels

Sự tích tụ của hạt nhân là một lỗi, với sửa chữa trong sự tiến bộ: https://bugs.launchpad.net/bugs/1357093 . Khi sửa chữa được phát hành già hơn hạt nhân sẽ autoremove mặc định.

@bếp lệnh không cho tôi trong windows Studio 14.04, nếu các hạt nhân chưa được cài đặt tự động, nhưng phần Mềm.

Cũng như tháo già hạt nhân, bỏ ghi chú này dòng /etc/định dòng nếu bạn muốn để thoát khỏi sự phục hồi’ mục trong đơn: #GRUB_DISABLE_LINUX_RECOVERY=“sự thật”

Trong những phiên bản Ubuntu giấu hạt nhân từ trong kho lưu của tiểu đơn, vì vậy nó không gây khó chịu đó. Tuy nhiên, nó có thể là ý tưởng tốt để bỏ thêm hạt nhân để cứu vũ trụ, đặc biệt, nếu bạn có một tách nhỏ /phân vùng khởi động.

Tôi không thể tìm câu trả lời nào đó sẽ giúp đỡ để bỏ hạt nhân từ trước hành sau khi nâng cấp Ubuntu mới phát, thậm chí nếu một câu hỏi cụ thể về nó đã được đánh dấu như là một bản sao này ở đây. Thấy cũng có liên quan báo cáo lỗi

Tôi đã thực hiện một kịch bản đó không công việc. Tôi sẽ công bố nó sau khi tiền thưởng của tôi đạt được mục tiêu: Bountysource