ไม่สามารถอัปเกรดเนื่องจากพื้นที่ดิสก์เหลือน้อยเมื่อเปิด / บูต


123

ฉันพยายามทำdo-release-upgrade แต่แล้วฉันจะได้รับ:

เนื้อที่ว่างบนดิสก์ไม่เพียงพอ

การอัพเกรดถูกยกเลิก การอัพเกรดต้องการพื้นที่ว่างทั้งหมด 25.7 M บนดิสก์ '/ boot' โปรดเพิ่มพื้นที่ดิสก์อย่างน้อย 25.7 M ใน '/ boot' ล้างถังขยะของคุณและลบแพ็คเกจชั่วคราวของการติดตั้งเดิมโดยใช้ 'sudo apt-get clean'

ผลลัพธ์ของdf:

                    237251272 214797108  10402504  96% /
udev                    488120         4    488116   1% /dev
tmpfs                   198676       668    198008   1% /run
none                      5120         0      5120   0% /run/lock
none                    496684         0    496684   0% /run/shm
/dev/sda1               233191    225867         0 100% /boot

ทำไมไม่มีที่ว่างเหลือตอนบู๊ต? นี่คือผลลัพธ์ของls -as /boot:

total 221839
    4 .
    4 ..
  645 abi-2.6.32-34-generic-pae
  698 abi-2.6.35-30-generic-pae
  727 abi-2.6.38-12-generic-pae
  727 abi-3.0.0-12-generic-pae
  727 abi-3.0.0-13-generic-pae
  727 abi-3.0.0-14-generic-pae
  727 abi-3.0.0-15-generic-pae
  727 abi-3.0.0-16-generic-pae
  727 abi-3.0.0-17-generic-pae
  727 abi-3.0.0-19-generic-pae
  761 abi-3.0.0-20-generic-pae
  115 config-2.6.32-34-generic-pae
  128 config-2.6.35-30-generic-pae
  136 config-2.6.38-12-generic-pae
  140 config-3.0.0-12-generic-pae
  140 config-3.0.0-13-generic-pae
  140 config-3.0.0-14-generic-pae
  140 config-3.0.0-15-generic-pae
  140 config-3.0.0-16-generic-pae
  140 config-3.0.0-17-generic-pae
  140 config-3.0.0-19-generic-pae
  140 config-3.0.0-20-generic-pae
    5 grub
10773 initrd.img-2.6.32-34-generic-pae
13619 initrd.img-2.6.35-30-generic-pae
15365 initrd.img-2.6.38-12-generic-pae
16481 initrd.img-3.0.0-12-generic-pae
16487 initrd.img-3.0.0-13-generic-pae
16501 initrd.img-3.0.0-14-generic-pae
16476 initrd.img-3.0.0-15-generic-pae
16481 initrd.img-3.0.0-16-generic-pae
16478 initrd.img-3.0.0-17-generic-pae
   12 lost+found
  174 memtest86+.bin
  176 memtest86+_multiboot.bin
 1700 System.map-2.6.32-34-generic-pae
 1841 System.map-2.6.35-30-generic-pae
 2115 System.map-2.6.38-12-generic-pae
 2141 System.map-3.0.0-12-generic-pae
 2141 System.map-3.0.0-13-generic-pae
 2143 System.map-3.0.0-14-generic-pae
 2146 System.map-3.0.0-15-generic-pae
 2147 System.map-3.0.0-16-generic-pae
 2147 System.map-3.0.0-17-generic-pae
 2148 System.map-3.0.0-19-generic-pae
 2149 System.map-3.0.0-20-generic-pae
    2 vmcoreinfo-2.6.32-34-generic-pae
    2 vmcoreinfo-2.6.35-30-generic-pae
    2 vmcoreinfo-2.6.38-12-generic-pae
    2 vmcoreinfo-3.0.0-12-generic-pae
    2 vmcoreinfo-3.0.0-13-generic-pae
    2 vmcoreinfo-3.0.0-14-generic-pae
    2 vmcoreinfo-3.0.0-15-generic-pae
    2 vmcoreinfo-3.0.0-16-generic-pae
    2 vmcoreinfo-3.0.0-17-generic-pae
    2 vmcoreinfo-3.0.0-19-generic-pae
    2 vmcoreinfo-3.0.0-20-generic-pae
 4092 vmlinuz-2.6.32-34-generic-pae
 4347 vmlinuz-2.6.35-30-generic-pae
 4567 vmlinuz-2.6.38-12-generic-pae
 4675 vmlinuz-3.0.0-12-generic-pae
 4676 vmlinuz-3.0.0-13-generic-pae
 4681 vmlinuz-3.0.0-14-generic-pae
 4698 vmlinuz-3.0.0-15-generic-pae
 4700 vmlinuz-3.0.0-16-generic-pae
 4700 vmlinuz-3.0.0-17-generic-pae
 4703 vmlinuz-3.0.0-19-generic-pae
 4705 vmlinuz-3.0.0-20-generic-pae

