HP ProLiant MicroServer Gen8使用Super GRUB2 Disk从TF卡启动光驱位安装的Debian 8.3

简介


MicroServer Gen8属于HPE(Hewlett Packard Enterprise,惠普企业级产品)而不是HP,MicroServer Gen8的支持页面(如驱动下载)在HPE,官网首页是http://www.hpe.com,不是http://www.hp.com

HPE大约从2015年起变更了服务支持策略,普通驱动可以无限制下载,但是BIOS、SPP更新等可能需要用主机序列号注册、且在主机质保期内方能下载,超期就只能等待别人搬运分享了。

MicroServer Gen8在AHCI模式时,五个SATA和普通主板的功能一样,唯一不同的是MS G8的BIOS不能选择用哪个硬盘启动。
它会尝试从SATA1引导,如果SATA1没有连接硬盘,则尝试从SATA2引导,以此类推。
可是SATA1~4是硬盘笼子;通常人们都是将4个3.5寸仓库盘放到笼子里面;然后通过SATA5连接一个2.5寸硬盘(放置在9.5mm光驱位置)做系统盘。当五个硬盘都连接时,BIOS仅尝试从SATA1引导,结果出现引导失败。

解决方法就是通过安装一个U盘或MicroSD卡,从而间接引导SATA5接口上的系统盘。

网上给出的方法都是引导Windows系统的,而我们安装的如果是Linux系统的话,则无法简单的使用这些方法来引导系统的。
自己探索了一下,通过使用Rufus来使用并且修改Super GRUB2 Disk的方式来启动Debian的方法。

解决方法


1.安装Debian Linux系统

只插上光驱位置上的硬盘,然后安装Debian Linux系统,只有这样,才能正常安装系统,否则会出现无法安装到正确的磁盘上面。

2.开启SATA AHCI模式

通过 Intelligent Provisioning安装根本就找不到 tf卡(在 bios中可以把默认的 Dynamic HP Smart Array改成 SATA AHCI模式后就可以顺利安装了,但这样 raid功能也没了)

sata-mode-in-bios

3.下载必须的软件

下载Super GRUB2 Disk最新的镜像文件,官网为http://www.supergrubdisk.org/,一定要下载hybrid版本。
下载Rufus最新的版本,官网地址为https://rufus.akeo.ie/
也可以在本网站下载我使用的版本Super GRUB2 Diskrufus-3.10

4.安装Super GRUB2 Disk到SD卡

按照下图的步骤处理:

