Precisa liberar espaço na inicialização para atualização, mas não pode limpar os kernels devido a dependências não atendidas [duplicado]

1

Meu problema:

Recebi esta mensagem ao tentar instalar atualizações :

  

A atualização precisa de um total de 176 M de espaço livre no disco '/ boot'. Por favor   liberte pelo menos 176 M adicionais de espaço em disco em '/ boot'. Esvazie seu   lixeira e remover pacotes temporários de antigas instalações usando   'sudo apt-get clean'.

Sobre o meu sistema:

O resultado de cat /etc/fstab parece assim:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/nvme0n1p2 during installation
UUID=30d084a8-283a-4450-b101-c1c60819364a /boot           ext2    defaults        0       2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=B6F8-3AD2  /boot/efi       vfat    umask=0077      0       1
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

O resultado de df -h é assim:

Filesystem                   Size  Used Avail Use% Mounted on
udev                          12G     0   12G   0% /dev
tmpfs                        2,4G  9,8M  2,4G   1% /run
/dev/mapper/ubuntu--vg-root  894G   95G  754G  12% /
tmpfs                         12G  439M   12G   4% /dev/shm
tmpfs                        5,0M  4,0K  5,0M   1% /run/lock
tmpfs                         12G     0   12G   0% /sys/fs/cgroup
/dev/nvme0n1p2               473M  465M     0 100% /boot
/dev/nvme0n1p1               511M  3,4M  508M   1% /boot/efi
cgmfs                        100K     0  100K   0% /run/cgmanager/fs
tmpfs                        2,4G   88K  2,4G   1% /run/user/1000

O resultado de uname -a é assim:

Linux ##### 4.8.0-58-generic #63~16.04.1-Ubuntu SMP Mon Jun 26 18:08:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

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

linux-headers-4.10.0-27
linux-headers-4.10.0-27-generic
linux-headers-4.4.0-78
linux-headers-4.4.0-78-generic-tuxonice
linux-headers-4.4.0-83
linux-headers-4.4.0-83-generic-tuxonice
linux-headers-4.8.0-36
linux-headers-4.8.0-36-generic
linux-headers-4.8.0-53
linux-headers-4.8.0-53-generic
linux-headers-4.8.0-54
linux-headers-4.8.0-54-generic
linux-headers-4.8.0-56
linux-headers-4.8.0-56-generic
linux-image-4.4.0-78-generic-tuxonice
linux-image-4.4.0-83-generic-tuxonice
linux-image-4.8.0-36-generic
linux-image-4.8.0-53-generic
linux-image-4.8.0-54-generic
linux-image-4.8.0-56-generic
linux-image-extra-4.4.0-78-generic-tuxonice
linux-image-extra-4.8.0-36-generic
linux-image-extra-4.8.0-53-generic
linux-image-extra-4.8.0-54-generic
linux-image-extra-4.8.0-56-generic
linux-libc-dev:amd64
linux-signed-image-4.8.0-53-generic
linux-signed-image-4.8.0-54-generic
linux-signed-image-4.8.0-56-generic

O que eu tentei:

De postagens como essas, por exemplo: Como posso liberar mais espaço em / boot?

Suponho que posso remover as seguintes imagens:

linux-image-4.8.0-36-generic
linux-image-4.8.0-53-generic
linux-image-4.8.0-54-generic

com este comando: sudo apt-get purge linux-image-4.8.0-{36,53,54}-generic

Agora tenho as seguintes perguntas:

  1. O resultado de sudo apt-get purge linux-image-4.8.0-{36,53,54}-generic foi este:
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 linux-image-extra-4.10.0-28-generic : Depends: linux-image-4.10.0-28-generic but it is not going to be installed
 linux-image-extra-4.8.0-36-generic : Depends: linux-image-4.8.0-36-generic but it is not going to be installed
 linux-image-extra-4.8.0-53-generic : Depends: linux-image-4.8.0-53-generic but it is not going to be installed
 linux-image-extra-4.8.0-54-generic : Depends: linux-image-4.8.0-54-generic but it is not going to be installed
 linux-image-generic-hwe-16.04 : Depends: linux-image-4.10.0-28-generic but it is not going to be installed
 linux-signed-image-4.10.0-28-generic : Depends: linux-image-4.10.0-28-generic (= 4.10.0-28.32~16.04.2) but it is not going to be installed
 linux-signed-image-4.8.0-53-generic : Depends: linux-image-4.8.0-53-generic (= 4.8.0-53.56~16.04.1) but it is not going to be installed
 linux-signed-image-4.8.0-54-generic : Depends: linux-image-4.8.0-54-generic (= 4.8.0-54.57~16.04.1) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Por que preciso instalar algo quando quero excluir imagens? E como excluo as imagens? Como parece que as imagens ainda estão lá depois que eu digitei o comando dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)//")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*//;/[0-9]/!d'

  1. Também preciso excluir os arquivos com linux-headers-* e linux-signed-image-* ? Por exemplo, se eu excluir linux-image-4.8.0-36-generic , provavelmente não preciso de
