创建自定义的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がインストール済であること
准备工作
-
- 从Hewlett Packard Enterprise支持中心下载hpdsa-1.2.10-114.rhel7u0.x86_64.dd.gz文件
-
- 使用dd命令将其写入适当的USB存储设备或SD卡等
-
- 将使用”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