[SOLVED] [PVE 9] How to clean up remnants of old, uninstalled kernels in /boot? Initramfs throwing warnings when updated.

Sep 1, 2022
585
219
68
42
Hello,

I need some help cleaning up some random leftovers from old, uninstalled kernels, as well as cleanly uninstalling one that I don't want anymore.
I'm using ZFS/systemd-boot on the boot partition, if that matters.

I've only got a couple of 7.0 kernels installed that I'm actively using. A very old version of 6.17 is still installed and available, as well. That's the one I want to get rid of properly.

And it looks like apt's auto remove feature hasn't been cleanly uninstalling the old kernels.
Code:
root@andromeda2:/boot# apt search proxmox-kernel-6 | grep -i "installed"

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
proxmox-kernel-6.14/stable,now 6.14.11-9 all [installed,automatic]
proxmox-kernel-6.14.11-9-pve-signed/stable,now 6.14.11-9 amd64 [installed,automatic]
proxmox-kernel-6.17/stable,now 6.17.13-21 amd64 [installed,automatic]
proxmox-kernel-6.17.13-21-pve-signed/stable,now 6.17.13-21 amd64 [installed,automatic]
proxmox-kernel-6.5.13-5-pve/now 6.5.13-5 amd64 [installed,local]
proxmox-kernel-6.5.13-6-pve-signed/now 6.5.13-6 amd64 [installed,local]
proxmox-kernel-6.8/now 6.8.12-13 all [installed,local]
proxmox-kernel-6.8.12-13-pve-signed/now 6.8.12-13 amd64 [installed,local]
proxmox-kernel-6.8.4-2-pve-signed/now 6.8.4-2 amd64 [installed,local]

Proxmox Boot Tool sees things very differently.
Code:
root@andromeda2:~# proxmox-boot-tool kernel list
Manually selected kernels:
None.

Automatically selected kernels:
6.17.13-21-pve
7.0.14-17-pve
7.0.14-19-pve