ผลลัพธ์ของuname -a:

 Linux kitsch 3.0.0-17-generic-pae #30-Ubuntu SMP Thu Mar 8 17:53:35 UTC 2012 i686 i686 i386 GNU/Linux

เพิ่มออกไปls -l /bootและuname -aคำถามของคุณ
jippie

เพิ่มผลลัพธ์ให้dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'กับคำถามของคุณ
jippie

ls -as /bootอาจมีประโยชน์แทน มันจะมีเพียงแค่ขนาดของไฟล์
adempewolff

ผลลัพธ์ของ ls -l / boot ค่อนข้างยาวเกินไปโพสต์ที่นี่ดังนั้นนี่คือpastebin.com/yM1aEJUx
clamp

5
ไม่มันไม่ใช่. มันเป็นสาเหตุของปัญหาของคุณ หากคำถามของคุณกำลังจะมีคนมานานเกินไปที่จะแก้ไข การใช้บริการภายนอกเช่น pastebin จะทำให้ค่าของคำถามนั้นสำหรับการอ้างอิงในอนาคต
jippie

คำตอบ:


160

พาร์ติชั่น / boot ของคุณเต็มไปด้วยเมล็ดเก่า มันทำอย่างนั้นบางครั้งไม่แน่ใจว่าทำไมมันถึงไม่เคยแก้ไข คุณสามารถลบเมล็ดเก่าได้อย่างง่ายดายหากคุณรู้ว่ามีแพ็กเกจใดเข้ามา

ก่อนอื่นuname -aให้ตรวจสอบเวอร์ชั่นปัจจุบันของคุณ

จากนั้นรันคำสั่งต่อไปนี้:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

คำสั่งนี้จะแสดงรายการแพ็คเกจทั้งหมดที่คุณไม่ต้องการอีกต่อไป ฉันไม่ชอบที่จะลบพวกเขาโดยอัตโนมัติฉันชอบที่จะควบคุมเมื่อมันมาถึงการลบเมล็ด ดังนั้นสำหรับทุกแพ็คเกจที่ระบุไว้ให้ทำดังต่อไปนี้:

sudo apt-get -y purge some-kernel-package

เพลงสั้น ๆ

linux-libc-dev:amd64สลับฉากนี้อธิบายในรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำงานของคำสั่งและพยายามที่จะแก้ไขปัญหาด้วย ผู้ใช้ส่วนใหญ่สามารถข้ามย่อหน้านี้ได้

  • dpkg -l 'linux-*' แสดงรายการแพ็คเกจทั้งหมดที่มีชื่อขึ้นต้นด้วย 'linux-'
  • sed '/^ii/!d; remove all lines that do *not* start withii`
  • uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/" ค้นหาเวอร์ชันเคอร์เนลที่กำลังรันอยู่
  • /'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d ลบบรรทัดทั้งหมดยกเว้นบรรทัดที่มีหมายเลขเวอร์ชันเคอร์เนลที่รันอยู่ในปัจจุบัน
  • s/^[^ ]* [^ ]* \([^ ]*\).*/\1/ สำหรับแต่ละรายการรายการเท่านั้นชื่อแพคเกจ
  • /[0-9]/!d ลบบรรทัดที่ไม่มีตัวเลข

