Deleted old version of kernel to free up space - now getting nonstop errors

My /boot partition was full, so I deleted an old version of the kernel to free up space, so I deleted the following files in /boot:

abi-3.8.0-25-generic
config-3.8.0-25-generic
initrd.img-3.8.0-25-generic
System.map-3.8.0-25-generic
vmlinuz-3.8.0-25-generic

But now, whenever I do anything in apt-get, it throws errors, for example:

sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up linux-image-extra-3.8.0-25-generic (3.8.0-25.37) ...
Internal Error: Could not find image (/boot/vmlinuz-3.8.0-25-generic)
dpkg: error processing linux-image-extra-3.8.0-25-generic (--configure):
subprocess installed post-installation script returned error exit status 2
No apport report written because MaxReports is reached already
Errors were encountered while processing:
linux-image-extra-3.8.0-25-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Is there any way I can fix this now that I stupidly didn't back up the files I deleted?

$ dpkg -l linux-image-*
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
+++-===============================================-============================-============================-===================================================================================================
un  linux-image-3.0                                 <none>                                                    (no description available)
rc  linux-image-3.5.0-17-generic                    3.5.0-17.28                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
rc  linux-image-3.5.0-25-generic                    3.5.0-25.39                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
rc  linux-image-3.5.0-26-generic                    3.5.0-26.42                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
ii  linux-image-3.5.0-27-generic                    3.5.0-27.46                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
rc  linux-image-3.8.0-19-generic                    3.8.0-19.30                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-21-generic                    3.8.0-21.32                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-22-generic                    3.8.0-22.33                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-23-generic                    3.8.0-23.34                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-25-generic                    3.8.0-25.37                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-26-generic                    3.8.0-26.38                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-29-generic                    3.8.0-29.42                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-31-generic                    3.8.0-31.46                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-3.8.0-32-generic                    3.8.0-32.47                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
rc  linux-image-extra-3.5.0-17-generic              3.5.0-17.28                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
rc  linux-image-extra-3.5.0-25-generic              3.5.0-25.39                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
rc  linux-image-extra-3.5.0-26-generic              3.5.0-26.42                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
ii  linux-image-extra-3.5.0-27-generic              3.5.0-27.46                  amd64                        Linux kernel image for version 3.5.0 on 64 bit x86 SMP
rc  linux-image-extra-3.8.0-19-generic              3.8.0-19.30                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-21-generic              3.8.0-21.32                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-22-generic              3.8.0-22.33                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-23-generic              3.8.0-23.34                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
iF  linux-image-extra-3.8.0-25-generic              3.8.0-25.37                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-26-generic              3.8.0-26.38                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-29-generic              3.8.0-29.42                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-31-generic              3.8.0-31.46                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-extra-3.8.0-32-generic              3.8.0-32.47                  amd64                        Linux kernel image for version 3.8.0 on 64 bit x86 SMP
ii  linux-image-generic                             3.8.0.32.50                  amd64                        Generic Linux kernel image


$ sudo apt-get --reinstall install linux-image-extra-3.8.0-25-generic
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 8 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
E: Internal Error, No file name for linux-image-extra-3.8.0-25-generic:amd64

Solution 1:

The package manager is complaining about being unable to delete a missing file. So, give it what it wants! I found even a zero length file will do. In /boot, recreate the missing files:

sudo touch vmlinuz-3.8.0-25-generic

... etc. Then simply run the purge on all associated packages:

sudo apt-get purge `apt-cache pkgnames | fgrep 3.8.0-25`

(You will be asked to confirm the removal).

Solution 2:

Please, don't delete anything in your /boot directory by hand! For that there is the package manager. You should reinstall the package to fix this situation:

sudo apt-get --reinstall install linux-image-extra-3.8.0-25-generic