Debian Buster安装CMake遇No space left on device,/dev/sda1 100%满
故障根源定位
本次报错的核心原因是挂载在根目录 / 的 /dev/sda1 分区已100%占满,不存在inode耗尽类问题。
你觉得“整体磁盘使用率仅30%”是分区拆分带来的认知偏差:你给虚拟机划分磁盘时,将系统路径拆为多个独立分区分别挂载,各分区的使用情况完全独立:
/home对应/dev/sda8,仅占用8%容量,日常下载的文件都存储在该分区,不会触发空间不足报错/var对应/dev/sda5,仅占用24%容量,apt的下载缓存、软件包安装文件都存储在该分区,因此你可以正常通过apt安装软件- 你尝试写入的目标路径
/usr/local/share/cmake-3.15/是根目录的子路径,属于/dev/sda1的管辖范围。这个总容量仅6GB的分区可用空间已被完全占尽,因此复制文件、安装CMake的操作都会触发"No space left on device"报错。
排查与操作指引
- 第一步:定位sda1的空间占用来源
执行以下命令,逐层级统计根目录下的文件夹大小并从大到小排序,快速找到占空间的目录:sudo du -h --max-depth=1 / | sort -hr
这类小根分区常见的空间占用来源:- 多版本留存的旧内核、驱动文件:这类文件通常存放于
/boot路径下,单份内核镜像就有数百MB,多版本积累很容易塞满6GB规格的根分区 - 已删除但仍被进程占用的无效空间:如果统计的所有文件总大小远低于sda1的总容量,执行
sudo lsof +L1即可定位这类已删除但未释放的文件,重启对应占用进程或直接重启系统即可回收空间
- 多版本留存的旧内核、驱动文件:这类文件通常存放于
- 第二步:清理冗余占用,在sda1分区腾出至少数百MB的可用空间
- 第三步:重新执行
sudo make install,即可正常完成CMake的安装流程
补充说明:你执行
df -i显示sda1的inode使用率仅53%,可以直接排除inode耗尽类故障,本次问题是实打实地存储块被占满导致。
内容的提问来源于stack exchange,提问作者PedroBinotto
相关产品推荐
相关产品推荐