เพื่อแก้ไขปัญหาของFrederick Nordฉันคิดว่าคำสั่งสามารถแก้ไขได้ดังนี้

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d;/^linux-\(headers\|image\)/!d'

โดยพื้นฐานแล้วมันจะเพิ่มตัวกรองพิเศษ:

  • / ^ linux- (ส่วนหัว \ | รูปภาพ) /! d ลบทุกบรรทัดที่ไม่ได้ขึ้นต้นด้วยlinux-headersหรือlinux-image

/ Intermezzo

ไหนsome-kernel-packageสามารถถูกแทนที่ด้วยแพคเกจที่ระบุไว้ เพียงแค่ระวังว่าคุณไม่ได้ลบแพคเกจเคอร์เนลที่ใช้อยู่ในปัจจุบัน (ตามที่ระบุไว้โดยuname -a) เช่น sudo apt-get purge -y linux-headers-3.0.0-12เป็นต้น

สามารถดำเนินการอัตโนมัติโดยใช้คำสั่ง xargs แต่ฉันไม่ชอบ มันเป็นเรื่องส่วนตัว อย่างไรก็ตามนี่คือคำสั่งให้ทำ:

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

นี่คือ/bootลักษณะที่ฉันต้องการเคอร์เนลสำรองหนึ่งอัน (2.6.38-11) ในกรณีที่ 3.2.0-24 เป็นปัจจุบัน:

$ ls -l /boot
total 59388
-rw-r--r-- 1 root root   730545 Sep 13  2011 abi-2.6.38-11-generic
-rw-r--r-- 1 root root   791023 Apr 25 13:51 abi-3.2.0-24-generic
-rw-r--r-- 1 root root   130326 Sep 13  2011 config-2.6.38-11-generic
-rw-r--r-- 1 root root   140341 Apr 25 13:51 config-3.2.0-24-generic
drwxr-xr-x 3 root root     5120 May 27 17:46 grub
-rw-r--r-- 1 root root 20883146 Oct  1  2011 initrd.img-2.6.38-11-generic
-rw-r--r-- 1 root root 22474219 May  5 09:04 initrd.img-3.2.0-24-generic
drwxr-xr-x 2 root root    12288 Apr 16  2009 lost+found
-rw-r--r-- 1 root root   176764 Nov 27 11:00 memtest86+.bin
-rw-r--r-- 1 root root   178944 Nov 27 11:00 memtest86+_multiboot.bin
-rw------- 1 root root  2656297 Sep 13  2011 System.map-2.6.38-11-generic
-rw------- 1 root root  2884358 Apr 25 13:51 System.map-3.2.0-24-generic
-rw------- 1 root root     1369 Sep 13  2011 vmcoreinfo-2.6.38-11-generic
-rw------- 1 root root  4526784 Sep 13  2011 vmlinuz-2.6.38-11-generic
-rw------- 1 root root  4965776 Apr 25 13:51 vmlinuz-3.2.0-24-generic

และการใช้ระบบไฟล์:

$ df -h /boot
Filesystem Size Used Avail Use% Mounted
/dev/sda5  228M  63M  154M  29% /boot

2
วิธีการแก้ปัญหานี้ได้รับแรงบันดาลใจอย่างมากจากบทความโดย OzzyFrank ที่ubuntugenius.wordpress.com/2011/01/08/…
jippie

6
ใช่ทำไมปัญหานี้เป็นคำถามหรือไม่ ไม่ควรให้ผู้ใช้จัดการ
Elijah Lynn

2
FWIW: สิ่งนี้ตรงกับ linux-libc-dev: amd64 สำหรับฉันด้วย ดังนั้นมันอาจจะใจกว้างเกินไป
Frederick Nord

