Windows で CompactFlash (複数のパーティションを含む) をディスクイメージ化
結論としては,Cygwin 版 dd でいけた (当然,UNIX 系 OS は付属の dd でいけるはず).
背景
ANS-9010 のバックアップ先の CompactFlash の内容 (Windows 7 のインストールイメージ) をディスクイメージとして取り出す目的で.
Windows 7 のインストール先ドライブの先頭 100MB にはシステム予約の別パーティションが作成されるため,バックアップ先の CompactFlash には 2 パーティションが含まれてしまう.この CompactFlash をメディアリーダーで Windows に認識させると,先頭 100MB だけにドライブレターが割り当てられる.それ以外の領域に「ディスクの管理」でドライブレターを割り当てようとしたが,下記のエラーが出て無理だった.
ディスクの管理コンソールのビューが最新の状態でないため、操作を完了できませんでした。タスクの最新の情報に更新を使ってビューを最新の情報に更新してください。問題が解消されない場合は、ディスクの管理コンソールを閉じてからディスクの管理またはコンピューターを再起動してください。
Cygwin 版 dd を用いた方法
対象 CompactFlash のデバイス名を調べ,dd や cat で取り出す.
rero@carnelian ~ $ cat /proc/partitions major minor #blocks name 8 0 14913023 sda 8 1 102400 sda1 8 2 14808064 sda2 8 16 488386584 sdb 8 17 488384001 sdb1 8 32 1465138584 sdc 8 33 1465136001 sdc1 8 48 15761088 sdd ← これが対象の CompactFlash 8 49 102400 sdd1 8 48 14808064 sdd rero@carnelian ~ $ time dd if=/dev/sdd of=/cygdrive/d/win7_20091219_1.img bs=1M dd: reading `/dev/sdd': No space left on device 15391+1 records in 15391+1 records out 16139354112 bytes (16 GB) copied, 913.007 s, 17.7 MB/s real 15m13.093s user 0m0.140s sys 0m19.031s rero@carnelian ~ $ time cat /dev/sdd > /cygdrive/d/win7_20091219_2.img real 15m20.641s user 0m2.406s sys 0m25.093s rero@carnelian ~ $ ls -l /cygdrive/d/win7_20091219_*.img -rw-r--r-- 1 rero None 16139354112 Dec 20 01:20 /cygdrive/d/win7_20091219_1.img -rw-r--r-- 1 rero None 16139354112 Dec 20 01:40 /cygdrive/d/win7_20091219_2.img rero@carnelian ~ $ diff /cygdrive/d/win7_20091219_*.img rero@carnelian ~ $ (両者に差分無し)
なお,Cygwin をあらかじめ「管理者として実行」しておかないと下記エラーメッセージで失敗する.
rero@carnelian ~ $ dd if=/dev/sdd of=/cygdrive/d/win7_20091219_1.img bs=1M dd: opening `/dev/sdd': Permission denied rero@carnelian ~ $ cat /dev/sdd > /cygdrive/d/win7_20091219_2.img cat: /dev/sdd: Permission denied
試してみて駄目だった方法
DDforWindows (Silicon Linux による GUI 版)
http://www.si-linux.co.jp/wiki/silinux/index.php?DDforWindows
「ディスク選択」で対象 CompactFlash を選べないため不可.
dd for Windows (chrysocome.net 版)
http://www.chrysocome.net/dd
dd --list で先頭 100MB のパーティションしか候補に挙がらなかったため不可.
Check Flash
http://www.forest.impress.co.jp/article/2008/11/04/checkflash.html
Access type が As logical drive ではドライブレター付きパーティションしか選べず,As physical drive では候補が全く表示されないため不可.
EASEUS Todo Backup
http://www.forest.impress.co.jp/docs/review/20090827_310851.html
リムーバブルディスクが候補に挙がらなかったため不可.
EASEUS Disk Copy
http://www.forest.impress.co.jp/article/2008/08/26/easeusdiskcopy.html
上のソフトと作者が同じ.ブータブル iso イメージによる配布だったので,めどくて試していない.
Disk2vhd
http://technet.microsoft.com/en-us/sysinternals/ee656415.aspx
物理ディスクを VHD 形式の仮想ディスク (Virtual PC や Hyper-V の使用形式) に変換できるマイクロソフト提供ツール.
VHD 形式は標準で Windows 7 からマウントできるらしい.
しかし,リムーバブルディスクが候補に挙がらなかったため不可.
また,仮に CompactFlash から読み出せたとしても,もう一度 CompactFlash に書き出せるのか不明確だった.
Windows 7 の標準機能 (「ディスクの管理」や diskpart)
http://technet.microsoft.com/ja-jp/windows/dd875657.aspx
そもそも,VHD 仮想ディスクを新規作成する機能であり,物理ディスクからの変換はできない模様.