Unable to remove kernel

helio

Member
Nov 17, 2022
39
2
13
Hi im trying to remove old kernel,but i m unable.Here is the error.
Code:
root@proxmox:~# apt purge proxmox-kernel-6.14.11-4-pve-signed
REMOVING:                       
  proxmox-kernel-6.14.11-4-pve-signed*  proxmox-kernel-6.8.12-12-pve-signed

Summary:
  Upgrading: 0, Installing: 0, Removing: 2, Not Upgrading: 0
  8 not fully installed or removed.
  Freed space: 1,208 MB

Continue? [Y/n] Y
(Reading database ... 259419 files and directories currently installed.)
Removing proxmox-kernel-6.8.12-12-pve-signed (6.8.12-12) ...
Examining /etc/kernel/postrm.d.
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
update-initramfs: Deleting /boot/initrd.img-6.8.12-12-pve
run-parts: executing /etc/kernel/postrm.d/proxmox-auto-removal 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
run-parts: executing /etc/kernel/postrm.d/zz-proxmox-boot 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
Re-executing '/etc/kernel/postrm.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/cmdline found - falling back to /proc/cmdline
Copying and configuring kernels on /dev/disk/by-uuid/665C-E3E3
        Copying kernel 6.17.13-9-pve
cp: error writing '/var/tmp/espmounts/665C-E3E3/initrd.img-6.17.13-9-pve': No space left on device
run-parts: /etc/kernel/postrm.d/zz-proxmox-boot exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/proxmox-kernel-6.8.12-12-pve-signed.postrm line 15.
dpkg: error processing package proxmox-kernel-6.8.12-12-pve-signed (--remove):
 installed proxmox-kernel-6.8.12-12-pve-signed package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 proxmox-kernel-6.8.12-12-pve-signed
Processing was halted because there were too many errors.
Error: Sub-process /usr/bin/dpkg returned an error code (1)

Any suggestions? Thansk
 
Thanks,
I try to run "apt purge ~c" but it did not help
Code:
root@proxmox:~# apt purge ~c
REMOVING:                     
  libglib2.0-0*                         proxmox-kernel-6.8.12-12-pve-signed   proxmox-kernel-6.8.12-8-pve-signed*
  libgtk-3-0*                           proxmox-kernel-6.8.12-13-pve-signed*  proxmox-kernel-6.8.12-9-pve-signed*
  libmagic1*                            proxmox-kernel-6.8.12-14-pve-signed*  pve-kernel-helper*
  libpython3.11-minimal*                proxmox-kernel-6.8.12-15-pve-signed*  python3.11-minimal*
  libzfs6linux*                         proxmox-kernel-6.8.12-4-pve-signed*   sgml-base*
  proxmox-kernel-6.8.12-10-pve-signed*  proxmox-kernel-6.8.12-5-pve-signed*   usrmerge*
  proxmox-kernel-6.8.12-11-pve-signed*  proxmox-kernel-6.8.12-7-pve-signed*

Summary:
  Upgrading: 0, Installing: 0, Removing: 20, Not Upgrading: 0
  8 not fully installed or removed.
  Freed space: 577 MB

Continue? [Y/n] Y
(Reading database ... 259419 files and directories currently installed.)
Removing proxmox-kernel-6.8.12-12-pve-signed (6.8.12-12) ...
Examining /etc/kernel/postrm.d.
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
update-initramfs: Deleting /boot/initrd.img-6.8.12-12-pve
run-parts: executing /etc/kernel/postrm.d/proxmox-auto-removal 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
run-parts: executing /etc/kernel/postrm.d/zz-proxmox-boot 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
Re-executing '/etc/kernel/postrm.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/cmdline found - falling back to /proc/cmdline
Copying and configuring kernels on /dev/disk/by-uuid/665C-E3E3
        Copying kernel 6.17.13-9-pve
