Как или что я могу удалить из / boot, если он почти заполнен? [дубликат]

Как я могу очистить / загрузить или что я могу удалить, учитывая, что оно почти заполнено, и я продолжаю получать сообщение о том, что осталось всего 5,1 МБ. Потому что, если я перейду к анализатору использования диска, как он говорит, нет открытых для очистки.

Вот содержимое раздела:

username@hostname:~$ ls -l /boot/
total 423041
-rw-r--r-- 1 root root  1443719 Aug  9 07:08 abi-4.10.0-32-generic
-rw-r--r-- 1 root root  1443962 Aug 11 13:59 abi-4.10.0-33-generic
-rw-r--r-- 1 root root  1443962 Sep 13 07:16 abi-4.10.0-35-generic
-rw-r--r-- 1 root root  1407843 Feb  5  2017 abi-4.8.0-36-generic
-rw-r--r-- 1 root root  1408375 Mar 31 14:01 abi-4.8.0-46-generic
-rw-r--r-- 1 root root  1408671 Apr 20 09:07 abi-4.8.0-49-generic
-rw-r--r-- 1 root root  1408813 Jun 14 11:17 abi-4.8.0-56-generic
-rw-r--r-- 1 root root  1408813 Jun 26 17:31 abi-4.8.0-58-generic
-rw-r--r-- 1 root root   204970 Aug  9 07:08 config-4.10.0-32-generic
-rw-r--r-- 1 root root   204970 Aug 11 13:59 config-4.10.0-33-generic
-rw-r--r-- 1 root root   204970 Sep 13 07:16 config-4.10.0-35-generic
-rw-r--r-- 1 root root   199575 Feb  5  2017 config-4.8.0-36-generic
-rw-r--r-- 1 root root   199564 Mar 31 14:01 config-4.8.0-46-generic
-rw-r--r-- 1 root root   199588 Apr 20 09:07 config-4.8.0-49-generic
-rw-r--r-- 1 root root   199564 Jun 14 11:17 config-4.8.0-56-generic
-rw-r--r-- 1 root root   199564 Jun 26 17:31 config-4.8.0-58-generic
drwxr-xr-x 3 root root     1024 Apr  9 12:00 efi
drwxr-xr-x 5 root root     1024 Sep 20 05:03 grub
-rw-r--r-- 1 root root 42058341 Aug 28 10:57 initrd.img-4.10.0-32-generic
-rw-r--r-- 1 root root 42056847 Aug 29 02:58 initrd.img-4.10.0-33-generic
-rw-r--r-- 1 root root 42056820 Sep 20 05:03 initrd.img-4.10.0-35-generic
-rw-r--r-- 1 root root 40647942 Aug 28 10:56 initrd.img-4.8.0-36-generic
-rw-r--r-- 1 root root 40638652 Aug 28 10:55 initrd.img-4.8.0-46-generic
-rw-r--r-- 1 root root 40637975 Aug 28 10:55 initrd.img-4.8.0-49-generic
-rw-r--r-- 1 root root 40644972 Aug 28 10:55 initrd.img-4.8.0-56-generic
-rw-r--r-- 1 root root 40643997 Aug 28 10:55 initrd.img-4.8.0-58-generic
drwx------ 2 root root    12288 Apr  9 12:00 lost+found
-rw-r--r-- 1 root root   182704 Jan 28  2016 memtest86+.bin
-rw-r--r-- 1 root root   184380 Jan 28  2016 memtest86+.elf
-rw-r--r-- 1 root root   184840 Jan 28  2016 memtest86+_multiboot.bin
-rw------- 1 root root  3718993 Aug  9 07:08 System.map-4.10.0-32-generic
-rw------- 1 root root  3721812 Aug 11 13:59 System.map-4.10.0-33-generic
-rw------- 1 root root  3721891 Sep 13 07:16 System.map-4.10.0-35-generic
-rw------- 1 root root  4060748 Feb  5  2017 System.map-4.8.0-36-generic
-rw------- 1 root root  4066103 Mar 31 14:01 System.map-4.8.0-46-generic
-rw------- 1 root root  4066773 Apr 20 09:07 System.map-4.8.0-49-generic
-rw------- 1 root root  4068016 Jun 14 11:17 System.map-4.8.0-56-generic
-rw------- 1 root root  4068043 Jun 26 17:32 System.map-4.8.0-58-generic
-rw------- 1 root root  7398816 Aug  9 07:08 vmlinuz-4.10.0-32-generic
-rw------- 1 root root  7404416 Aug 11 13:59 vmlinuz-4.10.0-33-generic
-rw------- 1 root root  7405152 Sep 13 07:16 vmlinuz-4.10.0-35-generic
-rw-r--r-- 1 root root  7297312 Apr  9 12:08 vmlinuz-4.8.0-36-generic
-rw------- 1 root root  7305856 Mar 31 14:01 vmlinuz-4.8.0-46-generic
-rw------- 1 root root  7305856 Apr 20 09:07 vmlinuz-4.8.0-49-generic
-rw------- 1 root root  7309536 Jun 14 11:17 vmlinuz-4.8.0-56-generic
-rw------- 1 root root  7310848 Jun 26 17:31 vmlinuz-4.8.0-58-generic
username@hostname:~$ 
2
задан 22 September 2017 в 09:44

