如何判断/boot目录是否有可用空间?

使用Baobab磁盘使用分析器时,gksudo无法显示/boot目录。我最近删除了一些旧的内核。我该如何验证我是否释放了/boot目录中的空间?

enter image description here

背景故事 — 我开始春季大扫除,因为Ubuntu在没有解决方法的情况下无法正常启动。当我的电脑警告我/boot空间几乎满了时,我诊断出了错误。警告打开了磁盘使用分析器,但没有root权限,所以/boot没有被扫描到。现在分析器似乎完全找不到这个目录。

我做了什么 — 更新到最新的内核后,我逐个删除了旧的内核:

sudo apt purge linux-image-[版本号]

完成后,我更新了grub2。

每次purge命令都显示会释放0字节的空间。不过根据以下命令:dpkg --list | grep linux-image,它们确实已经被删除了。

3个回答

df -h会显示所有分区的空间,不仅限于/home。要查看所有内核版本,请执行dpkg -l linux-image*

您可以使用如下命令一次性删除多个旧内核:sudo apt-get remove linux-image-2.6.32-{21,37,38,39,40,41,42,43,44}-server(根据dpkg结果自行替换相应数字),但务必小心不要删除当前正在使用的内核或最新的内核!

uname -r会显示您当前正在使用的内核。

注意:在删除旧内核后运行sudo apt-get autoremove可以清理已过时的依赖项。


最简单的方法是使用df命令:
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3.7G     0  3.7G   0% /dev
tmpfs           759M  1.9M  757M   1% /run
/dev/nvme0n1p7   44G   19G   24G  44% /
tmpfs           3.8G   52M  3.7G   2% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           3.8G     0  3.8G   0% /sys/fs/cgroup
/dev/nvme0n1p8  9.1G   49M  9.0G   1% /mnt/e
/dev/nvme0n1p2   95M   28M   68M  29% /boot/efi
/dev/nvme0n1p4  391G  130G  262G  34% /mnt/c
/dev/sda3       920G   42G  878G   5% /mnt/d
tmpfs           759M   64K  759M   1% /run/user/1000
/dev/sdb5       6.3G  101M  5.9G   2% /media/rick/casper-rw
/dev/sdb1       6.4G   43M  6.4G   1% /media/rick/usbdata
/dev/sdb4       1.4G  1.4G     0 100% /media/rick/Ubuntu 18.04 LTS amd64

在我的系统中,/boot被嵌入到根目录(/)中。所以我可以看到它位于分区/dev/nvme0n1p7上,已使用44%的空间(可用24G)。这足够存储48个新内核,而无需清除任何现有内核。
如果您有一个单独的/boot分区,您将在df列表中看到它。
要查看每个内核占用的磁盘空间,不仅包括/boot,还包括/src/lib/lib/modules,您可以使用rm-kernels来显示已使用的存储空间,而不会删除任何内容。

rm-kernels-may2018

在这种情况下,内核使用了6.9 GB的空间,不仅限于/boot目录,还包括其他部分的/目录。显示中还有一个单独的列显示/boot目录使用了多少空间。
您也可以运行du(磁盘使用)命令:
$ du /boot -h -s
1.2G    /boot

如果/boot是一个独立的文件系统,并且您使用sudo运行baobab,它将不会将/boot列为完整磁盘分析的一部分。相反,您必须在baobab的启动屏幕上选择要分析的文件系统。
或者,您可以像这样运行baobab:sudo baobab /boot,以立即打开/boot文件夹的磁盘使用情况。
但是,如果您已经在命令行上,还有更多方法(请参见其他答案)来查询系统磁盘使用情况。