cp: error writing '/var/tmp/espmounts/665C-E3E3/initrd.img-6.17.13-9-pve': No space left on device
run-parts: /etc/kernel/postrm.d/zz-proxmox-boot exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/proxmox-kernel-6.8.12-12-pve-signed.postrm line 15.
dpkg: error processing package proxmox-kernel-6.8.12-12-pve-signed (--remove):
 installed proxmox-kernel-6.8.12-12-pve-signed package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 proxmox-kernel-6.8.12-12-pve-signed
Processing was halted because there were too many errors.
Warning: Can not find PkgVer for 'libglib2.0-0'
Warning: Can not find PkgVer for 'libgtk-3-0'
Warning: Can not find PkgVer for 'libmagic1'
Warning: Can not find PkgVer for 'libpython3.11-minimal'
Warning: Can not find PkgVer for 'libzfs6linux'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-10-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-11-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-13-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-14-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-15-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-4-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-5-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-7-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-8-pve-signed'
Warning: Can not find PkgVer for 'proxmox-kernel-6.8.12-9-pve-signed'
Warning: Can not find PkgVer for 'pve-kernel-helper'
Warning: Can not find PkgVer for 'python3.11-minimal'
Warning: Can not find PkgVer for 'sgml-base'
Warning: Can not find PkgVer for 'usrmerge'
Error: Sub-process /usr/bin/dpkg returned an error code (1)

How did you manage to fix it? In your case was just "apt purge ~c" sufficient?

I have mount efi.
Here is its content.
Efi.jpg

is it safe just remove *initrd.img-6.17.13-2-pve ?
Thanks
 
Last edited:
No, apt purge ~c is just for purging packages for which only configuration files are left. It was not the main topic in that thread. ;)

To clear out space on the EFI partition you need to purge some actual old kernels that are stored there. Can you post the ouput of dpkg -l | grep proxmox-kernel and tell which ones of those you want to keep? And also post the output of uname -a to know the running kernel.
 
No, apt purge ~c is just for purging packages for which only configuration files are left. It was not the main topic in that thread. ;)

To clear out space on the EFI partition you need to purge some actual old kernels that are stored there. Can you post the ouput of dpkg -l | grep proxmox-kernel and tell which ones of those you want to keep? And also post the output of uname -a to know the running kernel.
Thanks for taking your time.
here is dpkg -l | grep proxmox-kernel
Code:
root@proxmox:~# dpkg -l | grep proxmox-kernel
iU  proxmox-kernel-6.14                  6.14.11-9                            all          Latest Proxmox Kernel Image
ii  proxmox-kernel-6.14.11-4-pve-signed  6.14.11-4                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.14.11-5-pve-signed  6.14.11-5                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.14.11-6-pve-signed  6.14.11-6                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.14.11-7-pve-signed  6.14.11-7                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.14.11-8-pve-signed  6.14.11-8                            amd64        Proxmox Kernel Image (signed)
iF  proxmox-kernel-6.14.11-9-pve-signed  6.14.11-9                            amd64        Proxmox Kernel Image (signed)
iU  proxmox-kernel-6.17                  6.17.13-9                            amd64        Latest Proxmox Kernel Image
ii  proxmox-kernel-6.17.13-1-pve-signed  6.17.13-1                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.13-2-pve-signed  6.17.13-2                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.13-4-pve-signed  6.17.13-4                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.13-6-pve-signed  6.17.13-6                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.13-7-pve-signed  6.17.13-7                            amd64        Proxmox Kernel Image (signed)
iF  proxmox-kernel-6.17.13-9-pve-signed  6.17.13-9                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.2-1-pve-signed   6.17.2-1                             amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.2-2-pve-signed   6.17.2-2                             amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.4-1-pve-signed   6.17.4-1                             amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.4-2-pve-signed   6.17.4-2                             amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17.9-1-pve-signed   6.17.9-1                             amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.8                   6.8.12-16                            all          Latest Proxmox Kernel Image
ic  proxmox-kernel-6.8.12-10-pve-signed  6.8.12-10                            amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-11-pve-signed  6.8.12-11                            amd64        Proxmox Kernel Image (signed)
rH  proxmox-kernel-6.8.12-12-pve-signed  6.8.12-12                            amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-13-pve-signed  6.8.12-13                            amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-14-pve-signed  6.8.12-14                            amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-15-pve-signed  6.8.12-15                            amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.8.12-16-pve-signed  6.8.12-16                            amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-4-pve-signed   6.8.12-4                             amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-5-pve-signed   6.8.12-5                             amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-7-pve-signed   6.8.12-7                             amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-8-pve-signed   6.8.12-8                             amd64        Proxmox Kernel Image (signed)
ic  proxmox-kernel-6.8.12-9-pve-signed   6.8.12-9                             amd64        Proxmox Kernel Image (signed)
iU  proxmox-kernel-7.0                   7.0.2-4                              amd64        Latest Proxmox Kernel Image
ii  proxmox-kernel-7.0.0-3-pve-signed    7.0.0-3                              amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-7.0.2-2-pve-signed    7.0.2-2                              amd64        Proxmox Kernel Image (signed)
iF  proxmox-kernel-7.0.2-4-pve-signed    7.0.2-4                              amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-helper                9.0.4                                all          Function for various kernel maintenance tasks.
root@proxmox:~#
and uname -a
Code:
root@proxmox:~# uname -a
Linux proxmox 7.0.2-2-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.2-2 (2026-05-08T06:08Z) x86_64 GNU/Linux
root@proxmox:~#
 
