Ubuntu启动卡滞于BusyBox(initramfs),需更新微码至0x52及以上
解决Ubuntu启动微码报错与initramfs卡滞问题(保留数据)
看起来你遇到了Ubuntu启动的双重麻烦——微码过时导致的固件报错,加上GRUB环境块太小的提示,最后卡在了initramfs界面。别担心,咱们不用重装系统,一步步操作就能搞定,还能保住所有数据:
步骤1:准备Ubuntu安装U盘
- 找一台能正常上网的电脑,下载和你当前Ubuntu版本完全匹配的ISO镜像(比如原来用20.04就下20.04,跨版本容易出依赖问题)
- 用Rufus或者Ubuntu自带的启动盘创建工具,把ISO写入空白U盘,做成可启动安装介质
步骤2:从U盘启动,进入试用模式
- 把U盘插到故障电脑上,开机按启动项选择键(不同品牌电脑不一样,一般是F12、F2或Del键),选U盘启动
- 在Ubuntu启动菜单里选「Try Ubuntu without installing」,进入试用系统(这个系统跑在U盘里,不会动你硬盘上的数据)
步骤3:解锁并挂载加密硬盘分区
因为你的硬盘是加密的,得先解锁才能操作:
- 打开终端(按Ctrl+Alt+T),先查清楚加密分区的设备名:
找带sudo lsblkcrypt标记或者你熟悉的加密卷名的分区,比如/dev/sda3或者/dev/nvme0n1p3(别选错分区!) - 创建一个临时挂载目录:
sudo mkdir /mnt/encrypted - 解锁加密分区:
输入你的加密硬盘密码,解锁后会生成sudo cryptsetup luksOpen /dev/你的加密分区名 mycrypt/dev/mapper/mycrypt这个设备 - 把解锁后的根分区挂载到临时目录:
sudo mount /dev/mapper/mycrypt /mnt/encrypted - 挂载系统必需的虚拟文件系统,方便后续操作:
sudo mount --bind /dev /mnt/encrypted/dev sudo mount --bind /proc /mnt/encrypted/proc sudo mount --bind /sys /mnt/encrypted/sys
步骤4:切换到自己的系统环境(chroot)
现在可以进入你原来的系统环境操作了,就像直接在系统里一样:
sudo chroot /mnt/encrypted
执行完后终端提示符会变成root@ubuntu:/#,说明已经成功进入自己的系统了
步骤5:更新CPU微码
根据报错提示,需要更新到0x52或更高版本的微码:
- 先更新软件源缓存:
apt update - 安装对应品牌的微码包:
- 如果你是Intel CPU:
apt install intel-microcode - 如果你是AMD CPU:
apt install amd64-microcode
- 如果你是Intel CPU:
- 重新生成initramfs,修复卡滞问题:
update-initramfs -u -k all
步骤6:修复GRUB环境块过小的问题
这个提示会影响GRUB正常加载,得扩容:
- 先查看当前GRUB环境块状态:
grub-editenv list - 把GRUB环境块扩容到16KB(足够解决这个问题):
grub-editenv - create /boot/grub/grubenv 16384 - 重新安装GRUB到硬盘(注意!这里写硬盘设备名,比如
/dev/sda,不要加分区号;如果是NVMe硬盘就是/dev/nvme0n1):grub-install /dev/sda
步骤7:退出并重启
- 退出chroot环境:
exit - 卸载所有挂载的分区,避免损坏:
sudo umount /mnt/encrypted/sys sudo umount /mnt/encrypted/proc sudo umount /mnt/encrypted/dev sudo umount /mnt/encrypted sudo cryptsetup luksClose mycrypt - 拔掉U盘,重启电脑,应该就能正常进入系统了
小提醒
- 如果安装微码时遇到依赖错误,可能是软件源的问题,在chroot后可以编辑
/etc/apt/sources.list换成国内镜像源(比如阿里云、清华源)再重试 - 所有操作一定要仔细核对设备名,别选错硬盘或分区,不然可能丢数据
内容的提问来源于stack exchange,提问作者Lilia
相关产品推荐
相关产品推荐

