web-dev-qa-db-ja.com

Windowsで `dd`コマンドを使用して画像ファイルを作成することはできません

Windowscygwinでddコマンドを使用してSDカードをコピーしようとすると、次のエラーが発生します。

_>>> dd if=i:\ of=k:\backup_sd_card.img bs=4M dd: error reading 'i:\': Is a directory 0+0 records in 0+0 records out 0 bytes copied, 0.00629135 s, 0.0 kB/s_

または私も試してみてください:

_>>> dd if=\\?\Volume{ab627f51-f12b-11e7-bc1b-e277073b2b9d}\ of=k:\backup_sd_card.img bs=1M dd: failed to open '\?Volumeab627f51-f12b-11e7-bc1b-e277073b2b9d\': No such file or directory_

ドライブsygnatureはmountvolコマンドから取得されます。

私が使用しているddバージョン:

>>> dd --version dd (coreutils) 8.26 Packaged by Cygwin (8.26-2)

ddのような画像を使用してコピーを作成し、元に戻す方法は?

1
lluke

DdでDOS構文ディレクトリを使用しないでください!!ディレクトリの構文はLinuxの場合と似ています。そのような構文を使用することをどこで思いついたのですか?少なくともある種のガイドに従うようにしてください!

このコマンドは、たとえば私にとってはうまくいきました。 (管理コマンドプロンプトから実行)、_-b 1M_を_-b 4M_に変更できます(4Mあり、おそらく後者の方が高速ですが、1Mで問題ありません)

(私はddrescue(gnuパッケージであり、実際にはddよりも優れています)を使用していますが、パーティションを指定した方法は、現在の方法とは対照的に、ddにも適用されます)

_$ ddrescue -r3 -b 1M -d /dev/sdb /cygdrive/c/crp/fsfwr_.fc_

Cygwinは、何がどこにマウントされているかを表示する場合、Linuxよりも扱いにくいです。

/ devを見て、_$ cygpath -w sdb1_のようなことを行うことができます。たとえば、 _\\.\F:_

そして、Linux wizがcygwinで使用するために私に示したこのクレイジーなコマンドは、cygpath -wコマンドを自動化し、どこで何が口にされているかのリストを提供します

for F in $(gawk '{if (FNR > 2) print "/dev/" $4;}' /proc/partitions) ; do echo "$F $(cygpath -w $F)" ; done

その後、次のように表示されます

_/dev/sda \\.\PhysicalDrive0
/dev/sda1 \\.\Volume{b6ef2ec3-451e-11e2-822b-806e6f6e6963}
/dev/sda2 \\.\C:
/dev/sdb \\.\PhysicalDrive1
/dev/sdb1 \\.\F:
/dev/sdc \\.\PhysicalDrive2
/dev/sdc1 \\.\G:
/dev/sdc2 \\.\Volume{b6ef2ec3-451e-11e2-822b-806e6f6e6963}5
_

したがって、dd行の構文は次のようになりますが、sdb1ではない場合がありますが、上記のコマンドを実行して、使用する/ devを確認できます。

_dd if=/dev/sdb1 of=/cygdrive/k/backup_sd_card.img bs=4M_

2
barlop