If everything else fails, you can format and init the ESP(s) again: https://pve.proxmox.com/pve-docs/pve-admin-guide.html#sysboot
But removing some of the old version files, now that you have mounted the ESP, might be the simpler fi
Sorry missed your post. So i could just remove
*initrd.img-6.17.13-2-pve
*initrd.img-6.17.13-7-pve
*initrd.img-6.17.13-9-pve
*vmlinuz-6.17.13-2-pve
*vmlinuz-6.17.13-7-pve
*vmlinuz-6.17.13-9-pve

and after removing skall i run apt purge ~c ?
Thanks
 
is it safe just remove *initrd.img-6.17.13-2-pve ?
Don't manually delete stuff from the EFI partition, it will be recreated when you run apt again.
You currently somehow have 5 kernels+initrds installed on your EFI. Asuming you have a 512MB EFI partition, this is too much.

First go for apt purge proxmox-kernel-6.17.13-2-pve-signed, that should clear out space on the EFI and the apt command should finish.

Then you can purge all the kernels you don't need anymore and are somehow still installed on your system. For example:
apt purge proxmox-kernel-6.8*
apt purge proxmox-kernel-6.14*
apt purge proxmox-kernel-6.17.2*
etc.

apt purge ~c is a nice final step to also purge all the packages that were already removed before, but only have config files remaining.
 
Last edited:
Don't manually delete stuff from the EFI partition, it will be recreated when you run apt again.
You currently somehow have 5 kernels+initrds installed on your EFI. Asuming you have a 512MB EFI partition, this is too much.

First go for apt purge proxmox-kernel-6.17.13-2-pve-signed, that should clear out space on the EFI and the apt command should finish.
Code:
root@proxmox:~# apt purge proxmox-kernel-6.17.13-2-pve-signed
REMOVING:                       
  proxmox-kernel-6.17.13-2-pve-signed*  proxmox-kernel-6.8.12-12-pve-signed

Summary:
  Upgrading: 0, Installing: 0, Removing: 2, Not Upgrading: 0
  8 not fully installed or removed.
  Freed space: 1,568 MB