4
It does that sometimes, not sure why it is never fixedUbuntu ได้ทำการตัดสินใจว่าจะให้ดีขึ้นหรือแย่ลงเพื่อให้เมล็ดใหม่เป็นแพคเกจใหม่แทนที่จะอัพเกรดเป็นแพคเกจที่มีอยู่เพื่อให้ตัวเลือกในการติดตั้งเคอร์เนลหลายตัวและสลับไปมาระหว่างกัน ฉันยอมรับว่าสมมติฐานนี้ไม่เหมาะกับคน 95% ที่เพิ่งต้องการเคอร์เนลล่าสุด (และอาจเป็นทางเลือกหนึ่งในกรณีที่มีปัญหาการบูตใหม่) และผู้ที่ไม่ต้องการจัดการเมล็ดที่ติดตั้งด้วยตนเอง บางทีในอนาคต Ubuntu จะเปลี่ยนพฤติกรรมนี้ สำหรับตอนนี้ตรวจสอบให้แน่ใจว่า / boot ของคุณมีขนาดใหญ่
thomasrutter

1
@thomasrutter ถ้าคุณ (เหมือนฉันและ 95% ของคนที่คุณกำลังพูดถึง) คิดว่าข้อบกพร่องนี้มีความสำคัญให้ลงคะแนนได้ที่นี่: bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1183692
FriendFX

46

sudo apt-get autoremove

ทำเคล็ดลับสำหรับฉันแล้วมันทำความสะอาดแพ็กเกจเคอร์เนลที่ไม่ได้ใช้ทั้งหมดให้สำเร็จ


3
สิ่งนี้ไม่ถูกต้อง จากman apt-getautoremove จะใช้ในการลบแพ็คเกจที่ติดตั้งโดยอัตโนมัติเพื่อตอบสนองการพึ่งพาสำหรับบางแพคเกจและที่ไม่จำเป็นอีกต่อไป เคอร์เนลจะไม่ถูกติดตั้งเพื่อตอบสนองต่อการพึ่งพาพวกเขาจะถูกติดตั้งในระหว่างการอัพเกรด
ลง

5
@neon_overload ฉันเพิ่งโพสต์เพราะมันใช้กลอุบายสำหรับฉัน
ไม่มีส่วนบน

1
@dward มันทำให้ฉันมีพื้นที่ว่าง: ก่อนที่จะ autremove: /dev/sda1, 240M total, 171M used, 57M free, 75% used /boot หลังจาก: /dev/sda1, 240M total, 129M used, 98M free, 57% used /boot
Stefan Rogin

6
ควรมีปุ่มสำหรับทำงานนี้ในกล่องโต้ตอบ "เนื้อที่ว่างบนดิสก์ไม่เพียงพอ" สิ่งนี้จะช่วยผู้ใช้มือใหม่ที่ไม่คุ้นเคยกับบรรทัดคำสั่งเป็นพิเศษ
Martin R.

1
ทำเคล็ดลับโดยไม่ทำลายระบบปฏิบัติการของฉัน
Ruthvik Vaila

8

เทียบเท่ากับคำตอบที่ได้รับการยอมรับ - อีกวิธีหนึ่งที่ (อาจจะ) ได้ง่ายขึ้นคือการติดตั้งubuntu-tweakเครื่องมือก็สามารถดาวน์โหลดได้จากที่นี่ ไปที่ "นักการภารโรง" และเลือก "เคอร์เนลเก่า" เพื่อล้าง สามารถทำได้ในไม่กี่คลิก (ทดสอบบนเดสก์ท็อป 14.04)

ป้อนคำอธิบายรูปภาพที่นี่


สถานการณ์ที่ไม่มีพื้นที่ว่าง/bootเกิดขึ้นตลอดเวลาดังนั้นนี่คือโซลูชันที่ฉันโปรดปราน - แอพพลิเคชั่นที่ใช้งานง่ายซึ่งทำงานได้ด้วยคลิกเดียว
s3m3n

