LoginSignup
14

More than 5 years have passed since last update.

CentOS7 カスタムLiveCD作成

Posted at

まえがき

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がインストール済であること

準備

  1. Hewlett Packard Enterprise サポートセンター から、hpdsa-1.2.10-114.rhel7u0.x86_64.dd.gzをダウンロード
  2. 適当なUSBメモリやSDカードなどにddで書き込む
  3. 「2.」で焼いたUSBメモリなどをCentOS7サーバに挿入
  4. マウント
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を

centos-7-livecd.cfg
[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ファイルを用意してあげると、それに従って勝手にインストールしてくれる。

インストール時に追加ドライバ読み込ませるにはどうしたら?

  1. ドライバ自体は「準備」と同じようにサポートページからDLして適当なメディアに焼いておく。
  2. インストールメディアでブートした後、メニューで止まると思うが、そこの画面の「Install CentOS7」という箇所で「e」キーを押すとインストールパラメータを指定できる。そこで inst.dd modprobe.blacklist=ahci というパラメータ文字列を追記する。quietの後ろにスペースあけて、追記すると良い。
  3. あとはその状態で起動。その間に用意したドライバメディアを挿す。
  4. 起動途中で対話式メニューが実行され、そこでドライバメディアあるいはその中身が表示されるので、移動してdriverのrpmを指定してcontinue

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14