iSCSIを使ってディスクレスPCにUbuntuをインストールする
とりあえずインストーラが動いたのでメモです。気が向いたら空白を埋めます。
gpxeのインストール
hpa-tftpのインストール
pxe-pdhcpのインストール
PXEによる起動
gpxeのプロンプトで以下を入力します。
kernel tftp://接続先ホスト/ubuntu-installer/linux iscsi=true initrd tftp://接続先ホスト/ubuntu-installer/initrd.gz boot
インストーラの設定
iSCSIボリュームの認識
以下のドライバを読み込みます。
Alt+F2を押してコンソールに落ちます。
すでにiSCSIイニシエータが入っているLinuxから以下のファイルをコピーします。
- /usr/sbin/iscsid
- /usr/sbin/iscsistart
iSCSIターゲットに接続します。
iscsistart -i iqn.イニシエータ -t iqn.ターゲット -g 0 -a 接続先ホスト
Alt+F1でインストーラに戻って続けます。
パーティションの設定
iSCSIボリュームからの起動
gpxeのプロンプトで以下を入力します。
sanboot iscsi:接続先ホスト::::iqn.ターゲット
initramfsにiSCSIイニシエータが入っていなくて路頭に迷う午前2時。
すぐにESCキーを押してgrubの設定画面に入ります。カーネルパラメータを書き換えます。
kernel カーネルイメージのパス root=/dev/sda
iSCSIイニシエータのコピー
- /usr/sbin/iscsid
- /usr/sbin/iscsistart
http://packages.ubuntu.com/jaunty/amd64/linux-image-2.6.28-11-server/download からカーネルモジュールを落としてきてinsmodします。
- /lib/modules/2.6.28-11-server/kernel/crypto/crc32c.ko
- /lib/modules/2.6.28-11-server/kernel/lib/libcrc32c.ko
iSCSIターゲットに接続します。
iscsistart -i iqn.イニシエータ -t iqn.ターゲット -g 0 -a 接続先ホスト
switch_rootが見つからなくて路頭に迷う午前3時。
iSCSIターゲットに接続すると、ボリュームが/dev/sdaに見えるようになります。シェルでCtrl+Dを押してbusyboxを抜けると、そのまま/dev/sda1から起動してくれます。