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

HP Microserver Gen8安装Ubuntu后启动报错:Attempt to read or write outside of disk 'hd0'

HP Microserver Gen8安装Ubuntu后启动报错:Attempt to read or write outside of disk 'hd0'

兄弟,我太懂你这种每次重启都要重新折腾的崩溃感了!两台Gen8不管有没有RAID卡都遇上同一个启动报错,这绝对是这个老机型和Ubuntu搭配的常见坑,我给你整理几个亲测有效的排查和解决办法:

  • 先调对BIOS里的关键设置
    开机按F9进BIOS,先找Storage相关选项:

    • 带LSI MegaRAID的那台:确认RAID卡被正常识别,SATA控制器模式别和RAID卡冲突(比如别同时开RAID和AHCI);
    • 无RAID的那台:把SATA Mode改成AHCI,别用IDE模式,这能减少磁盘识别的兼容性问题;
      另外一定要在Boot Order里把装了Ubuntu的磁盘设为第一启动项,别让安装盘或者其他设备抢了优先级。
  • 修复GRUB引导(最可能解决问题的步骤)
    这个报错大概率是GRUB没正确识别磁盘布局导致的,用Ubuntu安装盘启动到「试用Ubuntu」模式,打开终端一步步来:

    1. 先挂载你的Ubuntu系统分区(比如系统在/dev/sda1,就执行):sudo mount /dev/sda1 /mnt
    2. 挂载系统必需的目录:
      sudo mount --bind /dev /mnt/dev
      sudo mount --bind /proc /mnt/proc
      sudo mount --bind /sys /mnt/sys
      
    3. 切换到系统根环境:sudo chroot /mnt
    4. 重新安装GRUB到磁盘(注意是磁盘不是分区,比如/dev/sda):grub-install /dev/sda
    5. 更新GRUB配置:update-grub
    6. 退出并重启:exit 然后 sudo reboot
      要是带RAID卡的那台,重启后还是有问题,就在chroot环境里装RAID卡的驱动:apt-get install megaraid-sas-dkms,再重新执行update-grub试试。
  • 调整安装时的分区布局
    老机型可能对磁盘分区位置有要求,安装Ubuntu时注意:

    • 一定要用GPT分区表(别选MBR),尤其是4TB的大磁盘;
    • 如果是Legacy启动,专门分一个100MB左右的「BIOS Boot分区」,不用格式化,标记为bios_grub
    • 如果是UEFI启动,分一个200MB左右的EFI分区,格式化为FAT32,挂载点设为/boot/efi
      把这些引导相关的分区放在磁盘最前面,避免系统分区太靠后超出BIOS识别范围。
  • 检查固件和系统版本兼容性

    • 带RAID卡的那台:去HP官网下载Gen8对应的LSI MegaRAID最新固件更新,刷完固件再重新安装Ubuntu;
    • 两台机器都尽量用Ubuntu LTS版本(比如20.04、22.04),这些版本对老硬件的兼容性更稳定,别用太新的非LTS版本,容易出驱动适配问题。

备注:内容来源于stack exchange,提问作者Dennis

火山引擎 最新活动