创建自定义的CentOS 7 LiveCD

前言

在尝试安装CentOS7到HP DL180 Gen9时,无法识别RAID控制器。

最初我们把两个SAS硬盘组成RAID1,并希望从操作系统中只看到一个硬盘,但由于RAID控制器无法被识别,导致两个硬盘都能被看到。哇,这样是无法安装的。

当在普通或者HP制造的服务器上安装Windows或者Linux操作系统时,可以使用智能配置功能,它能够自动安装相关驱动程序。但可惜的是,智能配置功能不支持CentOS7,所以无法使用。因此,当尝试直接安装操作系统时会遇到上述问题。

嗯,总而言之,虽然在安装过程中成功加载了RAID控制器驱动程序,但这次由于特殊情况需要对服务器的整个磁盘进行备份/恢复,所以迫切需要制作一个集成了RAID控制器驱动程序的LiveCD,留个备忘。

前提 (Qian ti)

    • CentOS7.0.1406をベースとしたLiveCDを作成する

 

    • HP DL180 Gen9に搭載されているRAIDコントローラB140iのドライバを組み込む

 

    livecd-toolsがインストール済であること

准备工作

    1. 从Hewlett Packard Enterprise支持中心下载hpdsa-1.2.10-114.rhel7u0.x86_64.dd.gz文件

 

    1. 使用dd命令将其写入适当的USB存储设备或SD卡等

 

    1. 将使用”2.”中写入的USB存储设备等插入CentOS7服务器

 

    执行挂载操作
mount /dev/sdb /media/

※可以选择直接挂载完毕,但也可以将内容整体复制到适当的文件夹中备份
※里面包含了驱动的rpm文件
※挂载目的地或复制目的地的路径稍后会使用,请记下来

mkdir b140i_driver
cp -a /media/* b140i_driver

实际操作

大致的流程如下

    • RAIDコントローラのドライバをインストールするようにしたkickstartファイルを作成

 

    そのkickstartファイルを使用して、LiveCDのイメージファイルを生成

下载基础kickstart文件。

因为官方为制作Live CD/DVD提供了kickstart文件,所以我很感激地使用它。
※虽然不确定能否称其为官方,但这是在CentOS账户中。

首先要下载

wget https://raw.githubusercontent.com/CentOS/sig-core-livemedia/master/kickstarts/centos-7-livecd.cfg

在大约第20行附近添加以下内容:
※在”准备”部分的”file”中写入已经装载或复制好的驱动器rpm路径

# For HPE b140i driver
repo --name=hpe_driver --baseurl=file:/media/kmod-hpdsa-1.2.10-114.rhel7u0/rpms/x86_64/

在位于第1020行附近的与grub相关的部分下方,在%end之前添加以下内容。

# For HPE b140i driver
kmod-hpdsa

这样b140的驱动程序将被集成到LiveCD中。
然而,我认为这是因为它是基于CentOS7.0时代的kickstart,所以存储库已经不存在,并且文件下载失败,所以需要进一步修正。

将第17行的repo ~~ mirror.centos.org ~~注释掉
在第18行添加

※你可以在浏览器上实际查询此URL,就会发现以前可能有过,但当前不存在这样的路径。

#repo --name=base --baseurl=http://mirror.centos.org/centos/7.1.1503/os/x86_64/ --excludepkgs=grubby
repo --name=base --baseurl=http://archive.kernel.org/centos-vault/7.0.1406/os/x86_64/ --excludepkgs=grubby

如果你不想做的话也没关系,但请将键盘改成日语模式。
请在第3-4行左右进行以下更改。

keyboard jp106
timezone Asia/Tokyo --isUtc

在第1365行附近进行以下更改:

localectl set-keymap jp
localectl set-x11-keymap jp

一応,对全体进行了差异化评估。

[root@localhost ]# diff centos-7-livecd.cfg centos-7-livecd.cfg.orig
3,4c3,4
< keyboard jp106
< timezone Asia/Tokyo --isUtc
---
> keyboard us
> timezone Europe/Brussels --isUtc
17,18c17
< #repo --name=base --baseurl=http://mirror.centos.org/centos/7.1.1503/os/x86_64/ --excludepkgs=grubby
< repo --name=base --baseurl=http://archive.kernel.org/centos-vault/7.0.1406/os/x86_64/ --excludepkgs=grubby
---
> repo --name=base --baseurl=http://mirror.centos.org/centos/7.1.1503/os/x86_64/ --excludepkgs=grubby
21,23d19
< # For HPE b140i driver
< repo --name=hpe_driver --baseurl=file:/root/kmod-hpdsa-1.2.10-114.rhel7u0/rpms/x86_64/
<
1018,1019c1014
< # For HPE b140i driver
< kmod-hpdsa
---
>
1365,1366c1360,1361
< localectl set-keymap jp
< localectl set-x11-keymap jp
---
> localectl set-keymap us
> localectl set-x11-keymap us
1370a1366
>

生成LiveCD的映像文件

执行以下命令后,将生成一个ISO文件,然后您可以将其刻录到CD上,或者以自己喜欢的方式进行挂载。
尽管这取决于机器配置,但命令完成可能需要超过10分钟,所以请耐心等待。

LANG=C livecd-creator \
--verbose \
--config=centos-7-livecd.cfg \
--fslabel="CentOS-7-x86_64-LiveMin-1406" \
--title="CentOS Linux 7.0.1406 Live" \
--product="CentOS Linux 7.0.1406 Live"

赠品

“Kickstart是什么意思?”

提供一个kickstart文件,文件中包含了关于Linux自动安装功能的相关设置,包括安装哪些软件包,使用哪个密码以及提供哪个用户名。系统会按照这个文件的设置自动完成安装。

在安装时如何加载附加驱动程序?

    驱动程序本身可以从支持页面下载并刻录到适当的媒体上,就像准备一样。在引导安装媒体后,菜单会停在某个界面,然后按“e”键可以指定安装参数,在“Install CentOS7”一栏处。在那里,追加参数字符串“inst.dd modprobe.blacklist=ahci”。在“quiet”后面加一个空格,然后追加并保存。然后继续启动。在启动过程中,将准备好的驱动程序媒体插入。在启动过程中,会出现交互式菜单,并显示驱动程序媒体或其内容,然后移动并指定driver的rpm以继续安装。

请使用以下英文原文参考: “Reference”

参阅

    • https://access.redhat.com/documentation/ja-JP/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/sect-driver-updates-performing-ppc.html

 

    • http://h50146.www5.hpe.com/products/software/oe/linux/mainstream/product/hardware/pl_all/rhel6_dl_gen8.html

 

    • http://tech.blog.surbiton.jp/tag/inst-dd-modprobe-blacklistahci/

 

    http://serverfault.com/questions/721523/install-centos-7-on-hp-dl120-gen9-server-with-b140i-raid-controller
bannerAds