At the same time, there's a ton of junk in my /boot directory from kernels that aren't installed anymore (and in some cases, haven't been installed for a very, very long time):
Code:
root@andromeda2:/boot# ls
root@andromeda2:/boot# ls | column
config-6.14.11-9-pve            config-7.0.14-17-pve            initrd.img-6.5.13-5-pve         memtest86+ia32.bin              System.map-6.17.13-21-pve       System.map-7.0.14-19-pve        vmlinuz-6.8.4-2-pve
config-6.17.13-21-pve           config-7.0.14-19-pve            initrd.img-6.5.13-6-pve         memtest86+ia32.efi              System.map-6.5.13-5-pve         vmlinuz-6.14.11-9-pve           vmlinuz-7.0.14-17-pve
config-6.5.13-5-pve             efi                             initrd.img-6.8.12-13-pve        memtest86+x64.bin               System.map-6.5.13-6-pve         vmlinuz-6.17.13-21-pve          vmlinuz-7.0.14-19-pve
config-6.5.13-6-pve             grub                            initrd.img-6.8.4-2-pve          memtest86+x64.efi               System.map-6.8.12-13-pve        vmlinuz-6.5.13-5-pve
config-6.8.12-13-pve            initrd.img-6.14.11-9-pve        initrd.img-7.0.14-17-pve        pve                             System.map-6.8.4-2-pve          vmlinuz-6.5.13-6-pve
config-6.8.4-2-pve              initrd.img-6.17.13-21-pve       initrd.img-7.0.14-19-pve        System.map-6.14.11-9-pve        System.map-7.0.14-17-pve        vmlinuz-6.8.12-13-pve

update-initramfs -u -k is currently throwing a ton of warnings about missing/incomplete kernels that it's unable to build when it's run, which I'm assuming is because of the leftovers in /boot telling it to try to build things that aren't really fully installed or buildable anymore.

That said, I don't understand how the contents of the /boot directory work well enough to just start guessing at what to delete.

Questions:

  1. I want to uninstall all the kernels prior to 7.0 (I'm on PVE 9.2). What's the safest way to do that?
  2. Is there anywhere else I should be looking for orphan kernel files?
 
Those files in /boot look like they belong to kernels that are still installed.
Your apt search shows 6.5, 6.8, 6.14 and 6.17 as [installed]. The 6.5/6.8 ones are manually installed (local), so autoremove skips them.
proxmox-boot-tool kernel list only shows what gets synced to the ESP, which is why it looks different.

To check what dpkg owns:

uname -r # make sure you're booted into a 7.0 kernel first
dpkg -l 'proxmox-kernel*' 'pve-kernel*' 'proxmox-headers*' 'pve-headers*'
for f in /boot/vmlinuz-*; do dpkg -S "$f"; done

To remove the old ones properly, purge the packages rather than deleting files by hand:

Code:
apt purge proxmox-kernel-6.5.13-5-pve proxmox-kernel-6.5.13-6-pve-signed \
  proxmox-kernel-6.8.4-2-pve-signed proxmox-kernel-6.8.12-13-pve-signed \
  proxmox-kernel-6.8 proxmox-kernel-6.14 proxmox-kernel-6.14.11-9-pve-signed \
  proxmox-kernel-6.17 proxmox-kernel-6.17.13-21-pve-signed

Read apt’s plan before confirming. proxmox-ve, proxmox-default-kernel and your 7.0 kernel packages must not be in the removal list. Purging runs the removal hooks, which delete the initrd and refresh the boot partition. Afterwards:

Code:
proxmox-boot-tool refresh
proxmox-boot-tool kernel list
proxmox-boot-tool status

For other places to look:
  • ls /lib/modules for directories of kernels no longer installed
  • ls /var/lib/initramfs-tools for stale per-version files
  • dpkg -l | grep '^rc' for removed-but-not-purged kernel packages
Also, can you paste the actual update-initramfs warnings?


Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
Thanks, @bbgeek17 ! There are definitely more kernels still installed than I thought before I started this thread. It's awfully nice of my PVE node to still be working after I apparently maimed it a bit.

I misunderstood how proxmox-boot-tool generated its list and didn't know about the distinction for apt autoremove, so I thought that if kernels didn't show up in proxmox-boot-tool, they weren't installed.

Now, it makes more sense how I got here. I likely manually installed 6.5/6.8 a long time ago; I don't even remember when I switched to/away from them when i was running PVE 8. There was a period where I was manually installing kernels to use the the i915 SR-IOV DKMS driver. Luckily, that DKMS driver is synced to current PVE kernels now, so I don't have to do that.

Here are the warnings I'm getting:
Code:
root@andromeda2:~# update-initramfs -u -k all

… Happy kernels removed …

update-initramfs: Generating /boot/initrd.img-6.14.11-9-pve
W: missing /lib/modules/6.14.11-9-pve
W: Ensure all necessary drivers are built into the linux image!
depmod: ERROR: could not open directory /lib/modules/6.14.11-9-pve: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
W: Can't find modules.builtin.modinfo (for locating built-in drivers' firmware, supported in Linux >=5.2)
cat: /var/tmp/mkinitramfs_hxvOqU/lib/modules/6.14.11-9-pve/modules.builtin: No such file or directory
depmod: WARNING: could not open modules.order at /var/tmp/mkinitramfs_hxvOqU/lib/modules/6.14.11-9-pve: No such file or directory
depmod: WARNING: could not open modules.builtin at /var/tmp/mkinitramfs_hxvOqU/lib/modules/6.14.11-9-pve: No such file or directory
depmod: WARNING: could not open modules.builtin.modinfo at /var/tmp/mkinitramfs_hxvOqU/lib/modules/6.14.11-9-pve: No such file or directory
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..

… Happy kernels removed …

update-initramfs: Generating /boot/initrd.img-6.8.12-13-pve
W: missing /lib/modules/6.8.12-13-pve
W: Ensure all necessary drivers are built into the linux image!
depmod: ERROR: could not open directory /lib/modules/6.8.12-13-pve: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
W: Can't find modules.builtin.modinfo (for locating built-in drivers' firmware, supported in Linux >=5.2)
cat: /var/tmp/mkinitramfs_2l6zm1/lib/modules/6.8.12-13-pve/modules.builtin: No such file or directory
depmod: WARNING: could not open modules.order at /var/tmp/mkinitramfs_2l6zm1/lib/modules/6.8.12-13-pve: No such file or directory
depmod: WARNING: could not open modules.builtin at /var/tmp/mkinitramfs_2l6zm1/lib/modules/6.8.12-13-pve: No such file or directory
depmod: WARNING: could not open modules.builtin.modinfo at /var/tmp/mkinitramfs_2l6zm1/lib/modules/6.8.12-13-pve: No such file or directory

Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..

