You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用dd恢复Ubuntu硬盘镜像后出现Initramfs错误

解决dd克隆Ubuntu镜像后启动进入Initramfs的问题

我碰到过好几次这种情况,用dd全盘克隆后启动卡Initramfs,大多是UUID不匹配或者GRUB引导没有正确适配新硬盘导致的,下面一步步帮你解决:

第一步:从Initramfs shell排查基础问题

当你进入Initramfs的busybox shell时,先确认系统能不能识别到新硬盘的分区:

  • 输入 lsblk 查看所有磁盘和分区,找到你的根分区(通常是容量最大的那个分区,或者原本挂载/的分区)
  • 输入 blkid 查看每个分区的UUID,记下来后面要用

如果根分区能被识别但挂载失败,大概率是/etc/fstab里的旧UUID和新分区不匹配。

第二步:修复UUID匹配与GRUB引导

这是最核心的解决流程:

  1. 挂载根分区到临时目录(假设你的根分区是/dev/sda1,根据实际情况替换):
    mount /dev/sda1 /mnt
    
  2. 挂载系统必要的虚拟文件系统,让chroot环境能正常工作:
    mount --bind /dev /mnt/dev
    mount --bind /proc /mnt/proc
    mount --bind /sys /mnt/sys
    
  3. 切换到克隆的系统环境:
    chroot /mnt
    
  4. 更新/etc/fstab:
    • 用blkid再次确认新分区的UUID,然后编辑fstab:
      nano /etc/fstab
      
    • 把里面所有旧的UUID替换成新硬盘分区对应的UUID,保存退出(按Ctrl+O回车确认,Ctrl+X退出)
  5. 重新安装GRUB到新硬盘(注意是整个硬盘设备,比如/dev/sda,不是分区):
    grub-install /dev/sda
    
  6. 更新GRUB配置,让它识别新的系统分区:
    update-grub
    

第三步:重新生成initramfs镜像

如果上面的步骤做完还是有问题,可能是initramfs镜像没有包含新硬盘的驱动,在chroot环境下执行:

update-initramfs -u

额外注意事项

  • 确保新硬盘的容量不小于原硬盘,否则dd克隆会截断分区表,导致分区损坏
  • 如果是UEFI系统,还要确认EFI分区(通常是FAT32格式的小分区)已经正确挂载到/boot/efi,并且/etc/fstab里的UUID也更新了,然后在chroot里执行grub-install --efi-directory=/boot/efi
  • 重启后进入BIOS/UEFI,把新硬盘设置为第一启动项

这样操作后,系统应该就能正常启动了。

内容的提问来源于stack exchange,提问作者CuriousGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 04:29:03