You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

启动失败后更新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%,就需要清理旧的内核文件:
    1. 列出所有已安装的内核:
      dpkg --list | grep linux-image
      
    2. 找到除了当前正在使用的内核(就是uname -r输出的版本)之外的旧版本,比如linux-image-5.15.0-78-generic
    3. 卸载旧内核(注意别删错当前在用的!):
      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
    
  • 如果确实空间不够,可以临时指定其他目录作为临时存储:
    1. 先在你的home目录下创建一个临时文件夹:
      mkdir -p ~/initramfs_tmp
      
    2. 用这个目录来执行更新命令:
      sudo TMPDIR=~/initramfs_tmp update-initramfs -c -k $(uname -r)
      

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

火山引擎 最新活动