Continue? [Y/n] Y
(Reading database ... 259419 files and directories currently installed.)
Removing proxmox-kernel-6.8.12-12-pve-signed (6.8.12-12) ...
Examining /etc/kernel/postrm.d.
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
update-initramfs: Deleting /boot/initrd.img-6.8.12-12-pve
run-parts: executing /etc/kernel/postrm.d/proxmox-auto-removal 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
run-parts: executing /etc/kernel/postrm.d/zz-proxmox-boot 6.8.12-12-pve /boot/vmlinuz-6.8.12-12-pve
Re-executing '/etc/kernel/postrm.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/cmdline found - falling back to /proc/cmdline
Copying and configuring kernels on /dev/disk/by-uuid/665C-E3E3
        Copying kernel 6.17.13-9-pve
cp: error writing '/var/tmp/espmounts/665C-E3E3/initrd.img-6.17.13-9-pve': No space left on device
run-parts: /etc/kernel/postrm.d/zz-proxmox-boot exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/proxmox-kernel-6.8.12-12-pve-signed.postrm line 15.
dpkg: error processing package proxmox-kernel-6.8.12-12-pve-signed (--remove):
 installed proxmox-kernel-6.8.12-12-pve-signed package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 proxmox-kernel-6.8.12-12-pve-signed
Processing was halted because there were too many errors.
Error: Sub-process /usr/bin/dpkg returned an error code (1)
root@proxmox:~#

Then you can purge all the kernels you don't need anymore and are somehow still installed on your system. For example:
apt purge proxmox-kernel-6.8*
apt purge proxmox-kernel-6.14*
apt purge proxmox-kernel-6.17.2*
etc.
sorry but does not work.
 
Ok, another problem is the rH state (removed, half-installed) of proxmox-kernel-6.8.12-12-pve-signed.
The post removal script for that kernel also seems to fail because your EFI is full so it's a bit chicken and egg.

If you only want to keep 7.0* kernels, apt purge proxmox-kernel-6.* might be the quickest solution. I am curious if apt wants to purge the rH too. If not, then that is to be done separately first.
 
Ok, another problem is the rH state (removed, half-installed) of proxmox-kernel-6.8.12-12-pve-signed.
The post removal script for that kernel also seems to fail because your EFI is full so it's a bit chicken and egg.

If you only want to keep 7.0* kernels, apt purge proxmox-kernel-6.* might be the quickest solution. I am curious if apt wants to purge the rH too. If not, then that is to be done separately first.
I tried apt purge proxmox-kernel-6.*
But it did no work.
I
Code:
root@proxmox:~# apt purge proxmox-kernel-6.*

REMOVING:
  proxmox-kernel-6.14*                  proxmox-kernel-6.17.4-1-pve-signed*
  proxmox-kernel-6.14.11-4-pve-signed*  proxmox-kernel-6.17.4-2-pve-signed*
  proxmox-kernel-6.14.11-5-pve-signed*  proxmox-kernel-6.17.9-1-pve-signed*
  proxmox-kernel-6.14.11-6-pve-signed*  proxmox-kernel-6.8*
  proxmox-kernel-6.14.11-7-pve-signed*  proxmox-kernel-6.8.12-10-pve-signed*
  proxmox-kernel-6.14.11-8-pve-signed*  proxmox-kernel-6.8.12-11-pve-signed*
  proxmox-kernel-6.14.11-9-pve-signed*  proxmox-kernel-6.8.12-12-pve-signed
  proxmox-kernel-6.17*                  proxmox-kernel-6.8.12-13-pve-signed*
  proxmox-kernel-6.17.13-1-pve-signed*  proxmox-kernel-6.8.12-14-pve-signed*
  proxmox-kernel-6.17.13-2-pve-signed*  proxmox-kernel-6.8.12-15-pve-signed*
  proxmox-kernel-6.17.13-4-pve-signed*  proxmox-kernel-6.8.12-16-pve-signed*
  proxmox-kernel-6.17.13-6-pve-signed*  proxmox-kernel-6.8.12-4-pve-signed*
  proxmox-kernel-6.17.13-7-pve-signed*  proxmox-kernel-6.8.12-5-pve-signed*
  proxmox-kernel-6.17.13-9-pve-signed*  proxmox-kernel-6.8.12-7-pve-signed*
  proxmox-kernel-6.17.2-1-pve-signed*   proxmox-kernel-6.8.12-8-pve-signed*
  proxmox-kernel-6.17.2-2-pve-signed*   proxmox-kernel-6.8.12-9-pve-signed*

