Я задал этот вопрос на Ask Ubuntu, но безуспешно, и они порекомендовали перепостить его как суперпользователь, и вот я здесь!
Пришло время, после 5 лет мой внешний диск на 1 ТБ со всеми моими семейными фотографиями и всей моей музыкой сломался. Как ни глупо, у меня не было двух дисков в raid, в которые я просто вложился, чтобы это не повторилось.
Я успешно восстановил файлы с помощью dd_rescue на другом моем 2-терабайтном диске с фильмами на моем сервере, однако я не могу понять, как смонтировать этот файл .img.
Я использую GNU ddrescue.
Я также пытался запустить chkdsk \f на Windows 7, но он выдал мне ошибку «Недостаточно места на диске для исправления битовой карты тома. CHKDSK прерван». Согласно веб-сайту Microsoft об этом сообщении об ошибке: «Удалите некоторые ненужные файлы с тома NTFS, если сможете, а затем повторите команду Chkdsk. Если вы не можете удалить ни одного файла, вам придется переформатировать том NTFS и восстановить данные из резервной копии». Поскольку я не могу освободить место из образа, я понятия не имею, что делать. И в любом случае до этого использовалось только 400 ГБ из 1 ТБ, так что сообщение об ошибке на самом деле не имеет никакого смысла. Один парень на Ask Ubuntu сказал, что это также может быть из-за очень большого повреждения, но согласно ddrescue errsize был всего 31 МБ, так что это тоже не имеет никакого смысла.
Вот как я выполнил команду 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» и два «Неизвестных» раздела, хотя команда parted выдала мне информацию, которая, похоже, верна.
распечатать разделенное изображение.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 mount -r -o loop образ.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
Думаю, я столкнулся с той же проблемой (поврежденная таблица разделов из-за неисправного диска NTFS, восстановленного с помощью ddrescue (испорченный "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/(и на странице руководства, если бы я потрудился ее прочитать... глупо.))