… Happy kernels removed …

update-initramfs: Generating /boot/initrd.img-6.8.4-2-pve
W: missing /lib/modules/6.8.4-2-pve
W: Ensure all necessary drivers are built into the linux image!
depmod: ERROR: could not open directory /lib/modules/6.8.4-2-pve: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
W: Can't find modules.builtin.modinfo (for locating built-in drivers' firmware, supported in Linux >=5.2)
cat: /var/tmp/mkinitramfs_CjnAQy/lib/modules/6.8.4-2-pve/modules.builtin: No such file or directory
depmod: WARNING: could not open modules.order at /var/tmp/mkinitramfs_CjnAQy/lib/modules/6.8.4-2-pve: No such file or directory
depmod: WARNING: could not open modules.builtin at /var/tmp/mkinitramfs_CjnAQy/lib/modules/6.8.4-2-pve: No such file or directory
depmod: WARNING: could not open modules.builtin.modinfo at /var/tmp/mkinitramfs_CjnAQy/lib/modules/6.8.4-2-pve: No such file or directory
Running hook script 'zz-proxmox-boot'..

Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..

… Happy kernels removed …

update-initramfs: Generating /boot/initrd.img-6.5.13-6-pve
W: missing /lib/modules/6.5.13-6-pve
W: Ensure all necessary drivers are built into the linux image!
depmod: ERROR: could not open directory /lib/modules/6.5.13-6-pve: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
W: Can't find modules.builtin.modinfo (for locating built-in drivers' firmware, supported in Linux >=5.2)
cat: /var/tmp/mkinitramfs_xhPVF5/lib/modules/6.5.13-6-pve/modules.builtin: No such file or directory
depmod: WARNING: could not open modules.order at /var/tmp/mkinitramfs_xhPVF5/lib/modules/6.5.13-6-pve: No such file or directory
depmod: WARNING: could not open modules.builtin at /var/tmp/mkinitramfs_xhPVF5/lib/modules/6.5.13-6-pve: No such file or directory
depmod: WARNING: could not open modules.builtin.modinfo at /var/tmp/mkinitramfs_xhPVF5/lib/modules/6.5.13-6-pve: No such file or directory
Running hook script 'zz-proxmox-boot'..

Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..

… Happy kernels removed …

update-initramfs: Generating /boot/initrd.img-6.5.13-5-pve
W: missing /lib/modules/6.5.13-5-pve
W: Ensure all necessary drivers are built into the linux image!
depmod: ERROR: could not open directory /lib/modules/6.5.13-5-pve: No such file or directory
depmod: FATAL: could not search modules: No such file or directory
W: Can't find modules.builtin.modinfo (for locating built-in drivers' firmware, supported in Linux >=5.2)
cat: /var/tmp/mkinitramfs_ja5wha/lib/modules/6.5.13-5-pve/modules.builtin: No such file or directory
depmod: WARNING: could not open modules.order at /var/tmp/mkinitramfs_ja5wha/lib/modules/6.5.13-5-pve: No such file or directory
depmod: WARNING: could not open modules.builtin at /var/tmp/mkinitramfs_ja5wha/lib/modules/6.5.13-5-pve: No such file or directory
depmod: WARNING: could not open modules.builtin.modinfo at /var/tmp/mkinitramfs_ja5wha/lib/modules/6.5.13-5-pve: No such file or directory
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..

… Happy kernels removed …

