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

Ubuntu安装后出现hd0 not found及grub rescue故障求助

解决Ubuntu安装后进入grub rescue且提示hd0 not found的问题

结合你描述的操作过程——清除RAID元数据后安装Ubuntu,重启进入grub rescue,甚至彻底擦盘重装都无法解决,问题的核心大概率是BIOS/UEFI的磁盘模式设置或者Grub没有正确安装到磁盘的引导区域。下面是分步解决的方案:

第一步:先检查并修改BIOS/UEFI的磁盘模式

这是最容易被忽略但至关重要的一步:

  • 重启电脑,按开机提示的按键(通常是F2、Del、Esc)进入BIOS/UEFI设置界面
  • 找到存储相关的选项,比如「SATA Mode」「Storage Controller Mode」
  • 如果当前设置的是RAID模式(比如Intel RST),改成AHCI模式
  • 保存设置后重启电脑

为什么要改?因为你用dmraid -E -r /dev/sda清除了RAID元数据,但BIOS仍处于RAID模式时,Ubuntu的Grub无法正确识别磁盘,就会出现hd0 not found的错误。

第二步:用Ubuntu安装介质修复Grub

如果改完磁盘模式还是进不去,就用安装U盘/光盘来修复Grub:

  1. 插入Ubuntu安装介质,从它启动,选择「Try Ubuntu without installing」进入试用模式
  2. 打开终端(按下Ctrl+Alt+T
  3. 先找到你的Ubuntu系统分区:
    运行命令sudo lsblk,找到带有/挂载点的分区(通常是ext4格式,大小和你分配的系统空间一致),比如/dev/sda1
  4. 挂载系统分区:
    sudo mount /dev/sda1 /mnt  # 把/dev/sda1换成你实际的分区路径
    
  5. 如果是UEFI启动的电脑,还要挂载EFI分区(通常是FAT32格式,大小200-512MB):
    sudo mount /dev/sda2 /mnt/boot/efi  # 替换成你的EFI分区路径
    
  6. 挂载系统必需的虚拟目录:
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    
  7. 切换到你的系统环境:
    sudo chroot /mnt
    
  8. 重新安装Grub:
    • 如果你是BIOS+MBR分区表:
      grub-install /dev/sda
      
    • 如果你是UEFI+GPT分区表:
      grub-install --efi-directory=/boot/efi
      
  9. 更新Grub配置:
    update-grub
    
  10. 退出chroot并重启:
    exit
    sudo reboot
    

第三步:如果以上都无效,彻底重新分区磁盘

如果修复Grub还是不行,就彻底重新初始化磁盘分区表:

  1. 从安装介质启动,选择「Install Ubuntu」
  2. 在分区步骤中,选择「Something else」(自定义分区)
  3. 选中整个磁盘(比如/dev/sda),点击「New Partition Table」,选择GPT(推荐)或者MBR
  4. 创建必要的分区:
    • BIOS+MBR:创建一个ext4分区,挂载点设为/,勾选「Bootable」标记,分配剩余空间
    • UEFI+GPT:先创建一个FAT32分区,大小200MB,挂载点/boot/efi;再创建一个ext4分区,挂载点/,分配剩余空间
  5. 完成安装后,再重复第二步的Grub修复步骤,确保引导正确

额外注意事项

  • 如果你的电脑有Secure Boot选项,在BIOS里把它禁用,否则Grub可能无法正常加载
  • 切换RAID到AHCI模式后,Windows系统会无法启动,但你已经不在意Windows了,所以不用管这个问题

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

火山引擎 最新活动