まえがき
HP DL180 Gen9にCentOS7を入れようとしたところ、RAIDコントローラが認識できなかった。
元々2本のSAS HDDをRAID1で組んでいてOSからは1つのディスクが見えてほしかったのだが、RAIDコントローラが認識できないせいで、2つのディスクが見えていた。
わお、これではインストールができない。
普通、HP製サーバにWindowsでもLinuxでもOS入れるときはInteligent Provisioningという便利機能を使うことによって、その辺のドライバ関連を自動的にインストールしてくれるのだが残念ながらInteligent ProvisiongではCentOS7が対応していないらしく、使用できなかった。
それで、直接OS入れようとしたら上述のような自体になった。
まぁそれはそれで、インストール時にRAIDコントローラのドライバを読み込ませてあげて事なきを得たのだけれど、今回事情があってサーバのディスク丸ごとバックアップ/リストアを行う必要があったので、RAIDコントローラのドライバを組み込んだLiveCDを作る必要に迫られたので、メモメモ。
前提
- CentOS7.0.1406をベースとしたLiveCDを作成する
- HP DL180 Gen9に搭載されているRAIDコントローラB140iのドライバを組み込む
- livecd-toolsがインストール済であること
準備
- Hewlett Packard Enterprise サポートセンター から、hpdsa-1.2.10-114.rhel7u0.x86_64.dd.gzをダウンロード
- 適当なUSBメモリやSDカードなどにddで書き込む
- 「2.」で焼いたUSBメモリなどをCentOS7サーバに挿入
- マウント
mount /dev/sdb /media/
※マウントして終わりでも良いが、適当なフォルダに中身を丸ごとコピーしておいても良い
※中にはdriverのrpmが入っている
※マウント先あるいはコピー先のパスは後で使用するので控えておく
mkdir b140i_driver
cp -a /media/* b140i_driver
実作業
大雑把な流れとしては以下
- RAIDコントローラのドライバをインストールするようにしたkickstartファイルを作成
- そのkickstartファイルを使用して、LiveCDのイメージファイルを生成
ベースとなるkickstartファイルをDL
Live CD/DVD作成用のkickstartファイルが公式に公開してくれているので、ありがたく使わせてもらいます
※公式と言っていいのかわからないけどCentOSアカの中なので・・・
まずはダウンロード
wget https://raw.githubusercontent.com/CentOS/sig-core-livemedia/master/kickstarts/centos-7-livecd.cfg
20行目あたりに下記を追加
※fileには「準備」のところでマウントあるいはコピー済のdriverの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のdriverがLiveCDに組み込まれる。
ただし、CentOS7.0時代のkickstartだからだと思うが、リポジトリが既になく、ファイルのDLに失敗してしまうため、さらに以下を修正
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
一応、全体的なdiffを
[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って何?
Linuxの自動インストール機能のこと。
どんな設定になって、どんなパッケージをインストールして、パスワードはこれで、ユーザはこれを用意して~~っていうのをまとめたkickstartファイルを用意してあげると、それに従って勝手にインストールしてくれる。
インストール時に追加ドライバ読み込ませるにはどうしたら?
- ドライバ自体は「準備」と同じようにサポートページからDLして適当なメディアに焼いておく。
- インストールメディアでブートした後、メニューで止まると思うが、そこの画面の「Install CentOS7」という箇所で「e」キーを押すとインストールパラメータを指定できる。そこで
inst.dd modprobe.blacklist=ahci
```というパラメータ文字列を追記する。quietの後ろにスペースあけて、追記すると良い。
3. あとはその状態で起動。その間に用意したドライバメディアを挿す。
4. 起動途中で対話式メニューが実行され、そこでドライバメディアあるいはその中身が表示されるので、移動してdriverのrpmを指定してcontinue
# 参考
* 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