Grub:尝试读取或写入磁盘“hd0”之外的内容

Grub:尝试读取或写入磁盘“hd0”之外的内容

我们有一台 Dell PowerEdge R730xd,配有 24 个 SSD,每个 500GB。我们需要在这台机器上安装 Ubuntu 14.04 LTS,并将其用作数据库(postgresql)。

我们的 RAID 控制器是 Avago MEGARAID,据我所知,它的行为与 H310 卡完全一样。

我在 RAID10 中设置了 2 个虚拟驱动器(16 和 8),因此我们现在

  • /dev/sda(4TB)
  • /dev/sdb(2TB)

我在安装 Ubuntu 14.04 LTS 时遇到了麻烦。即使在启动时选择最自动化的安装(引导:使用整个磁盘/dev/sda),我还是会受到 Grub 救援模式的欢迎,并显示以下消息

attempt to read or write outside of disk 'hd0'

通过在 grub 救援模式下执行一些命令,我​​遇到了这些设备

  • (hd0,gpt3),未知文件系统,应该是swap分区
  • (hd0,gpt2),被识别为ext2分区,包含/boot文件夹,但尝试访问该文件夹会返回相同的错误(尝试读取或写入磁盘“hd0”之外的内容
  • (hd0,gpt1),被认为是未知文件系统,它应该是一个BIOSgrub分区(毕竟我们处于 GPT 模式)
  • (hd1),2TB 硬盘

尝试/dev/sda使用 Ubuntu LiveCD 重新安装 grub 并没有帮助。我们仍然受到同样的错误欢迎。我可以/dev/sda2在救援模式下安装并检查的内容grub.cfg,但我不确定需要检查什么。到处都正确地引用了(hd0,gpt2)

即使运行启动修复后,我们仍然会遇到同样的错误:

答案1

我通过不在 2TB 硬盘上安装 Ubuntu 解决了这个问题。

我对 24 个 500GB 驱动器进行了如下重新分区

  • 2 RAID1(500GB)-Ubuntu
  • 16 RAID10 (4TB) - 主数据存储
  • 6 RAID10 (1.5TB) - 附加数据存储

在 500GB RAID1 磁盘上安装 Ubuntu 没有问题。

答案2

TL;DR:说明位于https://help.ubuntu.com/community/BootPartition 修理它

这是一个常见问题,因为许多 BIOS 中的安全“功能”不允许启动硬盘前 100GB(大约)以外的空间。他们在此处记录了详细说明:https://help.ubuntu.com/community/InstallingUbuntuOnBigDisk它可以解决我的问题。

我的机器是 Dell PowerEdge T300,配有 PERC H700 RAID 控制器和 2 个 6TB RAID5 阵列,运行 Ubuntu Server 16.04 LTS。我不想丢失所有数据,因此我没有重新格式化,而是对主 RAID 驱动器进行了重新分区,在磁盘开头有一个 1GB 的分区(花了一整夜才完成),然后运行启动修复,将启动文件重新定位到新分区(完整说明在这里:https://help.ubuntu.com/community/BootPartition

我的旧解决方案(我将留在这里)仅暂时地修复它...

  1. 物理断开所有不属于我安装 Ubuntu 的虚拟驱动器的驱动器
  2. 清除虚拟驱动器的内容(在 raid 控制器 GUI 中重新初始化它)
  3. 完成 Ubuntu 安装,关闭机器,删除安装介质
  4. 它像正常一样启动到 Ubuntu,并且我能够物理地重新连接所有驱动器而不会产生不利影响 :)

希望这能帮助到别人

相关内容