~nabeken/diary/

Gentoo Linux(6年くらい)とFreeBSD(1年くらい)とOpenBSD(新参者)を使う日々。


IHANet BGP peering overview

Windows 7をiSCSI targetへインストールする

Posted on Wed Sep 07 09:48:19 +0900 2011 by nabeken

録画環境のWindows XPが入ったマシンのハードディスクが故障したのを機に Windows 7 Professional (64bit)をiSCSIへインストールしました。かなり苦戦したので 顛末を記します。

構成

M/B
Intel D501MO
OS
Windows 7 Professional (64bit)
Mem
DDR2 2GB x1, 512MB x1
機材
PT2, QRS-UT100B

PT2、QRS-UT100BをWindows 7 64bitで動かす方法は割愛します。 TvRock + TvTestで快適に録画できています。

iSCSI target側構成

OS
FreeBSD 8.2-RELEASE
target
istgt version 0.4.20110717
fs
もちろんZFS!!!

gPXE経由でsanboot

gPXE経由でsanbootすればWindows 7を直接iSCSI targetへインストールできると信じていました…。

問題はいくつかありました。

  1. 自分でDHCPサーバを立ててroot-pathを渡す

    この場合、インストーラーではiSCSI targetを認識できますが、 エラーメッセージがでてインストールできません。

    (dhcpd.confでgPXEの値によってfilenameを渡したりroot-pathを渡している場合)

  2. gPXE経由でsanbootしてもインストーラーではiSCSI targetは認識できない

    さまざまな記事ではさもsanbootすれば認識できるかのように書いてあります。 が、実際にはDHCPサーバの設定に左右されます。以下の設定の場合、DHCPサーバで PXEブート用の filename 設定(gPXE用)が入っている場合は失敗します。

    dhcp net0
    set keep-san 1
    sanboot iscsi:10.3.5.35::::iqn.2000-07.org.example:moge
    exit
    

    この問題を回避する場合はdhcp net0ではなくて、手動でIPアドレスを設定します。 なお、この設定はiBT領域に書き込まれ、その後Windows側のIPアドレス設定としても使われます。

    ifopen net0
    set net0/ip X.X.X.X
    set net0/netmask X.X.X.X
    set net0/gatewayh X.X.X.X>
    set net0/dns 8.8.8.8
    

そもそもの問題はWindows 7のインストーラでiSCSI targetを認識していてもインストールできない件です。 残念ですが、一旦実機のハードディスク上へインストールする必要があります。 (仮想マシンではなくて実機です。iSCSIブートに使用するNICを含んでインストールする必要があります)

  1. ハードディスクを実機に接続し、DVDROMからWindows 7をインストール

  2. NICのLWF (Light Weight Firewall) を切る

    参考: http://blog.zorinaq.com/?e=41

    私の環境では再起動すると毎度設定が復活するため、強引にレジストリの該当キーを書き込み不可にしました。

  3. ハードディスクの中身をiSCSIターゲットへコピー

    私はインストール直後の環境でSystemRescue CDから起動し、ddしました。

  1. ネットワーク設定

    iSCSIブートしたWindows 7ではgpxeで設定したネットワーク設定がそのまま使われます。 ただし、デフォルトゲートウェイだけはどうやってもiSCSIターゲットのIPアドレスになって しまいます。

    Windows 7ではDNSサーバもIPv6アドレスを設定できるので、全部IPv6へ移行するのも手です(httpプロキシとか)。 IPv4でなんとかしたい場合は「デフォルトゲートウェイ削除→デフォルトゲートウェイ再設定」するバッチファイルを 作る必要があります。

    もっとも、録画専用機なのでインターネットに繋がっていなくても問題はなくどちらの対策もまだ行なっていません…。

一旦、iSCSIブートできるようになるとあとは zfs snapshot が使えるようになるのでこれまでの苦行も報われるというものです。

結論

WindowsをiSCSIブートさせるなら:

  • 素直にDHCPサーバを立てる
  • IntelのNICを買ってiSCSIブートできるROMを焼く

LinuxならgPXEで何の問題もありません。Windowsは疲れます。

更新履歴

  • 初稿 (Wed, 7 Sep 2011 09:48:19 +0900)