Ask Ubuntu でこの質問をしましたが、うまくいかず、superuser に再投稿することを勧められたので、ここに投稿しました。
5 年経って、家族の写真や音楽をすべて保存した 1 TB の外付けドライブがクラッシュしました。愚かなことに、私は RAID に 2 つのドライブを用意していませんでした。RAID に投資したので、二度と同じことが起こりませんでした。
dd_rescue を使用して、サーバー上の別の 2TB ムービー ドライブにファイルを正常に救出できましたが、この .img ファイルをマウントする方法がわかりません。
私はGNU ddrescueを使用しています。
Windows 7 で chkdsk \f も実行しようとしましたが、「ボリューム ビットマップを修正するためのディスク領域が不足しています。CHKDSK は中止されました。」というエラーが表示されました。このエラー メッセージに関する Microsoft の Web サイトによると、「可能であれば、NTFS ボリュームから不要なファイルをいくつか削除してから、Chkdsk コマンドを再試行してください。ファイルを削除できない場合は、NTFS ボリュームを再フォーマットし、バックアップからデータを復元する必要があります。」とのことです。イメージから領域を解放できないので、どうしたらよいかわかりません。それに、1TB のうち 400GB しか使用されていないので、このエラー メッセージは実際には意味をなさないのです。Ask Ubuntu のユーザーは、非常に大きな破損が原因の可能性があるとも言っていましたが、ddrescue によると、エラー サイズは 31MB しかないので、これも意味をなさないのです。
ddrescueコマンドを実行する方法は次のとおりです
sudo ddrescue /dev/sdh1 /media/external/rescue/rescue.img /media/external/rescue/rescuelog
Initial status (read from logfile)
rescued: 1 TB, errsize: 30944 kB, errors: 345
Finished
これが私のテストコマンドです
ファイル image.img
image.img: x86 boot sector, code offset 0x52, OEM-ID "NTFS ", sectors/cluster 8, reserved sectors 0, Media descriptor 0xf8, heads 255, hidden sectors 2048, dos < 4.0 BootSector (0x80)
fdisk -l イメージ.img
Disk image.img: 1000.2 GB, 1000203091968 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953521664 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2052474d
This doesn't look like a partition table
Probably you selected the wrong device.
Device Boot Start End Blocks Id System
image.img1 ? 6579571 1924427647 958924038+ 70 DiskSecure Multi-Boot
image.img2 ? 1953251627 3771827541 909287957+ 43 Unknown
image.img3 ? 225735265 225735274 5 72 Unknown
image.img4 2642411520 2642463409 25945 0 Empty
Partition table entries are not in disk order
fdiskが「DiskSecure Multi-Boot」や2つの「不明」パーティションなどの奇妙なパーティションを表示する理由が全く分かりませんが、partedコマンドは正しいと思われる情報を提供しました。
parted image.img 印刷
WARNING: You are not superuser. Watch out for permissions.
Model: (file)
Disk /media/external/Rescue/image.img: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: loop
Number Start End Size File system Flags
1 0.00B 1000GB 1000GB ntfs
正しいフラグなどがあるかどうかはわかりませんが、ここではドライブをマウントしようとしています
sudo マウント -r -o loop image.img /mnt
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 4096 usa_ofs: 0 usa_count: 65535: Invalid argument
Index buffer (VCN 0x0) of directory inode 0x5 has a size (24) differing from the directory specified size (4096).
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 4096 usa_ofs: 0 usa_count: 65535: Invalid argument
Index buffer (VCN 0x0) of directory inode 0x5 has a size (24) differing from the directory specified size (4096).
ntfs_mst_post_read_fixup_warn: magic: 0x00000000 size: 4096 usa_ofs: 0 usa_count: 65535: Invalid argument
Index buffer (VCN 0x0) of directory inode 0x5 has a size (24) differing from the directory specified size (4096).
実際には /mnt にマウントされていますが、ls /mnt を実行すると、「ディレクトリ /mnt/ の読み取り: 入出力エラー」が返されます。
どのようなご助力でも大歓迎です。推測でも大歓迎です。
前もって感謝します!
答え1
私も同じ問題を経験したことがあると思います(故障したddrescueされたNTFSドライブからの破損したパーティションテーブル(「fdisk -l」が間違っているが「parted」は正しい)、マウントコマンドが失敗します。
Failed to read last sector (1953520001): Invalid argument
HINTS: Either the volume is a RAID/LDM but it wasn't setup yet,
or it was not setup correctly (e.g. by not using mdadm --build ...),
or a wrong device is tried to be mounted,
or the partition table is corrupt (partition is smaller than NTFS),
or the NTFS boot sector is corrupt (NTFS size is not valid).
Failed to mount '/dev/loop0': Invalid argument
The device '/dev/loop0' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a
partition (e.g. /dev/sda, not /dev/sda1)? Or the other way around?
次のコマンドで救出されたイメージをマウントすることができました
sudo ntfs-3g -o force imagefile /mountpoint
これは、
sudo mount -t ntfs-3g imagefile /mountpoint
(こちらで見つかりましたhttp://www.makeuseof.com/tag/fix-corrupted-windows-ntfs-filesystem-ubuntu/(そして、もし私がマニュアルページを読んでいたら... バカなことだ。))