SDカードの中身を丸々コピー
FAT File Systemを学ぶ為、FAT12,16,32のデータが容易に手に入るSDカードの中身を丸々コピーしたくなった。しかし、PCにSDカードを挿して開くファイラーから中身をコピーするのとは訳が違い、ファイルシステムの元データから取得する必要がある。私の環境(Win7)では2通りの方法を試したのでその内容を備忘録として残しておく。実際は思わぬミスではまってしまったからなのだが…。
【方法1】
Disk Probe(dskprobe.exe)を使う。
この方法は、Microsoft提供の無料ソフト Disk Probe を使う方法です。WinXP, 2000ではサポートツールのパッケージに入れられていたのだが、WinVista以降は提供されていないもようです。しかし、WinXP用の物をWin7で使用できるので、使ってみました。
WinXPのCDを持っていればそのCDの中に入っているらしいのですが、押し入れの何処かにしまっていて取り出すのが面倒だったので、MicrosoftのHPからDLしてきました。DLしたファイルはインストーラ形式になっていますが、余分なインストールはしたくなかったので、無理矢理引っぱり出しました。方法はいたって簡単です。
Windows XP Service Pack 2 サポートツールのHPから WindowsXP-KB838079-SupportTools-ENU.exe をDLしてきます。次にそのファイルを解凍ツール(Lhaz等)で解凍します。そこからsupport.cabを取り出し、更にdskprobe.exe, dskprobe.hlpを取り出します。これらのファイルは適当な場所に保存しておきます。ディスクの危険領域に直接アクセスするので、実行ファイルに管理者権限を与える必要があります。実行時にアイコンを右クリックして「管理者として実行(A)」を選択するか、面倒なら、プロパティの「互換性」タブにある「管理者としてこのプログラムを実行する」にチェックを入れます。
Disk Probe の使い方は… UiUicyさんのHPで分かりやすく説明されています。


【方法2】
cygwin上の dd コマンドで取得する。
既にcygwinを入れられている場合で dd コマンドが入っている状態であればこれで事足ります。ただし、Disk Probe同様にcygwinの実行時に管理者権限が必要です。セクタサイズと何セクタ分取得するのか指定する必要がありますが、MBRとFATの先頭、小さなファイルを入れた程度と仮定して2048KB分を取ることにします。解析はじめはこれでよいでしょう(SDカード上に何セクタあるかはSDのコマンドで調べる必要があるのでめんどいです)。
コマンド例(SDのマウント先が /dev/sdc の場合)
【方法1】
Disk Probe(dskprobe.exe)を使う。
この方法は、Microsoft提供の無料ソフト Disk Probe を使う方法です。WinXP, 2000ではサポートツールのパッケージに入れられていたのだが、WinVista以降は提供されていないもようです。しかし、WinXP用の物をWin7で使用できるので、使ってみました。
WinXPのCDを持っていればそのCDの中に入っているらしいのですが、押し入れの何処かにしまっていて取り出すのが面倒だったので、MicrosoftのHPからDLしてきました。DLしたファイルはインストーラ形式になっていますが、余分なインストールはしたくなかったので、無理矢理引っぱり出しました。方法はいたって簡単です。
Windows XP Service Pack 2 サポートツールのHPから WindowsXP-KB838079-SupportTools-ENU.exe をDLしてきます。次にそのファイルを解凍ツール(Lhaz等)で解凍します。そこからsupport.cabを取り出し、更にdskprobe.exe, dskprobe.hlpを取り出します。これらのファイルは適当な場所に保存しておきます。ディスクの危険領域に直接アクセスするので、実行ファイルに管理者権限を与える必要があります。実行時にアイコンを右クリックして「管理者として実行(A)」を選択するか、面倒なら、プロパティの「互換性」タブにある「管理者としてこのプログラムを実行する」にチェックを入れます。
Disk Probe の使い方は… UiUicyさんのHPで分かりやすく説明されています。


【方法2】
cygwin上の dd コマンドで取得する。
既にcygwinを入れられている場合で dd コマンドが入っている状態であればこれで事足ります。ただし、Disk Probe同様にcygwinの実行時に管理者権限が必要です。セクタサイズと何セクタ分取得するのか指定する必要がありますが、MBRとFATの先頭、小さなファイルを入れた程度と仮定して2048KB分を取ることにします。解析はじめはこれでよいでしょう(SDカード上に何セクタあるかはSDのコマンドで調べる必要があるのでめんどいです)。
コマンド例(SDのマウント先が /dev/sdc の場合)
$ dd if=/dev/sdc of=./sd.bin bs=512 count=4096
スポンサーサイト