Months ago, I did manually delete a bunch of /lib/modules/* directories for kernels that I mistakenly thought weren't installed anymore, so now that I know they're still there, the errors make sense, too. Lots of files would be missing.
 
Dpkg status:
Code:
root@andromeda2:~# uname -r # make sure you're booted into a 7.0 kernel first
dpkg -l 'proxmox-kernel*' 'pve-kernel*' 'proxmox-headers*' 'pve-headers*'
for f in /boot/vmlinuz-*; do dpkg -S "$f"; done
7.0.14-19-pve
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                 Version      Architecture Description
+++-====================================-============-============-=====================================================
ii  proxmox-headers-6.14                 6.14.11-9    all          Latest Proxmox Kernel Headers
ii  proxmox-headers-6.14.11-9-pve        6.14.11-9    amd64        Proxmox Kernel Headers
ii  proxmox-headers-6.17                 6.17.13-21   amd64        Latest Proxmox Kernel Headers
ii  proxmox-headers-6.17.13-21-pve       6.17.13-21   amd64        Proxmox Kernel Headers
ii  proxmox-headers-6.5                  6.5.13-6     all          Latest Proxmox Kernel Headers
ii  proxmox-headers-6.5.13-6-pve         6.5.13-6     amd64        Proxmox Kernel Headers
ii  proxmox-headers-6.8                  6.8.12-13    all          Latest Proxmox Kernel Headers
ii  proxmox-headers-6.8.12-13-pve        6.8.12-13    amd64        Proxmox Kernel Headers
ii  proxmox-headers-7.0                  7.0.14-19    amd64        Latest Proxmox Kernel Headers
ii  proxmox-headers-7.0.14-19-pve        7.0.14-19    amd64        Proxmox Kernel Headers
ii  proxmox-kernel-6.14                  6.14.11-9    all          Latest Proxmox Kernel Image
un  proxmox-kernel-6.14.11-2-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.11-2-pve-signed  6.14.11-2    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.11-4-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.11-4-pve-signed  6.14.11-4    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.11-5-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.11-5-pve-signed  6.14.11-5    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.11-6-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.11-6-pve-signed  6.14.11-6    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.11-7-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.11-7-pve-signed  6.14.11-7    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.11-8-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.11-8-pve-signed  6.14.11-8    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.11-9-pve         <none>       <none>       (no description available)
ii  proxmox-kernel-6.14.11-9-pve-signed  6.14.11-9    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.14.8-2-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.14.8-2-pve-signed   6.14.8-2     amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.17                  6.17.13-21   amd64        Latest Proxmox Kernel Image
un  proxmox-kernel-6.17.13-13-pve        <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.13-13-pve-signed 6.17.13-13   amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.13-15-pve        <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.13-15-pve-signed 6.17.13-15   amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.13-2-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.13-2-pve-signed  6.17.13-2    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.13-21-pve        <none>       <none>       (no description available)
ii  proxmox-kernel-6.17.13-21-pve-signed 6.17.13-21   amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.13-6-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.13-6-pve-signed  6.17.13-6    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.13-7-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.13-7-pve-signed  6.17.13-7    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.13-9-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.13-9-pve-signed  6.17.13-9    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.2-2-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.2-2-pve-signed   6.17.2-2     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.17.4-2-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.17.4-2-pve-signed   6.17.4-2     amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.5.13-5-pve          6.5.13-5     amd64        Proxmox Kernel Image
un  proxmox-kernel-6.5.13-6-pve          <none>       <none>       (no description available)
ii  proxmox-kernel-6.5.13-6-pve-signed   6.5.13-6     amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-6.8                   6.8.12-13    all          Latest Proxmox Kernel Image
un  proxmox-kernel-6.8.12-10-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-10-pve-signed  6.8.12-10    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-11-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-11-pve-signed  6.8.12-11    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-13-pve         <none>       <none>       (no description available)
ii  proxmox-kernel-6.8.12-13-pve-signed  6.8.12-13    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-2-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-2-pve-signed   6.8.12-2     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-4-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-4-pve-signed   6.8.12-4     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-6-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-6-pve-signed   6.8.12-6     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-8-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-8-pve-signed   6.8.12-8     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.12-9-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.12-9-pve-signed   6.8.12-9     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.4-2-pve           <none>       <none>       (no description available)
ii  proxmox-kernel-6.8.4-2-pve-signed    6.8.4-2      amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.4-3-pve           <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.4-3-pve-signed    6.8.4-3      amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.8-2-pve           <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.8-2-pve-signed    6.8.8-2      amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-6.8.8-4-pve           <none>       <none>       (no description available)
rc  proxmox-kernel-6.8.8-4-pve-signed    6.8.8-4      amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-7.0                   7.0.14-19    amd64        Latest Proxmox Kernel Image
un  proxmox-kernel-7.0.14-11-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-7.0.14-11-pve-signed  7.0.14-11    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.14-12-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-7.0.14-12-pve-signed  7.0.14-12    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.14-15-pve         <none>       <none>       (no description available)
rc  proxmox-kernel-7.0.14-15-pve-signed  7.0.14-15    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.14-17-pve         <none>       <none>       (no description available)
ii  proxmox-kernel-7.0.14-17-pve-signed  7.0.14-17    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.14-19-pve         <none>       <none>       (no description available)
ii  proxmox-kernel-7.0.14-19-pve-signed  7.0.14-19    amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.14-4-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-7.0.14-4-pve-signed   7.0.14-4     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.14-8-pve          <none>       <none>       (no description available)
rc  proxmox-kernel-7.0.14-8-pve-signed   7.0.14-8     amd64        Proxmox Kernel Image (signed)
un  proxmox-kernel-7.0.6-2-pve           <none>       <none>       (no description available)
rc  proxmox-kernel-7.0.6-2-pve-signed    7.0.6-2      amd64        Proxmox Kernel Image (signed)
ii  proxmox-kernel-helper                9.2.0        all          Function for various kernel maintenance tasks.
ii  pve-headers                          9.2.0        all          Default Proxmox Kernel Headers (transitional package)
un  pve-headers-6.14                     <none>       <none>       (no description available)
un  pve-headers-6.14.11-9-pve            <none>       <none>       (no description available)
un  pve-headers-6.17                     <none>       <none>       (no description available)
un  pve-headers-6.17.13-21-pve           <none>       <none>       (no description available)
un  pve-headers-6.5                      <none>       <none>       (no description available)
un  pve-headers-6.5.13-6-pve             <none>       <none>       (no description available)
un  pve-headers-6.8                      <none>       <none>       (no description available)
un  pve-headers-6.8.12-13-pve            <none>       <none>       (no description available)
un  pve-headers-7.0                      <none>       <none>       (no description available)
un  pve-headers-7.0.14-19-pve            <none>       <none>       (no description available)
un  pve-kernel-6.14                      <none>       <none>       (no description available)
un  pve-kernel-6.17                      <none>       <none>       (no description available)
un  pve-kernel-6.5.13-5-pve              <none>       <none>       (no description available)
un  pve-kernel-6.8                       <none>       <none>       (no description available)
un  pve-kernel-7.0                       <none>       <none>       (no description available)
un  pve-kernel-helper                    <none>       <none>       (no description available)
proxmox-kernel-6.14.11-9-pve-signed: /boot/vmlinuz-6.14.11-9-pve
proxmox-kernel-6.17.13-21-pve-signed: /boot/vmlinuz-6.17.13-21-pve
proxmox-kernel-6.5.13-5-pve: /boot/vmlinuz-6.5.13-5-pve
proxmox-kernel-6.5.13-6-pve-signed: /boot/vmlinuz-6.5.13-6-pve
proxmox-kernel-6.8.12-13-pve-signed: /boot/vmlinuz-6.8.12-13-pve
proxmox-kernel-6.8.4-2-pve-signed: /boot/vmlinuz-6.8.4-2-pve
proxmox-kernel-7.0.14-17-pve-signed: /boot/vmlinuz-7.0.14-17-pve
proxmox-kernel-7.0.14-19-pve-signed: /boot/vmlinuz-7.0.14-19-pve

The purge command seems to not be trying to do anything terrible, I think.
Code:
root@andromeda2:~# apt purge proxmox-kernel-6.5.13-5-pve proxmox-kernel-6.5.13-6-pve-signed \
  proxmox-kernel-6.8.4-2-pve-signed proxmox-kernel-6.8.12-13-pve-signed \
  proxmox-kernel-6.8 proxmox-kernel-6.14 proxmox-kernel-6.14.11-9-pve-signed \
  proxmox-kernel-6.17 proxmox-kernel-6.17.13-21-pve-signed
REMOVING:                      
  proxmox-kernel-6.14*                  proxmox-kernel-6.17.13-21-pve-signed*  proxmox-kernel-6.8*
  proxmox-kernel-6.14.11-9-pve-signed*  proxmox-kernel-6.5.13-5-pve*           proxmox-kernel-6.8.12-13-pve-signed*
  proxmox-kernel-6.17*                  proxmox-kernel-6.5.13-6-pve-signed*    proxmox-kernel-6.8.4-2-pve-signed*

Summary:
  Upgrading: 0, Installing: 0, Removing: 9, Not Upgrading: 0
  Freed space: 3,896 MB

Continue? [Y/n]  n
Abort.

I think it's safe to run that?

EDIT: Also, I think I can safely remove the base headers packages (e.g., proxmox-headers-6.5)?
 
Last edited:
Those warnings come from the /lib/modules dirs you deleted. The kernels (6.5, 6.8, 6.14) are still installed per dpkg, so update-initramfs -k all tries to build initrds with no modules.
Your purge plan sounds good - apt removes 9 packages. Also purge the matching headers (meta and versioned, e.g. proxmox-headers-6.5 and proxmox-headers-6.5.13-6-pve) for 6.5, 6.8, 6.14 and 6.17.

Afterwards, tidy the old rc entries with apt purge $(dpkg -l | awk '/^rc/ && /proxmox-kernel|pve-kernel/ {print $2}'). Then run proxmox-boot-tool refresh, dkms status (look for stale entries for the removed kernels) and update-initramfs -u -k all, which should now run clean. From here on, remove kernels with apt purge rather than deleting files by hand.



Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
 
  • Like
Reactions: SInisterPisces
Those warnings come from the /lib/modules dirs you deleted. The kernels (6.5, 6.8, 6.14) are still installed per dpkg, so update-initramfs -k all tries to build initrds with no modules.
Your purge plan sounds good - apt removes 9 packages. Also purge the matching headers (meta and versioned, e.g. proxmox-headers-6.5 and proxmox-headers-6.5.13-6-pve) for 6.5, 6.8, 6.14 and 6.17.

Afterwards, tidy the old rc entries with apt purge $(dpkg -l | awk '/^rc/ && /proxmox-kernel|pve-kernel/ {print $2}'). Then run proxmox-boot-tool refresh, dkms status (look for stale entries for the removed kernels) and update-initramfs -u -k all, which should now run clean. From here on, remove kernels with apt purge rather than deleting files by hand.



Blockbridge : Ultra low latency all-NVME shared storage for Proxmox - https://www.blockbridge.com/proxmox
Thanks again. I don't remember how or why I tried removing kernels manually (I always just stick to apt autoremove when I'm conscious of what I'm doing), but I clearly didn't know what I was doing at the time. I'm glad it wasn't the most horrible thing ever to fix.

I'm curious, what are the "old rc entries?" I had quite a few of them.
Code:
root@andromeda2:~# apt purge $(dpkg -l | awk '/^rc/ && /proxmox-kernel|pve-kernel/ {print $2}')
REMOVING:                      
  proxmox-kernel-6.14.11-2-pve-signed*   proxmox-kernel-6.17.13-7-pve-signed*  proxmox-kernel-6.8.4-3-pve-signed*
  proxmox-kernel-6.14.11-4-pve-signed*   proxmox-kernel-6.17.13-9-pve-signed*  proxmox-kernel-6.8.8-2-pve-signed*
  proxmox-kernel-6.14.11-5-pve-signed*   proxmox-kernel-6.17.2-2-pve-signed*   proxmox-kernel-6.8.8-4-pve-signed*
  proxmox-kernel-6.14.11-6-pve-signed*   proxmox-kernel-6.17.4-2-pve-signed*   proxmox-kernel-7.0.14-11-pve-signed*
  proxmox-kernel-6.14.11-7-pve-signed*   proxmox-kernel-6.8.12-10-pve-signed*  proxmox-kernel-7.0.14-12-pve-signed*
  proxmox-kernel-6.14.11-8-pve-signed*   proxmox-kernel-6.8.12-11-pve-signed*  proxmox-kernel-7.0.14-15-pve-signed*
  proxmox-kernel-6.14.8-2-pve-signed*    proxmox-kernel-6.8.12-2-pve-signed*   proxmox-kernel-7.0.14-4-pve-signed*
  proxmox-kernel-6.17.13-13-pve-signed*  proxmox-kernel-6.8.12-4-pve-signed*   proxmox-kernel-7.0.14-8-pve-signed*
  proxmox-kernel-6.17.13-15-pve-signed*  proxmox-kernel-6.8.12-6-pve-signed*   proxmox-kernel-7.0.6-2-pve-signed*
  proxmox-kernel-6.17.13-2-pve-signed*   proxmox-kernel-6.8.12-8-pve-signed*
  proxmox-kernel-6.17.13-6-pve-signed*   proxmox-kernel-6.8.12-9-pve-signed*

The diagnostic output ran fine, as well:
Code:
root@andromeda2:~# proxmox-boot-tool kernel list
Manually selected kernels:
None.

Automatically selected kernels:
7.0.14-17-pve
7.0.14-19-pve

root@andromeda2:~# cd /boot/
root@andromeda2:/boot# ll
 inode Permissions Size User Group Date Modified Name
727788 .rw-r--r--  308k root root  10 Sep 05:16   config-7.0.14-17-pve
807762 .rw-r--r--  308k root root  18 Sep 02:31   config-7.0.14-19-pve
   129 drwxr-xr-x     - root root  24 Apr  2024   efi/
 51529 drwxr-xr-x     - root root   9 Oct 15:07   grub/
 68299 .rw-r--r--   87M root root   9 Oct 14:16   initrd.img-7.0.14-17-pve
 68353 .rw-r--r--   87M root root   9 Oct 14:16   initrd.img-7.0.14-19-pve
411204 .rw-r--r--  151k root root  17 Nov  2024   memtest86+ia32.bin
411205 .rw-r--r--  152k root root  17 Nov  2024   memtest86+ia32.efi
411206 .rw-r--r--  156k root root  17 Nov  2024   memtest86+x64.bin
411207 .rw-r--r--  157k root root  17 Nov  2024   memtest86+x64.efi
 56031 drwxr-xr-x     - root root   7 Oct 16:09   pve/
699441 .rw-r--r--   10M root root  10 Sep 05:16   System.map-7.0.14-17-pve
774983 .rw-r--r--   10M root root  18 Sep 02:31   System.map-7.0.14-19-pve
727789 .rw-r--r--   16M root root  10 Sep 05:16   vmlinuz-7.0.14-17-pve
807763 .rw-r--r--   16M root root  18 Sep 02:31   vmlinuz-7.0.14-19-pve

root@andromeda2:/boot# dkms status
i915-sriov-dkms/2026.09.16, 7.0.14-17-pve, x86_64: installed (Original modules exist)
i915-sriov-dkms/2026.09.16, 7.0.14-19-pve, x86_64: installed (Original modules exist)

And this output is warning/error free now:
Code:
root@andromeda2:/boot# update-initramfs -u -k all
update-initramfs: Generating /boot/initrd.img-7.0.14-19-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
Copying and configuring kernels on /dev/disk/by-uuid/9FFA-63F0
    Copying kernel and creating boot-entry for 7.0.14-17-pve
    Copying kernel and creating boot-entry for 7.0.14-19-pve
Copying and configuring kernels on /dev/disk/by-uuid/9FFA-7D25
    Copying kernel and creating boot-entry for 7.0.14-17-pve
    Copying kernel and creating boot-entry for 7.0.14-19-pve
update-initramfs: Generating /boot/initrd.img-7.0.14-17-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
Copying and configuring kernels on /dev/disk/by-uuid/9FFA-63F0
    Copying kernel and creating boot-entry for 7.0.14-17-pve
    Copying kernel and creating boot-entry for 7.0.14-19-pve
Copying and configuring kernels on /dev/disk/by-uuid/9FFA-7D25
    Copying kernel and creating boot-entry for 7.0.14-17-pve
    Copying kernel and creating boot-entry for 7.0.14-19-pve
 
Last edited:
rc are removed packages with old configs. You can remove them all with apt autopurge '~c'. See here for what ~c does.
Thanks for the info. :)

In any case, I'll not be using apt autoremove to remove kernels anymore, no matter how much it asks me to. :P

EDIT: And that ended up clearing ~5 GB off my boot partition, too. :)
 
Last edited: