启动失败后更新Plymouth无效,执行update-initramfs提示磁盘空间不足但磁盘实际有大量空闲的求助
启动失败后更新Plymouth无效,执行update-initramfs提示磁盘空间不足但磁盘实际有大量空闲的求助
看起来你遇到了个挺闹心的问题——明明磁盘还有至少500GB的空闲空间,更新initramfs修复Plymouth启动错误时,却一直弹出「no space left on device」的提示,试了调整命令也没用。我来帮你拆解可能的原因,一步步解决:
首先先提个小细节:你写的命令里$(urname- r)应该是拼写错误啦,正确的应该是$(uname -r),这个小失误可能会导致命令执行异常,先把这个修正过来。
接下来咱们重点排查那些「看起来空间够但实际触发空间不足」的常见场景:
1. 单独分区的/boot目录满了
很多Linux发行版会把/boot单独划分一个小分区(通常几百MB),哪怕你的根目录/有几百GB空闲,只要/boot被旧内核文件占满,update-initramfs就会失败。
- 先检查
/boot的使用率:df -h /boot - 如果看到
Used%接近100%,就需要清理旧的内核文件:- 列出所有已安装的内核:
dpkg --list | grep linux-image - 找到除了当前正在使用的内核(就是
uname -r输出的版本)之外的旧版本,比如linux-image-5.15.0-78-generic - 卸载旧内核(注意别删错当前在用的!):
sudo apt purge linux-image-5.15.0-78-generic
sudo update-initramfs -c -k $(uname -r) - 列出所有已安装的内核:
2. 临时目录/tmp空间不足
update-initramfs在生成镜像的过程中会用到/tmp目录,如果/tmp是单独的小分区,或者被挂载成tmpfs且分配的空间不够,也会触发空间不足的提示。
- 检查
/tmp的空间:df -h /tmp - 如果确实空间不够,可以临时指定其他目录作为临时存储:
- 先在你的home目录下创建一个临时文件夹:
mkdir -p ~/initramfs_tmp - 用这个目录来执行更新命令:
sudo TMPDIR=~/initramfs_tmp update-initramfs -c -k $(uname -r)
- 先在你的home目录下创建一个临时文件夹:
3. inode耗尽了
有时候磁盘的存储空间还有,但inode(用来记录文件元数据的索引节点)被耗尽了,系统也会提示「空间不足」。这种情况通常是因为目录里有大量的小文件(比如日志、缓存文件)。
- 检查各个分区的inode使用情况:
df -i - 如果某个分区的
IUse%是100%,就去对应的目录下清理大量小文件:比如/var/log下的旧日志、/tmp下的临时缓存,或者某个软件生成的大量小文件。
最后再确认命令正确性
你第二次尝试的命令sudo update-initramfs -c -k $(urname- r) -k参数重复了,正确的格式应该是只指定一次-k加上内核版本,也就是:
sudo update-initramfs -c -k $(uname -r)
先从修正命令拼写开始,再依次排查上面几个场景,应该就能解决你的问题了。
备注:内容来源于stack exchange,提问作者kenziememes 123