Summary:
  Upgrading: 0, Installing: 0, Removing: 32, Not Upgrading: 0
  8 not fully installed or removed.
  Freed space: 15.8 GB

Continue? [Y/n] Y
(Reading database ... 259419 files and directories currently installed.)
Removing proxmox-kernel-6.14 (6.14.11-9) ...
Removing proxmox-kernel-6.14.11-9-pve-signed (6.14.11-9) ...
Examining /etc/kernel/postrm.d.
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 6.14.11-9-pve /boot/vmlinuz-6.14.11-9-pve
update-initramfs: Deleting /boot/initrd.img-6.14.11-9-pve
run-parts: executing /etc/kernel/postrm.d/proxmox-auto-removal 6.14.11-9-pve /boot/vmlinuz-6.14.11-9-pve
run-parts: executing /etc/kernel/postrm.d/zz-proxmox-boot 6.14.11-9-pve /boot/vmlinuz-6.14.11-9-pve
Re-executing '/etc/kernel/postrm.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/cmdline found - falling back to /proc/cmdline
Copying and configuring kernels on /dev/disk/by-uuid/665C-E3E3
        Copying kernel 7.0.2-2-pve
        Copying kernel 7.0.2-4-pve
cp: error writing '/var/tmp/espmounts/665C-E3E3/vmlinuz-7.0.2-4-pve': No space left on device
run-parts: /etc/kernel/postrm.d/zz-proxmox-boot exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/proxmox-kernel-6.14.11-9-pve-signed.postrm line 15.
dpkg: error processing package proxmox-kernel-6.14.11-9-pve-signed (--remove):
 installed proxmox-kernel-6.14.11-9-pve-signed package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 proxmox-kernel-6.14.11-9-pve-signed
Processing was halted because there were too many errors.
Error: Sub-process /usr/bin/dpkg returned an error code (1)
root@proxmox:~#
 
Ok, too bad. In case you only want to keep the 7.0 kernels you can mount your efi partition and manually remove all the 6.x initrd.img and vmlinuz files there to make space so the apt process can complete.

mount /dev/disk/by-uuid/665C-E3E3 /mnt/efi
rm /mnt/efi/initrd.img-6*
rm /mnt/efi/vmlinuz-6*

Then do a check to see if the efi partition now actually has space with df -h /mnt/efi
And more elaborate: du -ah /mnt/efi to show all files on the efi partition and their sizes.

Then umount /mnt/efi and apt purge proxmox-kernel-6.* again.

If all went ok, your dpkg -l | grep proxmox-kernel should only show 7.0 kernel packages at this stage.

Also check proxmox-boot-tool status to show the resulting boot configuration.
 
Last edited:
  • Like
Reactions: helio
Ok, too bad. In case you only want to keep the 7.0 kernels you can mount your efi partition and manually remove all the 6.x initrd.img and vmlinuz files there to make space so the apt process can complete.

mount /dev/disk/by-uuid/665C-E3E3 /mnt/efi
rm /mnt/efi/initrd.img-6*
rm /mnt/efi/vmlinuz-6*

Then do a check to see if the efi partition now actually has space with df -h /mnt/efi
And more elaborate: du -ah /mnt/efi to show all files on the efi partition and their sizes.

Then umount /mnt/efi and apt purge proxmox-kernel-6.* again.

If all went ok, your dpkg -l | grep proxmox-kernel should only show 7.0 kernel packages at this stage.

Also check proxmox-boot-tool status to show the resulting boot configuration.
THANKS it worked.