http://www.ipxe.org/wimboot
iPXEを使ってiSCSIターゲット内ディスクにWindows7をインストールする方法は知っていました。 具体的には、iPXEでiSCSIターゲット内ディスクをsanhook(あるいは gpxeでkeep-san+sanboot失敗)し、 物理DVDドライブ(あるいはUSBフラッシュメモリー)を使ってWindows7のインストーラを起動する方法です。
インストーラもネットワークブートできればいいなと思い、やってみました。 iPXE、iSCSIターゲットとしてtgt、httpサーバとしてlighttpdを使いました。
以下 iSCSIターゲット内ストレージを iSCSI-DD Windows7のDVDイメージを win7.iso と呼ぶ事にします。
ちなみに、win7.isoをsanbootしても、インストールはできませんでした。
sanhook/sanboot の --driveについて
iSCSI-DDを0x80、win7.isoを0x81等にするとインストーラが起動せず、
win7.isoを0x80、iSCSI-DDを0x81等にするとインストーラは起動するが、
インストール先にiSCSI-DDを選択したところで、
「それは無理、BIOSから見えてないから(要約)」というエラーが出てインストールできませんでした。
その他、色々やりましたorz
1.
win7.isoを用意した。ちなみに、マウント方法は
mount -t udf -o loop /tgt/iso/win7.iso /tgt/iso/mnt/win7といった具合です。
2.
win7.isoをiSCSI-DDと同じターゲット内の別lunに登録した。
<target iqn.2012-11.hoge.hoge:hoge> #... <backing-store /tgt/iso/win7.iso> lun 2 device-type cd readonly 1 </backing-store> #... </target>といった具合です。iSCSI-DDと別のターゲットだと、(iPXEかtgtかwin7か何かの仕様の影響で)インストール不可でした。
3.
iPXEでiSCSI-DDをsanhookし、物理DVDドライブを使ってWindows7のインストーラを起動するiPXEスクリプトを元に、 iPXEでiSCSI-DDとwin7.isoをsanhookし、wimbootを使ってWindows7のインストーラを起動するiPXEスクリプトを用意した。具体的には
sanhook --drive 0x80 ${iSCSI-DD用root-path} exitといったところを
sanhook --drive 0x80 ${iSCSI-DD用root-path} sanhook --drive 0x81 ${iSCSIでのwin7.iso用root-path} set base-url http://tgt.or.some.server/hoge/ kernel ${base-url}ipxetool/wimboot initrd ${base-url}mnt/win7/bootmgr bootmgr initrd ${base-url}mnt/win7/boot/bcd BCD initrd ${base-url}mnt/win7/boot/boot.sdi boot.sdi initrd ${base-url}mnt/win7/sources/boot.wim boot.wim bootに変更した。
wimbootの取得は
http://www.ipxe.org/wimboot こちらから。
bootmgr等、win7.iso内のファイルは、win7.isoをマウントしてアクセス可能にした。
ちなみに、win7.isoもsanhookしているのは、インストーラは途中からiPXE経由のアクセスを止めるために一応。 iSCSI-DDと同じターゲットなので、要らないと思いますけど。 httpを使うのは、公式サイトの説明がhttpになってるのと、その理由はおそらく tftpではファイルサイズの上限が16MBか32MBで、boot.wimをとってこれないためだと思われる。
なお、http://www.ipxe.org/wimbootにあるとおり、 Windows8でも同様にして実現可能な模様。試してません。
0 件のコメント:
コメントを投稿