2017年9月2日土曜日

iPXEでWindows10(1703 Creators Update)のインストーラをディスクレスブートし、iSCSIターゲット内ストレージにインストール

Windows7以降のiSCSIディスクレスブートを実現したことがある方向けの情報です。
インストーラDVDをディスクレスで済ます為の情報です。


[手順]
重要なポイントはiPXE公式サイトの通りです。
http://www.ipxe.org/wimboot


[検証環境]
Legacy BIOSブート(UEFIのセキュアブートブートではない)
iPXE (undionly.kpxe 数年前にソースからmake)
wimboot-2.6.0-signed
tgt (iSCSI target)
lighttpd (HTTPサーバ)
dnsmasq (DHCPサーバ+TFTPサーバ)
Realtek 8111E (マザーボード ASUS P8H61-M LE オンボード)
 ドライバのVersion 10.021 2017/8/25(RealtekのWebサイト)
Win10_1703_Japanese_x64.iso

以上の環境でインストールを完了し、Windows10のsanbootができることを確認した。


[tgtの設定(一部)]
<target iqn.2003-01.org.linux-iscsi.hogeserver.x8664:win10pc>
    <backing-store /home/hogeuser1/opt/win10pc/win10pc_120gb-raw.img>
        lun 1
        device-type disk
    </backing-store>
    <backing-store /home/hogeuser1/opt/iso/Win10_1703_japanese_x64.iso>
        lun 6
        device-type cd
        readonly 1
        allow-in-use yes
    </backing-store>
....
</target>


[Win10_1703_Japanese_x64.isoをマウント(例)]
# mount -t udf -o ro,loop Win10_1703_Japanese_x64.iso /media/iso/Win10_1703_Japanese_x64


[iPXEスクリプト(例、一部)]
sanhook --drive 0x80 iscsi:192.168.1.101:::1:iqn.2003-01.org.linux-iscsi.hogeserver.x8664:win10pc

set base-url http://hogeserver/hoge/

kernel ${base-url}ipxetool/wimboot-2.6.0-signed/wimboot pause

initrd ${base-url}mnt/win10/boot/bcd         BCD
initrd ${base-url}mnt/win10/boot/boot.sdi    boot.sdi
initrd ${base-url}mnt/win10/sources/boot.wim boot.wim
boot


[その他]
Win10_1607_Japanese_x64.iso
Win8.1_Japanese_x64.iso
も同様の手順でインストーラー起動までは確認した。
※インストール作業、インストール後のsanbootは検証していない。


[UEFIセキュアブートについて]
マザーボードがセキュアブートブート非対応なので検証できないが、
iPXEはUEFI対応版(undionly.efi等)をmake可能