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:
- 插入Ubuntu安装介质,从它启动,选择「Try Ubuntu without installing」进入试用模式
- 打开终端(按下
Ctrl+Alt+T) - 先找到你的Ubuntu系统分区:
运行命令sudo lsblk,找到带有/挂载点的分区(通常是ext4格式,大小和你分配的系统空间一致),比如/dev/sda1 - 挂载系统分区:
sudo mount /dev/sda1 /mnt # 把/dev/sda1换成你实际的分区路径 - 如果是UEFI启动的电脑,还要挂载EFI分区(通常是FAT32格式,大小200-512MB):
sudo mount /dev/sda2 /mnt/boot/efi # 替换成你的EFI分区路径 - 挂载系统必需的虚拟目录:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys - 切换到你的系统环境:
sudo chroot /mnt - 重新安装Grub:
- 如果你是BIOS+MBR分区表:
grub-install /dev/sda - 如果你是UEFI+GPT分区表:
grub-install --efi-directory=/boot/efi
- 如果你是BIOS+MBR分区表:
- 更新Grub配置:
update-grub - 退出chroot并重启:
exit sudo reboot
第三步:如果以上都无效,彻底重新分区磁盘
如果修复Grub还是不行,就彻底重新初始化磁盘分区表:
- 从安装介质启动,选择「Install Ubuntu」
- 在分区步骤中,选择「Something else」(自定义分区)
- 选中整个磁盘(比如
/dev/sda),点击「New Partition Table」,选择GPT(推荐)或者MBR - 创建必要的分区:
- BIOS+MBR:创建一个ext4分区,挂载点设为
/,勾选「Bootable」标记,分配剩余空间 - UEFI+GPT:先创建一个FAT32分区,大小200MB,挂载点
/boot/efi;再创建一个ext4分区,挂载点/,分配剩余空间
- BIOS+MBR:创建一个ext4分区,挂载点设为
- 完成安装后,再重复第二步的Grub修复步骤,确保引导正确
额外注意事项
- 如果你的电脑有Secure Boot选项,在BIOS里把它禁用,否则Grub可能无法正常加载
- 切换RAID到AHCI模式后,Windows系统会无法启动,但你已经不在意Windows了,所以不用管这个问题
内容的提问来源于stack exchange,提问作者del sys32




