ディスクイメージをマウントするためにiSCSIを使う

いわゆる生のパーティションイメージをマウントするための良い方法がなかなか思いつかない。いまのところ以下のような手続きで運用している。
VMware等にはマウント用のツールが付属しているのでそれらを利用する手も十分考えられる。しかし、個人的な経験としては、iSCSIを使う方法が一番安定していて、機能する。

ディスクイメージの作成

HDDのパーティションイメージを作成するためにはCygwinを使う。Cygwinは/dev/sdaのようなデバイスファイルを提供しており、普通にddすることでディスクイメージを作成できる。

okuoku@okupcb /cygdrive/g/bak/img
$ dd if=/dev/sdc of=oku250g1.img bs=256K
953900+1 records in
953900+1 records out
250059350016 bytes (250 GB) copied, 17792.6 s, 14.1 MB/s

ただし遅い。これはUSB接続のHDDを読み取ったときの結果で、本体の転送能力(17MB/s)よりも多少劣る結果となっている。
バイスファイルの命名規則Linuxのそれに準拠している。接続はなんであってもHDDなら/dev/sdXとなる。Xは、aから始まるアルファベットが入る。
この番号は"ディスクの管理"(コントロールパネル→管理ツール→コンピュータの管理)からチェックできる。

例えば/dev/sdcはディスク2になる。

ディスクイメージのマウント

WindowsiSCSIはローカル同士でも問題なくマウントできる。つまり、適当なiSCSIサーバをインストールして、イメージファイルをターゲットとしてセットアップすれば良い。
個人的にはStarwindを使っている。個人ユーザ向けの無償ライセンスでは2つのターゲットまでしかセットアップできないという制限がある。Starwind自体はとても安定していて、既に3TB程度のデータを転送しているがこれといって不具合は無い。
Windowsのディスク管理GUIは読み書き可能なディスクにしかマウントポイントやドライブ文字を指定できないように思える。つまり、ディスク(イメージ)を読み取り専用で使いたければ、まず読み書き可能状態でマウントポイントを設定する必要がある。