何らかの理由で読めないUSBスティックがあります。後日、イメージからデータを取得できるように、保存目的でイメージのイメージを作成します。
USBスティックのこのような少し同じイメージを作成するにはどうすればよいですか?
これは、dd
を使用したときに表示されるエラーです。
oshirowanen@desktop:~$ Sudo dd if=/dev/sdd of=/USB_image
[Sudo] password for oshirowanen:
dd: reading `/dev/sdd': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s
oshirowanen@desktop:~$
dd
it!
使用法はSudo dd if=/dev/sdb of=~/USB_image
のようなものになります。ここで/ dev/sdbはSudo fdisk -l
でリストされているUSBドライブで、〜/ USB_imageはイメージファイルですコピーが作成されます(イメージファイルが作成されるパス)。
イメージを別のUSBドライブに復元するには、プロセスを反転するだけです:Sudo dd if=~/USB_image of=/dev/sdb
は、デバイスに〜/ USB_imageを復元しますsdb。新しいUSBドライブが元のUSBドライブと同じかそれ以上であることを確認してください。
また、作成したばかりのイメージファイルをパスにマウントすることもできます。最初にmount ~/USB_image /mnt/USB_image -o loop
を使用して別のUSBドライブに復元する必要はありません。
ddrescue
を使用します。エラーの後も継続し、dd
は単純に失敗します。
さらに、ddrescue
がリポジトリにあります。 13.04に、Sudo apt-get install gddrescue
と入力してインストールしました。
Sudo fdisk -l
またはdmesg
を使用して、デバイスの場所を特定します(例:/dev/sdb
)、次のようなコマンドを実行します
ddrescue /dev/sdb /home/user/desktop/bkp.img
ddrescue
には多くのオプションがあり、man
ページを読むことをお勧めします。また、ハードウェアに障害が発生し、dd
をダンプしている理由もわかりません。 1つの不良ブロックによりdd
が終了する可能性がありますが、断続的な電源障害が発生する可能性があります。 dmesg
は、発生している可能性のあるハードウェア障害の詳細を示す場合があります。
デバイスがマウントされていないことを確認してください!データリカバリ、イメージングなどを実行しようとすると、問題が発生する可能性があります。
データの回復でうまくいかないことがたくさんあります。問題がある場合はポストバックしてください。 testdisk
は、イメージを取得したらデータ回復を行うための素晴らしいユーティリティです。
わかりやすくするために、これはUSBハードドライブまたはUSB(ソリッドステートメモリ)デバイスですか?
I/Oエラーは通常、ファイルシステムの破損ではなく、ハードウェアの誤動作を示しています。
また、デバイスのSMARTデータ分析がある場合は、取得してみてください。これは、デバイスが過熱状態で、長時間電源が入っていて、不良セクターがあり、Xを超える回数にさらされている場合などを示します。 Gsなどの.
「これはddを使用するときに表示されるエラーです」という質問の後半に関しては、いくつかの可能性があります。
~
の前に/USB_image
がありません。つまり、ホームディレクトリではなくファイルシステムのルートを出力しようとしています。/dev/sdd
は正しいドライブではない可能性があります。 Sudo fdisk -l
を実行し、ドライブのサイズをUSBスティックの既知のサイズと比較します。たとえば、16GBに近いDisk /dev/sdf: 15.8 GB, 15805186048 bytes
であるため、これが私のUSBスティックであることがわかります。dd
は、前のポスターで述べたように、ネイティブな方法です。ただし、エラーが発生しても続行する必要があるため、次のように開始します。
dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync
重要な部分は最後の部分です:conv=sync
は、部分的にしか読み取れないすべてのブロックをゼロで埋めるようにddに指示するため、結果のイメージにはいくつかのゼロが多すぎる場合がありますが、構造的にはフレークディスクからマイナス読み取りエラー。 conv=noerror
はこれらの読み取りエラーを処理し、ddに次のブロックを続行するよう指示しました。この時点で、ブロックサイズが重要になります。エラーをスキップするのに必要なサイズよりも大きい場合、読み取り可能なデータはここで失われます。ブロックサイズは常に2倍にする必要があります-疑わしい場合は、512k
がうまくいくはずです。
その後、私はお勧めします:
(2010年に書かれた記事から自分自身を部分的に引用)
ネイティブを維持する必要がない場合は、ddrescue(パッケージgddrescue
)やそのコンパニオンddrescueview
( sourceforge )エラーを視覚化します。
dd
を使用して、USBスティック(または別のデバイス)のイメージを作成できます。
例えば。
dd if=<usb device> of=usb.img
パラメーターをdd
に追加して、コマンドを最適化できます(例:bs
)。