質問: 121604515 fdiskは適切なブロックにかなり近いと報告しています...(あと32ブロック)しかし、私の本では、fsckはblockdevと同じ方法で(またはそれを使用して)ブロックサイズ情報を取得していますが、dumpe2fsによると実際のパーティションテーブルを確認しています、スーパーブロックは実際には正しく、パーティションテーブルも同様です。ディスク上の元のデータ(10年分の家族の写真/ビデオおよび重要なファイル)が失われるのを恐れて、元のディスク上でこのデータを実行することは望みません。そこで、このイメージにディスクのコピーを作成しました。また、何かを台無しにした場合に備えて、イメージのコピーも作成しました。 (心配しないでください、私はこれのためのディスクスペースを持っています)。ここで何が悪いのですか?どうすれば修正できますか?注:古いドライブに障害が発生し始めたため(いくつかの問題が発生したと想定)、これが私がこれを行っている理由です。 also、何らかの理由でドライブがパーティションテーブルを失ったため、テストディスクを使用して回復する必要がありました。それが回復した後、私は大きなパーティションをマウントし、すべてのデータを読み取ることができました。 so testdiskが正しく機能しているか、かなり近いので、すべて揃っていると思いました。(更新#1)元のドライブでfsckを実行しても、このエラーは発生しないことにも注意してください...fsck -nfv /dev/sda2 fsck from util-linux 2.29.2 e2fsck 1.43.4 (31-jan-2017) pass 1: checking inodes, blocks, and sizes pass 2: checking directory structure pass 3: checking directory connectivity pass 4: checking reference counts pass 5: checking group summary information 60735 inodes used (0.20%, out of 30523392) 1510 non-contiguous files (2.5%) 49 non-contiguous directories (0.1%) # of inodes with ind/dind/tind blocks: 23779/2425/0 25124595 blocks used (20.58%, out of 122063840) 0 bad blocks 1 large file 56022 regular files 4704 directories 0 character device files 0 block device files 0 fifos 0 links 0 symbolic links (0 fast symbolic links) 0 sockets ------------ 60726 files (更新#2)イメージファイルがドライブと同じではなく、イメージファイルが小さいことがわかりました。 ドライブサイズ:500107862016(ここで間違いがありました。正しい情報に更新された2番目のパーティションのサイズしか取得できませんでした) 画像サイズ:498226311168 画像ファイルに1881550848バイト、1.88gbを超えるデータがありません。 (これも修正されました) ddがすべてを取得できなかったようで、ドライブに問題があるのは正しいかもしれませんが、ddに読み取りエラーを空白スペースで埋めて、サイズを一致させる方法はありますか? ループデバイスでfsckを実行して、その機能を確認しています。混乱した場合は、背面のイメージを復元するだけです。もう1つの重要な注意:これはヘッドレスサーバーシステムで、guiではなくcliです。
回答: 不良ディスクイメージからのエラードライブの故障が原因で画像にエラーが表示されているようです。代わりに gddrescue を使用しますが、読み取りエラーを処理しようとします。 gddrescue's manual は参考情報です、それはセクションです 10例のある小さなチュートリアル で始まります 例1:/ dev/sdaから/ dev/sdbに2つのext2パーティションがあるディスク全体の完全自動レスキュー。 注:事前に/ dev/sdbをパーティション分割する必要はありませんが、/ dev/sdaのパーティションテーブルが破損している場合は、何らかの方法で/ dev/sdbに再作成する必要があります。 ddrescue -f -r3 /dev/sda /dev/sdb mapfile fdisk /dev/sdb e2fsck -v -f /dev/sdb1 e2fsck -v -f /dev/sdb2 デバイス(/ dev/sdb)に直接レスキューする代わりに、ファイルを使用することができます。また、-r 3で開始して不良セクタを3回再試行する代わりに、デフォルト(0)と-n/--no-scrapeを使用して「スクレイピングフェーズをスキップ」し、できるだけ多くを取得します。最初にすばやく。gddrescueマップファイルのグラフィックビューを提供する ddrescueview パッケージもあります。これは興味深いかもしれません。 そして、syslogまたはdmesgを監視すると、以前に読み取りエラーが表示されているはずです。そのドライブを使用している間、それらを監視します。バックアップする重要なファイルはたくさんありますか?ファイルがまだ読み取り可能な場合、特にバックアップする重要なファイルがドライブ全体よりもはるかに小さい場合は、それらのファイルのみをコピーして、ドライブイメージ全体を忘れてください。 osは簡単に再インストールできます。フルディスクイメージのマウント like like losetup -pは、適切なパーティションループデバイス自体を作成するか、partprobeに加えてkpartxまたはgnome-disk-image-mounterを作成します。