USBメモリからLinuxインストーラが起動しない
2011年9月15日(木) 技術(インフラ)
CentOS6.0をUSBメモリからnetinstallしたかったのですが、インストールイメージを書き込んだUSBメモリからのLinuxインストーラのブートに手こずりました。しょうもない原因だったんだけど、複数の事象が同時に発生するとパニくるよね。
もちろん、netinstallイメージをCDやDVDに焼き込んでブートすれば何の問題もありません。だけどウチみたく光学ドライブを付けてないマシンもあると思うので、参考にしてもらえればなと思います。あと補足事項。
- USBにイメージを書き込む作業はWindows 7でおこなってます。多分他の環境でもそんなに問題にはならないと思います。
- ここではCentOS6.0を例としていますが、他のバージョンでも問題ないでしょう。
- 一部のUSBメモリはブートローダの書き込みに失敗することがあるようです。ダメだと思ったら諦めて別のやつを買いましょう。
- このサイトの情報を参考にしました。
操作手順
- CentOS6.0のnetinstall用のイメージをどっかから貰ってくる。私はいつも理研さんからもらってきてます(こちら)。
- netinstallイメージはISOイメージなのでそのままでは開けません。適当なツールを使ってバラします。
- netinstallイメージをバラすとisolinuxというフォルダができるので、その中身だけをUSBメモリに書き出しちゃいます。isolinux以外のフォルダ・ファイルは無視してOK。USBメモリは20~30MBあれば十分かな、と。
- USBメモリに書き出したファイルのうち、isolinux.cfgというファイルをsyslinux.cfgに書き換えます。
- ここからsyslinuxというツールをダウンロードしてきてください。現時点での最新バージョンは4.04ですが、私の環境ではうまくいかず、3.86版を使ったら上手くいきました。
- syslinuxを解凍し、コマンドプロンプトでsyslinux内のwin32フォルダに移動します。64ビット環境でも大丈夫でした。
- USBメモリがFドライブの場合、コマンドプロンプトで
syslinux -ma f:
などと打ちます。ドライブレターが異なる場合は適宜変更してください。このコマンドにより、USBメモリ内にブートローダが書きこまれ、USBメモリからブート出来るようになります。問題がなければ何の出力もなくプロンプトが返ってきます。何かメッセージが出たら問題ありってことです。
- CentOSをインストールすべきマシンにUSBメモリを刺して、いざ起動!CentOSのインストール方法についてはこの記事では触れません。
ハマったポイント
syslinuxのバージョンについて
上でも書いてますが、私の環境ではsyslinuxのバージョン4を使うとなぜかsyslinuxコマンドがエラーを返すため、うまくいきませんでした。Google先生に聞いてみると同様の症状が出ている人がチラホラいるようです。バージョン4で上手くいかない場合はバージョン3のものを使ってみてください。
USBブートについて
これは私の勘違いなのか、ASUSマザーボードの仕様なのかは分かりませんが、BIOSでUSBブートのプライオリティをHDDより高くしてもUSBからブートはしてくれませんでした。ここで散々ハマりつつも、マシン起動時にF8を押してブートデバイスを選択することで何とか解決。それくらい先に確認しろと反省しきりです。
それにしてもBIOSのUSBブートプライオリティは何のためにあるんだろう?