2

เปรียบเทียบกับคำตอบ GUI อื่นที่นี่ข้อดีของคำตอบนี้คือ Ubuntu Bash ดั้งเดิมที่ใช้โดยไม่ต้องติดตั้งแอปพลิเคชันของบุคคลที่สาม

โซลูชันพื้นฐานของ Zenity และ Bash

Zenity นำเสนออินเทอร์เฟซ GUI ที่ยอดเยี่ยมให้กับเครื่องเทอร์มินัลเพื่อประมวลผลรายการและเลือกรายการด้วยปุ่มตัวเลือก :

rm-kernels 1

เคอร์เนลปัจจุบันที่คุณบู๊ตด้วยไม่สามารถลบได้และไม่รวมอยู่ในรายการ ขนาดรายงานคือเท่าใดจะถูกบันทึกไว้ใน/bootไดเรกทอรี มีการบันทึกเพิ่มเติมในดิสก์ของคุณเนื่องจากเคอร์เนลไบนารีอยู่ในพื้นที่อื่นด้วย 27 กรกฎาคม 2017 หมายเหตุ:ไดเรกทอรี/usr/src/*kernel_version*และ/lib/modules/*kernel_version*ตอนนี้รวมอยู่ด้วย

วันที่แก้ไขจะถูกค้นพบโดยใช้statคำสั่ง ในระบบของฉันวันนั้นคือ"สัมผัส"ทุกครั้งที่เคอร์เนลถูกบูทโดยใช้สิ่งนี้ ( คุณจะทราบได้อย่างไรว่าเวอร์ชันเคอร์เนลที่ถูกบูทครั้งสุดท้ายเมื่อใด ) สคริปต์รีบูตcron อย่างไรก็ตามในระบบของคุณวันที่จะเป็นวันวางจำหน่ายเคอร์เนลไม่ใช่ครั้งสุดท้ายที่คุณบูต

apt-get purge ให้โอกาสคุณยกเลิก

คุณจะได้รับโอกาสสุดท้ายในการดูทุกสิ่งที่จะถูกลบทิ้งและดูพื้นที่ดิสก์ทั้งหมด (ค่อนข้างทำให้เข้าใจผิด) ที่จะกู้คืน:

The following packages will be REMOVED:
  linux-headers-4.7.1-040701* linux-headers-4.7.1-040701-generic*
  linux-headers-4.7.2-040702* linux-headers-4.7.2-040702-generic*
  linux-headers-4.7.3-040703* linux-headers-4.7.3-040703-generic*
  linux-headers-4.8.1-040801* linux-headers-4.8.1-040801-generic*
  linux-headers-4.8.10-040810* linux-headers-4.8.10-040810-generic*
  linux-headers-4.8.11-040811* linux-headers-4.8.11-040811-generic*
  linux-headers-4.8.4-040804* linux-headers-4.8.4-040804-generic*
  linux-headers-4.8.5-040805* linux-headers-4.8.5-040805-generic*
  linux-image-4.7.1-040701-generic* linux-image-4.7.2-040702-generic*
  linux-image-4.7.3-040703-generic* linux-image-4.8.1-040801-generic*
  linux-image-4.8.10-040810-generic* linux-image-4.8.11-040811-generic*
  linux-image-4.8.4-040804-generic* linux-image-4.8.5-040805-generic*
0 upgraded, 0 newly installed, 24 to remove and 2 not upgraded.
After this operation, 2,330 MB disk space will be freed.
Do you want to continue? [Y/n] 

รหัส

คัดลอกรหัสนี้ไปยังไฟล์ปฏิบัติการที่ชื่อrm-kernelsใน/usr/local/bin:

#!/bin/bash

# NAME: rm-kernels
# PATH: /usr/local/bin
# DESC: Provide zenity item list of kernels to remove

# DATE: Mar 10, 2017. Modified Jul 28, 2017.

# NOTE: Will not delete current kernel.

#       With 10 kernels on an SSD, empty cache from sudo prompt (#) using:
#       # free && sync && echo 3 > /proc/sys/vm/drop_caches && free
#       First time for `du` 34 seconds.
#       Second time for `du` 1 second.

# PARM: If any parm 1 passed use REAL kernel size, else use estimated size.
#       By default `du` is not used and estimated size is displayed.

# Must be running as sudo
if [[ $(id -u) != 0 ]]; then
    zenity --error --text "root access required. Use: sudo rm-kernels"
    exit 99
fi

OLDIFS="$IFS"
IFS="|"
choices=()

current_version=$(uname -r)

for f in /boot/vmlinuz*
do
    if [[ $f == *"$current_version"* ]]; then continue; fi # skip current version
    [[ $f =~ vmlinuz-(.*) ]]
    v=${BASH_REMATCH[1]}        # example: 4.9.21-040921-generic
    v_main="${v%-*}"            # example: 4.9.21-040921

    # Kernel size in /boot/*4.9.21-040921-generic*
    s=$(du -ch /boot/*-$v* | awk '/total/{print $1}')

    if [[ $# -ne 0 ]] ; then    # Was a parameter passed?
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             # Kernel headers size in /usr/src/*4.9.21-040921*
             s2=$(du -ch --max-depth=1 /usr/src/*-$v_main* | awk '/total/{print $1}')
        else
             s2="0M"            # Linux Headers are not installed
        fi
        # Kernel image size in /lib/modules/4.9.21-040921-generic*
        s3=$(du -ch --max-depth=1 /lib/modules/$v* | awk '/total/{print $1}')
    else
        # Estimate sizof of optional headers at 125MB and size of image at 220MB
        if [[ -d "/usr/src/linux-headers-"$v_main ]] ; then
             s2="125M"
        else
             s2="0M"            # Linux Headers are not installed
        fi
        s3="220M"
    fi

    # Strip out "M" provided by human readable option of du and add 3 sizes together
    s=$(( ${s//[^0-9]*} + ${s2//[^0-9]*} + ${s3//[^0-9]*} ))
    t=$(( t + s ))
    s=$s" MB"
    d=$(date --date $(stat -c %y $f) '+%b %d %Y') # Last modified date for display
    choices=("${choices[@]}" false "$v" "$d" "$s")
done

# adjust width & height below for your screen 640x480 default for 1920x1080 HD screen
# also adjust font="14" below if blue text is too small or too large

choices=(`zenity \
        --title "rm-kernels - Total: $t MB excluding: $current_version" \
        --list \
        --separator="$IFS" \
        --checklist --multiple \
        --text '<span foreground="blue" font="14">Check box next to kernel(s) to remove</span>' \
        --width=640 \
        --height=480 \
        --column "Select" \
        --column "Kernel Version Number" \
        --column "Modified Date" \
        --column " Size " \
        "${choices[@]}"`)
IFS="$OLDIFS"

i=0
list=""
for choice in "${choices[@]}" ; do
    if [ "$i" -gt 0 ]; then list="$list- "; fi # append "-" from last loop
    ((i++))

    short_choice=$(echo $choice | cut -f1-2 -d"-")
    header_count=$(find /usr/src/linux-headers-$short_choice* -maxdepth 0 -type d | wc -l)

    # If -lowlatency and -generic are purged at same time the _all header directory
    # remains on disk for specific version with no -generic or -lowlatency below.
    if [[ $header_count -lt 3 ]]; then
        # Remove all w.x.y-zzz headers
        list="$list""linux-image-$choice- linux-headers-$short_choice"
    else
        # Remove w.x.y-zzz-flavour header only, ie -generic or -lowlatency
        list="$list""linux-image-$choice- linux-headers-$choice" 
    fi

done

if [ "$i" -gt 0 ] ; then
     apt-get purge $list
fi

หมายเหตุ:คุณต้องได้รับอนุญาต sudo เพื่อสร้างไฟล์เพื่อใช้:

gksu gedit /usr/local/bin/rm-kernels

หากต้องการใช้ไฟล์ที่ปฏิบัติการได้:

sudo chmod +x /usr/local/bin/rm-kernels

หมายเหตุ:สำหรับเวอร์ชันของเซิร์ฟเวอร์นี้ (ตามข้อความไม่ใช่ GUI) โปรดดู: ฉันจะลบเวอร์ชันเคอร์เนลเก่าเพื่อล้างเมนูการบู๊ตได้อย่างไร


อัปเดต 28 กรกฎาคม 2560

ขนาดที่คำนวณได้ของเคอร์เนลแต่ละ/boot/*kernel_version*ไฟล์มีขนาด 5 ไฟล์รวมกัน ~ 50 MB สูตรที่มีการเปลี่ยนแปลงที่จะรวมไฟล์ในและ/usr/src/*kernel_version* /lib/modules/*kernel_version*ขนาดที่คำนวณได้สำหรับแต่ละเคอร์เนลขณะนี้ ~ 400 MB รหัสด้านบนสำหรับrm-kernelsและrm-kernels-serverได้รับการปรับปรุง อย่างไรก็ตามหน้าจอตัวอย่างด้านบนยังไม่สะท้อนการเปลี่ยนแปลงเหล่านี้

ค่าเริ่มต้นคือการประมาณขนาดของไฟล์สำหรับส่วนหัวของลินุกซ์ที่ 125 MB และรูปแบบของลินุกซ์ที่ 220 MB เพราะduอาจช้าลงอย่างเจ็บปวดเว้นแต่ไฟล์จะอยู่ในแคช เพื่อให้ได้ขนาดจริงโดยใช้การduส่งผ่านพารามิเตอร์ใด ๆ ไปยังสคริปต์

ขนาดทั้งหมดของเคอร์เนลทั้งหมด (ไม่รวมรุ่นที่รันอยู่ในปัจจุบันซึ่งไม่สามารถลบได้) จะแสดงในแถบชื่อเรื่อง

กล่องโต้ตอบใช้ในการแสดงแต่ละเคอร์เนลของวันสุดท้ายการเข้าถึง วันนี้จะได้รับการเขียนทับมวลสำหรับเมล็ดทั้งหมดในระหว่างการสำรองข้อมูลหรือการดำเนินการที่คล้ายกัน ตอนนี้กล่องโต้ตอบจะแสดงวันที่แก้ไขแทน


คุณช่างน่าอัศจรรย์! ขอบคุณมากจริงๆ! คุณทำให้ฉันมีความสุข!
zhartaunik

0

คุณสามารถจัดการกับเมล็ดได้อย่างง่ายดายผ่านตัวจัดการแพคเกจ synaptic แต่ก่อนอื่นคุณควรทราบชื่อเคอร์เนลรีลีสที่ใช้อยู่ในปัจจุบันใน terminal prompt:

linux@linux-desktop:~$ uname -r 4.4.0-75-generic ดังนั้นอย่างน้อยรุ่นนี้คุณควรไม่แตะต้อง เปิด synaptic และเริ่มกรอกตัวยึดตัวกรองด่วนดังที่แสดงด้านล่าง: ป้อนคำอธิบายรูปภาพที่นี่ ตอนนี้คุณสามารถเลือกแพ็คเกจทั้งหมดที่คุณต้องการลบและทำสิ่งต่อไปนี้: ทำเครื่องหมายเพื่อลบอย่างสมบูรณ์ -> นำไปใช้ ฉันขอแนะนำให้เก็บอย่างน้อยเคอร์เนลปัจจุบันและเคอร์เนลก่อนหน้าหนึ่งอัน ตัวอย่างเช่นในกรณีนี้คุณสามารถกำจัดlinux-image-4.4.0-66-genericและlinux-image-extra-4.4.0-66-generic ได้อย่างปลอดภัย แต่เป็นการดีที่จะรักษา4.4.0-72 และแน่นอน4.4.0-75



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.