1 ответ

Вот сценарий, который делает это автоматически.

Самый легкий способ разрешить пространство в начальной загрузке / состоит в том, чтобы избавиться от старых и неиспользованных ядер. I't, важный при удалении ядер, чтобы никогда удалить ядро, которое Вы в настоящее время используете (сверяются с uname-r) и Вы не хотите удалять новейшее ядро иначе, Вы загрузите его снова в следующий раз, когда Вы обновляете.

Каждое ядро и дисковые ресурсы, связанные с ним, поднимают приблизительно 50 МБ пространства. Вы также хотите удалить ядра с помощью только способную чистку, потому что она удаляет зависимости и обновляет личинку в конце. Вы видите список установленных ядер с помощью dpkg-l | grep изображение Linux.

Автоудалите не всегда получает все старые ядра.

#!/bin/bash

# create the clean-boot command line utility, if it doesn't exist
if [ ! -f /usr/sbin/clean-boot ]; then
    cp "$0" /usr/sbin/clean-boot
    chown root.root /usr/sbin/clean-boot
    chmod 0770 /usr/sbin/clean-boot
fi

# add clean-boot cron job to root's crontab, if it doesn't exist
if [[  `crontab -l | grep "/usr/sbin/clean-boot" | wc -l` -eq 0 ]]; then    
    (crontab -l 2>/dev/null; echo "0 10 * * 3,4 /usr/sbin/clean-boot") | crontab -
fi


# array of kernels installed on the system
kernels=($(dpkg --list | grep 'linux-image-[0-9]' | awk '{ print $2 }'))

# kernel currently being used by the system 
current_kernel=linux-image-`uname -r`

# newest kernel installed (currently being initialized to current_kernel)
newest_kernel=$current_kernel


# for loop below used to find the newest insitalled kernel
for i in "${kernels[@]}"
do

    # since newest is initialized to current, there is no need to parse through kernels same version as the one currently loaded
    if [[ $i != $current_kernel*  ]]; then

        # each iteration of the for loop is for each version number (kernel version, major, minor, incidental numbers) example 4.8.0-56-generic
        for counter in 1 2 3 4
        do

            # if statement extracts the version numbers
            if [[ $counter -lt 3 ]]; then

                compare_number=$(echo ${i#"linux-image-"} | cut -d'.' -f$counter)
                newest_number=$(echo  ${newest_kernel#"linux-image-"} | cut -d'.' -f$counter)

            elif [[ $counter -eq 3 ]]; then

                compare_number=$(echo ${i#"linux-image-"} | cut -d'.' -f$counter)
                newest_number=$(echo  ${newest_kernel#"linux-image-"} | cut -d'.' -f$counter)

                compare_number=$(echo ${compare_number} | cut -d'-' -f1)
                newest_number=$(echo  ${newest_number} | cut -d'-' -f1)             

            else

                compare_number=$(echo ${i#"linux-image-"} | cut -d'-' -f2)
                newest_number=$(echo  ${newest_kernel#"linux-image-"} | cut -d'-' -f2)

            fi

            # this if statement does the comparison
            if [[ $compare_number -eq $newest_number ]]; then
                continue
            elif [[ $compare_number -lt $newest_number ]]; then
                break
            else
                newest_kernel=$i
                break
            fi

        done

    fi

done


# for every kernel
for i in "${kernels[@]}"
do

    # delete the kernel if the kernel is not the one in use and is not the newest one installed
    if [[ $i != $current_kernel* && $i != $newest_kernel* ]]; then

        apt-get purge "$i" -y

    fi 

done
1
ответ дан 22 September 2017 в 09:44

Другие вопросы по тегам:

Похожие вопросы: