Ubuntu 缺 initramfs 导致无法启动?
内核加载了却报 missing initramfs,多因生成脚本失败被跳过。本文给出从 recovery 重生成 initramfs、核对内核对应关系的标准路径。
简短答案
initramfs 是内核到根分区之间的桥,缺了就是「内核加载成功、rootfs 找不到」。常见诱因是生成脚本失败被静默跳过(磁盘满、/boot 空间不足、内核刚升级中断)。修复就一句话:进 recovery/单用户后 update-initramfs 重生成,重启。
现象对照
| 现象 | 判断 |
|---|---|
报 missing initramfs 卡住 |
该内核对应的 initrd 不存在 |
| 刚 apt upgrade 后首启失败 | 升级中断,initramfs 没生成 |
| 多个内核都缺 | /boot 空间不足,被跳过 |
排查步骤
# recovery/单用户下执行
ls /boot/initrd.img-*
sudo update-initramfs -u -k <内核版本>
sudo reboot
/boot 空间满要先 sudo journalctl --vacuum-time=3d 清日志腾位,再重生成;仍失败看脚本输出里哪一步挂了。不同发行版本生成目标文件名不一致(initrd.img / initramfs),以 Ubuntu 发行条目 对应说明为准,服务器最小环境参考 Ubuntu 服务器版 条目,Debian 侧参考 Debian 发行条目。
操作小结
- 先进 recovery/单用户,不靠坏内核自己救自己
update-initramfs -u -k指定坏的内核版本重生成- /boot 满先腾空间再生成
- 重启前
ls /boot确认新 initrd 在