次のコマンドを使用して作成したバックアップを確認します。
dd if=/dev/sda of=/dev/sdc2
/dev/sda
/dev/sdc2
(内蔵ハードドライブ)の内容を(USB経由で接続された外部バックアップドライブ)にバックアップしましたが、(/dev/sdc2
バックアップするパーティション)が/ dev / sdaより少し大きかったです。/dev/sda
サイズ(バイト単位)が4096(ドライブのセクタサイズ)に分割されていないため、/dev/sdc2
サイズを確認できません。/dev/sda
/dev/sda
/dev/sdc
diff(Unixコマンド)を介して(最初のxバイトのみを比較し、(xは)のサイズ)/dev/sdc2
のサイズを仮定できるかどうか疑問に思います。/dev/sda
/dev/sda
/dev/sdc2
dd
これを確認したいのは、(then)を実行すると
diff /dev/sda /dev/sdc2
システムログにエラーが発生するためです。
diffを実行しましたが、/dev/sda
/dev/sdc2
デバイスが異なると言われています。おそらくデバイス/dev/sdc2
が/dev/sda
。
エラー(時々さまざまな量で繰り返す)は次のとおりです。
ata5.00: exception Emask 0x50 SAct 0x0 SErr 0x280900 action 0x6 frozen
ata5.00: irq_stat 0x08000000, interface fatal error
ata5: SError: { UnrecovData HostInt 10B8B BadCRC }
ata5.00: failed command: READ DMA
ata5.00: cmd c8/00:00:e0:57:f9/00:00:00:00:00/e9 tag 4 dma 131072 in
res 50/00:00:df:57:f9/00:00:09:00:00/e9 Emask 0x50 (ATA bus error)
ata5.00: status: { DRDY }
ata5: softreset failed (device not ready)
私がこれを実行しているコンピュータは、Arch LinuxのISOバージョン(インストールプログラム)を実行しており、現在インターネットに接続されていません(後で接続する予定です)。他のLinuxディストリビューションを試すべきですか?
ベストアンサー1
おそらくcmp
この場合は十分でしょう:
SYNOPSIS
cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]
DESCRIPTION
Compare two files byte by byte. (...)
-n, --bytes=LIMIT
compare at most LIMIT bytes
計算可能なcmp -n
パラメータとしてソースデバイスのサイズ(バイト単位)を渡す必要があります。blockdev --getsize64
cmp --bytes=$(blockdev --getsize64 /dev/sda) /dev/sda /dev/sdc2
diff
ただし、貼り付けたエラーメッセージは実際の読み取りエラーを示すように見えるため、データの操作方法に関する問題だけでなく、データに関する実際の問題にも直面する可能性があります。