问题描述
Ubuntu升级内核版本后,旧内核不会自动删除,仍然放在/boot
里,由于分区的时候只给了/boot
很小的空间,所以经常提示/boot
分区空间不足
解决方法是把旧内核全部删除
查看空间使用情况
使用df
命令先看看各个分区的空间使用情况
$ df
文件系统 1K-块 已用 可用 已用% 挂载点
udev 3978480 0 3978480 0% /dev
tmpfs 800876 9704 791172 2% /run
/dev/sda3 122603556 8570380 107782168 8% /
tmpfs 4004380 27756 3976624 1% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 4004380 0 4004380 0% /sys/fs/cgroup
/dev/sda1 274407 210230 45489 83% /boot
/dev/sda2 48380 1 48380 1% /boot/efi
/dev/sdb1 196730180 327936 186385888 1% /opt
/dev/sdb3 559704712 38040588 493209676 8% /home
/dev/sdb2 196731204 2455872 184258924 2% /usr/local
tmpfs 800876 56 800820 1% /run/user/1000
可以看到/boot
分区使用率非常高,所以每次升级内核都提示空间不足
查看系统所有内核
使用dpkg --get-selections | grep linux-image
命令可以查看系统当前的所有内核
$ dpkg --get-selections | grep linux-image
linux-image-4.4.0-31-generic deinstall
linux-image-4.4.0-58-generic install
linux-image-4.10.0-37-generic install
linux-image-extra-4.4.0-31-generic deinstall
linux-image-extra-4.4.0-58-generic install
linux-image-extra-4.10.0-37-generic install
可以看到安装了两个个系统内核,另外一个内核是deinstall
,这是用apt-get autoremove
卸载之后的残余
查看当前使用使用内核
使用uname -a
命令查看系统当前正在使用的内核版本
$ uname -a
Linux widiot 4.10.0-37-generic #41~16.04.1-Ubuntu SMP Fri Oct 6 22:42:59 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
除了这个内核,其他的都可以删除
删除内核
可以用apt-get purge
命令删除内核,如果用apt-get remove
命令,会留下deinstall
的残余
$ sudo apt-get purge linux-image-4.4.0-58-generic
$ sudo apt-get purge linux-image-extra-4.4.0-58-generic
如果有deinstall
的残余,可以使用dpkg -P
命令删除
$ sudo dpkg -P linux-image-4.4.0-31-generic
$ sudo dpkg -P linux-image-extra-4.4.0-31-generic
然后查看内核情况,现在只剩下系统正在使用的内核
$ dpkg --get-selections | grep linux-image
linux-image-4.10.0-37-generic install
linux-image-extra-4.10.0-37-generic install
更新grub
如果删除内核之后提示
The link /initrd.img.old is a damaged link
Removing symbolic link initrd.img.old
you may need to re-run your boot loader[grub]
则需要更新grub
$ sudo /usr/sbin/update-grub