「dd」コマンドを使用して作成したホーム(/dev/sda3
)パーティションのイメージがあります。
dd if=/dev/sda3 of=/path/to/disk.img
/dev/root
パーティションを拡大するために、gpartedを介してホームパーティションを削除しました。次に、イメージにバックアップしたパーティションよりもサイズが小さい/dev/sda3
パーティションを再作成しました。
2TBの外付けHDDを持っているので、バックアップしたイメージを外付けHDDにマウントして、ファイルを/home
ディレクトリにコピーすることは可能でしょうか。外付けHDDはすでに「マウントされた状態」になっているので、マウントされたデバイスにマウントするのが良い考えかどうかはわかりません。
私はもう試した:
mount -t ext4 /path/to/disk.img /mng/image -o loop
それは私にfsエラーを与えました(間違ったfsタイプ、悪いオプション、dev/loop/0の悪いスーパーブロック)
それから私はしました
dmesg | tail
出力:
EXT4-fs(loop0):不正なジオメトリ:ブロック数29009610が欠損のサイズ(1679229ブロック)を超えています
どうすればよいかわかりません。バックアップしたイメージから/home
データを復元したいと思います。
[更新]:* disk.imageはUSB16GBフラッシュドライブにあります。画像サイズは約6GBです。イメージは約100GBの削除されたパーティションから作成されましたが、現在は約80GBに削減されています。
[更新]:今日これを試しました: LQWiki:いくつかのddの例 言います:
大きなドライブから小さなドライブにパーティションテーブルを書き込むことによって、ドライブが実際よりも大きいことを伝えたくありません。ドライブの最初の63セクターは、セクター1、MBRを除いて空です。
dd if=/dev/sda skip=2 of=/dev/sdb seek=2 bs=4k conv=noerror
次に、/dev/sda3
を/home
にマウントしようとしました。 dmesg | tail
は、「グループ記述子が破損しています!」というエラーを出力します。
それから私は試しました:
fsck.ext4 -y -f /dev/sda3
大量の修正された問題と数百万の数値が光速で出力されます。
その後、/dev/sda3
を/home
に正常にマウントしましたが、ホームディレクトリにデータがありませんでした。 「lost + found」という名前の一部のディレクトリのみが空です。
どうしてですか:
Sudo losetup /dev/loop0 /path/to/disk.img
mkdir /mnt/image
Sudo mount /dev/loop0 /mnt/image
これは古い質問だと思いますが、2日前に同じ問題に遭遇し、問題をある程度解決することができました。
この問題は基本的に、何らかの理由でext2/3/4ファイルシステムイメージがイメージファイルに完全にコピーされておらず、本質的にデータのチャンクが最後から欠落している場合に発生します。このため、何らかの奇跡によって画像の欠落部分にファイルデータが保存されていない限り、元の画像に存在していたすべてのファイルを復元することはできません。
私の場合、イメージをマウントできませんでしたが、ext2/3/4ファイルシステムイメージをスキャンし、見つかったすべてのファイルを指定された場所にダンプするユーティリティがあります。
bash$ losetup -f ./corrupted.img # mounts to /dev/loop0
bash$ Sudo debugfs -c /dev/loop0
debugfs: rdump / /path/to/dump/files/
debugfs: quit
rdumpコマンドは2つの引数を取ります:path insideファイルを再帰的にスキャンするための破損したイメージとネイティブファイルシステム上のパスファイルをに保存します。回復できなかったファイルは、0バイトのサイズで作成されます。
Debugfsはrootとして実行されるため、おそらくファイルをchownする必要があります。
ファイルをブロック数を超えるまで切り捨ててから、再マウントしてください。
あなたの状況では:
EXT4-fs(loop0):不正なジオメトリ:ブロック数2900961欠陥のサイズ(1679229ブロック)を超えています
truncate -o -s 29009610 /path/to/disk.img
mount -o loop /path/to/disk.img /mng/image
フラビオ