2012年11月9日金曜日

資料:HDD,SSD 容量・セクタ数 一覧表

製造元あるいは型番が異なると、大雑把な容量表示(○GB, ○TB)に対応するセクタ数が違う場合があります。そのため、あまり意味がありません。

[WesternDigital]
CapacityUser SectorsModel
40GB78165360WD400JD
80GB156301488WD800JD
120GB234441648WD1200AAJS
160GB312581808WD1600AAJS
250GB488397168WD2500AAKX
320GB625142448WD3200AAKX
500GB976773168WD5000AZRX
750GB1465149168WD7500AALX
1TB1953525168WD10EZRX
1.5TB2930277168WD15EARX
2TB3907029168WD20EZRX
3TB5860533168WD30EZRX
4TB7814037168WD40EZRX

[Intel]
CapacityUser SectorsModel
60GB117231408SSD330,SSD520Series
120GB234441648SSD330,SSD520Series
180GB351651888SSD330,SSD520Series
240GB468862128SSD330,SSD520Series
480GB937703088SSD520Series
仮想ストレージを作る時、なるべく存在する物理HDD/SSDと同一容量で作りたい気がしたので調べてみました。

2012年11月7日水曜日

iPXEでWindows7のインストーラをディスクレスブートし、iSCSIターゲット内ストレージにインストール

※wimboot-2.1.0以前を使用した場合の情報です。 重要なポイントはiPXE公式サイトの通りです。
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でも同様にして実現可能な模様。試してません。