GeekFactory

int128.hatenablog.com

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から起動してくれます。