USBメモリでCentOS 6.3の全自動インストールメディアを作成する
PCに挿して起動すると、CentOSを全自動でインストールすることができるUSBメモリを作ります。インストールパッケージはUSBメモリに含めず、HTTPで取得する方法をとります。ブートローダにはsyslinuxを使い、自動インストールはKickstartの仕組みを使います。
作業はWindows7 64bit環境で行いました。インストールの確認は64bit機を使って、CentOS 6.3 x86_64で行いました。
インストールメディアの作成に入る前に、USBメモリブートによるCentOSのインストールがどんな流れで行われるかを見ておきましょう。
(1) BIOS起動
(2) USBメモリのMBRを参照
(3) ブートローダ(syslinux)をロード・起動
(4) インストーラのカーネル(vmlinuz)をロード・起動
(5) Kickstartファイルに従って自動インストール
+------+ +----------+ +---------+ | BIOS | ==> | syslinux | ==> | vmlinuz | +------+ +----------+ +----+----+ | +-------+--------+ | Kickstart file | +----------------+
インストールメディアとなるUSBメモリには、ブートローダやインストーラのカーネル、Kickstartファイルなどが入っている必要があります。では、USBメモリでインストールメディアを作成する手順を見ていきましょう。
0. インストールメディア作成の手順
(1) Kickstartファイルを用意する
(2) インストーラをダウンロードする
(3) syslinux.cfgを用意する
(4) USBメモリにファイルをコピーする
(5) USBメモリにMBRをインストールする
(6) CentOSのインストールを開始する
1. Kickstartファイルを用意する
まずはじめに、Kickstartファイルを作成しておきます。Kickstartファイルは全自動インストールのキモとなる部分です。今回はリスト1のように定義して、ks.cfgとして保存しました。
リスト1 : ks.cfg
text autostep install url --url http://ftp.riken.jp/Linux/centos/6/os/x86_64 lang ja_JP.UTF-8 keyboard jp106 timezone --utc Asia/Tokyo rootpw testsvpw network --onboot yes --device eth0 --bootproto dhcp --noipv6 --hostname testsv firewall --enabled --service=ssh selinux --disabled authconfig --enableshadow --passalgo=sha512 bootloader --location=mbr --driveorder=sdb --append="nomodeset crashkernel=auto rhgb quiet" clearpart --initlabel --all --drives=sdb part /boot --fstype=ext4 --size=500 --ondrive=sdb part / --fstype=ext4 --size=50000 --ondrive=sdb part swap --size=2016 --ondrive=sdb %packages @base @core @japanese-support %end
ポイントはパーティションを作成するドライブ名です。USBメモリがsdaとして認識されるので、HDDはsdb以降のドライブとなります。今回はsdbにインストールします。その他の構成について、簡単に説明しておきましょう。
- インストールパッケージは http://ftp.riken.jp/Linux/centos/6/os/x86_64 から取得します。
- ネットワーク設定はDHCPを使います。
- ファイアウォールは有効です。
- SELinuxは無効です。
- パッケージは基本的なものだけをインストールします。
2. インストーラをダウンロードする
インストーラのカーネルなどをダウンロードします。インストーラのセットはCentOSのisolinuxディレクトリにまとめられていますので、そのディレクトリにあるファイルを全て保存します。CentOSの適当なミラーサイトからダウンロードするとよいでしょう。
CentOS 6.3 x86_64 : isolinuxダウンロード
ミラー 1 : http://ftp.riken.jp/Linux/centos/6.3/os/x86_64/isolinux/
ミラー 2 : http://ftp.jaist.ac.jp/pub/Linux/CentOS/6.3/os/x86_64/isolinux/
isolinuxのファイル一覧
- boot.msg
- grub.conf
- initrd.img
- isolinux.bin
- isolinux.cfg
- memtest
- splash.jpg
- vesamenu.c32
- vmlinuz
3. syslinux.cfgを用意する
ダウンロードしたファイルの中にisolinux.cfgがあります。このisolinux.cfgをsyslinux.cfgにリネームします。
続いて、syslinux.cfgを以下のように変更します。
リスト2 : syslinux.cfg.patch
--- syslinux.cfg.orig 2012-08-13 18:52:08.253137037 +0900 +++ syslinux.cfg 2012-08-13 18:53:59.405341327 +0900 @@ -1,4 +1,4 @@ -default vesamenu.c32 +default kickstart #prompt 1 timeout 600 @@ -35,4 +35,7 @@ menu label ^Memory test kernel memtest append - +label kickstart + kernel vmlinuz + append initrd=initrd.img ks=hd:sda1:/ks.cfg
4. USBメモリにファイルをコピーする
必要なファイルがそろったので、USBメモリにコピーします。isolinuxのファイル、syslinux.cfg、ks.cfgを全てルートディレクトリに保存します。USBメモリはUドライブとして認識されているものとします。
U:\+ +-boot.msg +-grub.conf +-initrd.img +-isolinux.bin +-ks.cfg +-memtest +-splash.jpg +-syslinux.cfg +-vesamenu.c32 +-vmlinuz
5. USBメモリにMBRをインストールする
MBRのインストールにはsyslinuxを使います。syslinuxはkernel.orgかミラーサイトからダウンロードすることができます。現在の最新版はsyslinux-4.05.zipでしたので、これをダウンロードします。
syslinuxダウンロード
kernel.org : http://www.kernel.org/pub/linux/utils/boot/syslinux/
ミラー : http://ring.nict.go.jp/archives/linux/kernel.org/utils/boot/syslinux/
ダウンロードしたsyslinux-4.05.zipを展開します。コマンドプロンプトから、展開したフォルダにあるsyslinux-4.05\win64\syslinux64.exeを実行してMBRをインストールします。この時、コマンドプロンプトは「管理者として実行」してください。USBメモリはUドライブとして認識されているものとします。
> syslinux-4.05\win64\syslinux64.exe -ma U:
6. CentOSのインストールを開始する
PCにUSBメモリを挿して起動します。設定が正しくできていれば、全自動でインストールが完了します。