Linux清理boot分区

  Liunx在使用时间长了之后,伴随着不断地内核更新,Boot分区的容量会越来越少,当Boot分区的可用容量少于更新所需要的容量时,就会更新失败。我们可以使用以下方法来解决:

1、使用逻辑卷

  逻辑卷管理器是一个好东西,Linux的分区管理在逻辑卷的帮助下能够非常的灵活方便。但是在我个人看来,使用逻辑卷来增加Boot分区的容量在处理这个问题上并不是一个非常好的办法,增加容量只是向后推迟了你遇到问题的时间而已,并没有从根本上解决空间资源所面临的问题。而且,使用逻辑卷的前提是你在安装操作系统的时候就使用了逻辑卷来创建Boot分区,如果你在安装操作系统的时候没有使用逻辑卷,那么后续使用逻辑卷来管理Boot将会是很困难的。

2、清理旧的内核文件

  我们从问题本身入手:Boot分区容量不足。容量不足的原因是长期的更新积累了很多旧的内核。那么我们只要把旧的不再使用的内核清理掉不就可以解决所面临的问题了吗?我是推荐这一方法的,也一直在用这个方法。
  首先,我们可以使用如下命令来查看系统当前各分区的容量:

root@linux:~# df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            1.9G     0  1.9G    0% /dev
tmpfs           392M   12M  381M    3% /run
/dev/sda1        32G   27G  4.0G   87% /
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           5.0M     0  5.0M    0% /run/lock
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda4        20G  3.0G   16G   16% /home
/dev/sda3       269M  196M   56M   78% /boot
tmpfs           392M   12K  392M    1% /run/user/131
tmpfs           392M   24K  392M    1% /run/user/0

  我们可以从命令返回的结果得出Boot分区的当前使用量以及剩余容量,然后根据剩余容量的大小来和即将更新的内容大小做一个比较,如果小于即将更新的内容,那么就说明我们需要释放一下Boot分区了。
  接下来使用如下命令来查看当前系统在使用的内核版本以及安装了哪些内核文件:

root@linux:~# uname -r 
5.2.0-kali2-amd64
root@linux:~# dpkg --get-selections | grep linux
binutils-x86-64-linux-gnu  			 install
console-setup-linux    	    			 install
enum4linux     		    			 install
firmware-linux             			 install
firmware-linux-free     		         install
firmware-linux-nonfree     			 install
kali-linux                  			 install
kali-linux-core             			 install
kali-linux-default          			 install
kali-linux-full    				 install
kali-linux-large     				 install
libselinux1:amd64   				 install
libselinux1:i386    				 install
linux-base     					 install
linux-image-4.19.0-kali4-amd64   		 install
linux-image-4.19.0-kali5-amd64   		 install
linux-image-5.2.0-kali2-amd64   		 install
linux-image-amd64    				 install
linux-libc-dev:amd64    			 install
util-linux     					 install

  可以看出我们有一个版本比较旧的内核版本4.19.0-kali4-amd64,我们可以留着4.19.0-kali5-amd64,以防新的内核版本安装以后系统出现不稳定的情况。接下来我们使用如下命令来清理掉不需要的内核版本:

root@linux:~# dpkg -P linux-image-4.19.0-kali4-amd64 
(正在读取数据库 ... 系统当前共安装有 421958 个文件和目录。)
正在卸载 linux-image-4.19.0-kali4-amd64 (4.19.28-2kali1) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-4.19.0-kali4-amd64
/etc/kernel/postrm.d/zz-update-grub:
Generating grub configuration file ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-5.2.0-kali2-amd64
Found initrd image: /boot/initrd.img-5.2.0-kali2-amd64
Found linux image: /boot/vmlinuz-4.19.0-kali5-amd64
Found initrd image: /boot/initrd.img-4.19.0-kali5-amd64
done
正在清除 linux-image-4.19.0-kali4-amd64 (4.19.28-2kali1) 的配置文件 ...
root@linux:~#

  清理完成。可以使用上面的命令再次查看一下安装的内核版本:

root@linux:~# dpkg --get-selections | grep linux
binutils-x86-64-linux-gnu   install
console-setup-linux    install
enum4linux     install
firmware-linux     install
firmware-linux-free    install
firmware-linux-nonfree    install
kali-linux     install
kali-linux-core     install
kali-linux-default    install
kali-linux-full     install
kali-linux-large    install
libselinux1:amd64    install
libselinux1:i386    install
linux-base     install
linux-image-4.19.0-kali5-amd64   install
linux-image-5.2.0-kali2-amd64   install
linux-image-amd64    install
linux-libc-dev:amd64    install
util-linux     install
root@linux:~#

  可以发现,4.19.0-kali4-amd64这个版本的内核已经没有了,我们使用命令来查看一下清理完成后的Boot分区的容量:

root@linux:~# df -h
文件系统        容量  已用  可用 已用% 挂载点
udev            1.9G     0  1.9G    0% /dev
tmpfs           392M   12M  381M    3% /run
/dev/sda1        32G   26G  4.3G   87% /
tmpfs           2.0G     0  2.0G    0% /dev/shm
tmpfs           5.0M     0  5.0M    0% /run/lock
tmpfs           2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda4        20G  3.0G   16G   16% /home
/dev/sda3       269M  150M  102M   60% /boot
tmpfs           392M   12K  392M    1% /run/user/131
tmpfs           392M   24K  392M    1% /run/user/0
root@linux:~#

  我们成功的为Boot分区“瘦身”了46MB,然后我们就可以愉快的更新了:)