Is there unused `initrd.img` to remove?

Looks like I have a unnecessary initrd.img in my /boot directory:

$ ls -1s /boot
total 82835 1439 abi-4.11.0-10-generic 204 config-4.11.0-10-generic 1 extlinux 1 grub
48186 initrd.img-4.11.0-10-generic
10626 initrd.img-4.8.0-34-generic
10626 initrd.img-4.8.0-39-generic 12 lost+found 180 memtest86+.bin 182 memtest86+.elf 182 memtest86+_multiboot.bin 3695 System.map-4.11.0-10-generic 7501 vmlinuz-4.11.0-10-generic

These are initrd.img-4.8.0-34-generic and initrd.img-4.8.0-39-generic because I cannot find any traces of them

$ sudo update-grub2
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.11.0-10-generic
Found initrd image: /boot/initrd.img-4.11.0-10-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
$ dpkg -l *4.8.0*
dpkg-query: no packages found matching *4.8.0*
$ dpkg -l linux-*
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 linux-base 4.5ubuntu1 all Linux image base package
un linux-doc-4.11.0 <none> <none> (no description available)
ii linux-firmware 1.167 all Firmware for Linux kernel drivers
ii linux-generic 4.11.0.10.10 amd64 Complete Generic Linux kernel and headers
un linux-headers <none> <none> (no description available)
un linux-headers-3.0 <none> <none> (no description available)
ii linux-headers-4.11.0-10 4.11.0-10.15 all Header files related to Linux kernel version 4.11.0
ii linux-headers-4.11.0-10-gen 4.11.0-10.15 amd64 Linux kernel headers for version 4.11.0 on 64 bit x86 SMP
ii linux-headers-generic 4.11.0.10.10 amd64 Generic Linux kernel headers
un linux-image <none> <none> (no description available)
ii linux-image-4.11.0-10-gener 4.11.0-10.15 amd64 Linux kernel image for version 4.11.0 on 64 bit x86 SMP
ii linux-image-extra-4.11.0-10 4.11.0-10.15 amd64 Linux kernel extra modules for version 4.11.0 on 64 bit x86
ii linux-image-generic 4.11.0.10.10 amd64 Generic Linux kernel image
un linux-initramfs-tool <none> <none> (no description available)
un linux-kernel-headers <none> <none> (no description available)
un linux-kernel-log-daemon <none> <none> (no description available)
ii linux-libc-dev:amd64 4.11.0-10.15 amd64 Linux Kernel Headers for development
ii linux-libc-dev:i386 4.11.0-10.15 i386 Linux Kernel Headers for development
un linux-restricted-common <none> <none> (no description available)
ii linux-sound-base 1.0.25+dfsg-0ubunt all base package for ALSA and OSS sound systems
un linux-source-4.11.0 <none> <none> (no description available)
un linux-tools <none> <none> (no description available)

Are these both really useless? If they are useless, what is the correct way to remove them (I read, that rm strictly unrecommended for /boot folder)?

EDIT1: sudo apt autoremove cannot help either.

2

2 Answers

"initrd" images will be created each time a package triggers update-initramfs, so it's unlikely that you can find a corresponding package to them.

Use:

dpkg -S /boot/initrd.img*

to see the image has been placed by which package, you should get:

dpkg-query: no path found matching pattern /boot/initrd.img-4...

which means "I can't find any related package to this file", just as I said.


So here is my suggestion,

Remove all "initrd" images:

sudo rm /boot/initrd.img*

Generate new "intird" images for all of your currently installed kernels:

sudo update-initramfs -c -k all

You're done.

5

In your case, I think it is ok to remove the initrd.img manually since you clearly do not have a linux-image-4.8.0-34-generic.

For anyone else who comes across this thread and needs to get rid of an "extra" initrd.img, you might have an "extra" linux-image installed which is what update-initramfs is using to generate this "unwanted" initrd.img

So before running sudo rm /boot/initrd.img*, consider running:

sudo apt-get remove linux-image-4.8.0-34-generic

Now run:

sudo update-initramfs -c -k all

I know you already solved your problem, but I thought another person might need quick instructions and might not understand the uniqueness of your problem.

Unless you are VERY sure of what you are doing, do not manually remove system files.

You might need to run sudo update-grub manually afterwards.

0

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like