如果使用2.8.x版本,参考下图(注意,如果使用最新的2.0.4版本的Super GRUB2 Disk,只能使用3.11.x版本的Rufus

Rufus-ISO-Select
Rufus 2.8.886

只有如下选项才能保证可以在Windows中可以正常访问修改Super GRUB2 Disk已经安装到SD卡上的内容。

Rufus-ISO-Select-ISOHybrid

如果使用3.10.x版本(已知Rufus 3.11.1678写入的数据无法引导系统,只能使用3.10.x版本),参考下图

Rufus 3.10.1647

只有如下选项才能保证可以在Windows中可以正常访问修改Super GRUB2 Disk已经安装到SD卡上的内容。

5.增加Gen8的启动配置文件

在刻录好的SD卡的\boot\grub(Super GRUB2 Disk 2.02)或者\boot\grub\sgd(Super GRUB2 Disk 2.04)目录下创建一个名为Gen8.cfg的配置文件,内容如下:

一般建议是通过指定磁盘的uuid的方法来启动系统,如果能够确定系统磁盘上存在一个唯一的文件,也可以通过简单的指定文件的方法来让GRUB2来搜索的方式找到启动磁盘。

对于 Super GRUB2 Disk 2.02
修改\boot\grub\main.cfg,在
process_main_option "${prefix}/language_select.cfg"
这行代码下面增加
process_enable "${prefix}/Gen8.cfg" rootmenu

对于 Super GRUB2 Disk 2.04
修改\boot\grub\sgd\main.cfg,在
process_main_option "${sg2d_directory}/language_select.cfg"
这行代码下面增加
process_enable "${sg2d_directory}/Gen8.cfg" rootmenu

并且打开被注释掉的set timeout=10项目,让系统自动启动,否则需要手工点击一下回车。
修改后的内容如下:

6.插上SD卡,断电,然后冷重启

7.常见问题

注意:如果安装升级的是ubuntu 20.04.1,系统启动的时候,会出现error: symbol 'grub_calloc' not found

如下图:

但是奇怪的是,如果在系统启动的时候选择Detect and show boot methods,显示出的任何菜单,都可以正常启动系统,如下:

这个问题是因为ubuntu 20.04.1系统使用的是新版本的grub2引导系统,启动配置信息需要进行调整,修改我们创建的\boot\grub\Gen8.cfg(Super GRUB2 Disk 2.02)或者\boot\grub\sgd\Gen8.cfg(Super GRUB2 Disk 2.04),内容调整为如下:

参考链接


  1. 制作HP MicroServer Gen8可用的ESXi 5.x SD/TF卡启动盘
  2. HP ProLiant MicroServer Gen8迷你服务器 汇总贴:降噪、升级、改造
  3. Rescatux & Super Grub2 Disk
  4. Rufus
  5. HP ProLiant MicroServer Gen8 资源:SPP 2016.04、iLO4 2.40
  6. Gen8通过TF卡启动光驱位硬盘的新办法(增减硬盘无需改动)
  7. GRUB
  8. GNU GRUB Manual 2.04
  9. grub boot error : "symbol 'grub_calloc' not found

发布者

《HP ProLiant MicroServer Gen8使用Super GRUB2 Disk从TF卡启动光驱位安装的Debian 8.3》上有16条评论

  1. 评论被屏蔽?再试一下

    请教一下,我的情况一样,不过我的系统是esxi ,请教怎么引导?要怎么修改相关设置?

    1. 评论不敢直接开放,某些言论,会被请喝茶,在此请谅解。有人专门写了esxi相关的办法的,请看我的参考链接部分中的"制作HP MicroServer Gen8可用的ESXi 5.x SD/TF卡启动盘"

        1. 这个问题不大的,TF卡只是负责把系统启动定位到指定的磁盘上而已,既然他可以安装到TF卡,那也可以安装到sata5上面,然后用TF卡引导到sata5上面,目前测试来看,是没办法不通过TF卡的引导来启动系统的,这个主要是由于自带的阵列卡导致的,如果不通过TF卡,启动顺序是交给阵列卡来处理的,而阵列卡永远都是从第一块硬盘引导。

          1. 我明白
            也安装过系统到sata5并成功引导,不过是windows
            这次换成了esxi,不知道怎么引导,所以找博主帮忙看看这个应该怎么设置。

          2. 如果不出我的猜测的话,你是不是没办法通过GRUB引导Windows?如果是这样的话,只需要修改一下配置文件即可了!
            类似如下的样子试试
            ### BEGIN /etc/grub.d/30_os_prober ###
            menuentry 'Windows 7 Ultimate' {
            insmod part_msdos
            insmod ntfs
            #set root='(hd0,msdos1)'
            search -f /ntldr --set root
            chainloader +1
            }
            ### END /etc/grub.d/30_os_prober ###

  2. 请教如何通过TF卡引导到GPT分区格式的硬盘!
    因为之前安装 Windows Server 2012 R2 的系统硬盘有坏道,换了个4T的,现在怎么在GEN8上安装和启动它呢?谢谢

  3. 买了一些linux的书籍,本来就喜欢debian,在GEN8上面清空,重新安装了debian系统,好好弄一些,翻看了博主的所有文章,把GEN8么更新下,然后系统弄好,用作家里的文件服务器,很感谢,安装debian及引导这一块看了你的文章很实用。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注