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
Rufus 3.10.1647

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

Rufus-ISO-Select-ISOHybrid-3.10.x

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

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

 

# Super Grub Disk - Gen8.cfg
 
set option_title=$"Gen8"
 
function run_option {
  echo "Starting Gen8 ..."
  #for uuid
  #search --set=root --fs-uuid 763A-9CB6
  #for file
  search --set=root --file /boot/grub/grubenv
  set prefix=(${root})/boot/grub
  normal
}

 

一般建议是通过指定磁盘的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

如下图:

SuperGrub2Error3

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

SuperGrub2Error1

SuperGrub2Error2

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

 

# Super Grub Disk - Gen8.cfg
 
set option_title=$"Gen8"
 
function run_option {
  echo "Starting Gen8 ..."
  #for uuid
  #search --set=root --fs-uuid 763A-9CB6
  #for file
  insmod xfs
  search --set=root --file /boot/grub/grubenv
  configfile /boot/grub/grub.cfg
}

 

 

参考链接


  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

原文链接:https://www.mobibrw.com/2016/4172

阅读剩余
THE END