linux-headers-4.8.0-36
linux-headers-4.8.0-36-generic
linux-image-extra-4.8.0-36-generic
  1. O Ubuntu não deve manipular a exclusão de kernels desnecessários automaticamente ou qual é a razão pela qual eu tenho que fazer isso manualmente? Eu usei o Ubuntu em uma máquina diferente antes por alguns anos e nunca tive que fazer isso. Agora eu tenho uma nova máquina e, de repente, depois de alguns meses, estou enfrentando esse problema.

    Eu tenho que criptografar meu disco rígido. Poderia ser este o motivo?

ATUALIZAÇÃO:

Eu executei estes comandos:

  • sudo apt-get -f install
  • sudo apt-get clean
  • sudo apt autoremove -f

mas todos resultaram no erro:

Unpacking linux-image-4.10.0-28-generic (4.10.0-28.32~16.04.2) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.10.0-28-generic_4.10.0-28.32~16.04.2_amd64.deb (--unpack):
 cannot copy extracted data for './boot/System.map-4.10.0-28-generic' to '/boot/System.map-4.10.0-28-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error


    dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.10.0-28-generic /boot/vmlinuz-4.10.0-28-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.10.0-28-generic /boot/vmlinuz-4.10.0-28-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-4.10.0-28-generic_4.10.0-28.32~16.04.2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
    
por thadeuszlay 30.07.2017 / 09:41

2 respostas

1

Por que preciso instalar algo quando quero excluir imagens?

Você não precisa instalar algo. Não permitirá que você exclua as imagens, a menos que você exclua as que dependem delas ao mesmo tempo. Por exemplo, você precisa usar:

$ sudo apt-get purge linux-headers-4.4.33-040433* linux-headers-4.4.33-040433-generic* linux-image-4.4.33-040433-generic*
The following packages will be REMOVED:
  linux-headers-4.4.33-040433* linux-headers-4.4.33-040433-generic*
  linux-image-4.4.33-040433-generic*

Para evitar este trabalho manual, experimente o meu script bash que automatiza o processo. Sim, pode ser um plug desavergonhado, mas passei muitas horas em desenvolvimento e ajuste fino e gostaria de ver o maior número possível de usuários.

Eu também tenho que apagar os arquivos com o linux-headers- * e o linux-signed-image - *?

Sim como foi respondido na seção anterior.

O Ubuntu não deve manipular a exclusão dos kernels não necessários automaticamente ou qual é a razão pela qual eu tenho que fazê-lo manualmente?

O Ubuntu remove automaticamente os kernels instalados automaticamente quando você usa:

sudo apt-get autoremove

Se você instalou manualmente um kernel usando uma técnica como esta: Como eu atualizo o kernel para a última versão mainline? então você tem que remover manualmente o kernel também.

Eu tenho que criptografar meu disco rígido. Poderia ser esse o motivo?

Não. Mas eu não criptografaria meu disco rígido.

    
por WinEunuuchs2Unix 31.07.2017 / 01:18
0
  1. A instalação quando você tentou obter o novo kernel falhou do pouco espaço em / boot você primeiro tem que resolver o incompleto esta instalação, como o erro disse, comece executando:

    sudo apt-get -f install

    Em seguida, remova os kernels antigos

  2. apt deve cuidar disso

  3. Você pode remover kernels antigos com:

    sudo apt-get autoremove --purge

    mais informações: RemoveOldKernels

por arturodr 30.07.2017 / 10:43