LINUX.ORG.RU

NTFS recovery


0

2

Сломался НТФС, хз как вернуть его к жизни. При этом MFT и сама структура жива. Вот как это выглядит:

# ntfs-3g /dev/sdb1 /mnt/sdb1
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 39365  usa_count: 32551: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 5876  usa_count: 63116: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 39365  usa_count: 32551: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 5876  usa_count: 63116: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 5876  usa_count: 63116: Invalid argument
Record 3 has no FILE magic (0x44414142)
Failed to open inode FILE_Volume: Input/output error
Failed to mount '/dev/sdb1': Input/output error
NTFS is either inconsistent, or there is a hardware fault, or it's a
SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows
then reboot into Windows twice. The usage of the /f parameter is very
important! If the device is a SoftRAID/FakeRAID then first activate
it and mount a different device under the /dev/mapper/ directory, (e.g.
/dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation
for more details.
root@earth:/home/jet#

Попользовал WinHex и увидел что и правда «ключевого» $Volume нет...

Подскажите как его восстановить.

P.S. ТестДиск попробовал, но насколько я понял он такое делать не умеет. Причем проверил несколько утилит, все говорят одно и то же: Файловая система жива, файло доступно, фиксить нечего. Т.е. слить файлы не проблема. Но сливать 200Г - напряжно, да и некуда... Собственно потому и ищу как бы пофиксить именно НТФС раздел

★★★★★

Failed to open inode FILE_Volume: Input/output error

На бэды проверил?

Давай попробуем если бэда на том месте нет прописать по верху туда где он был

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Я имею в виду, что не имея посекторного бэкапа, лучше не делать это. Оно как может помочь, так и может взять ни с того ни с сего перезаписать всю MFT. Это же венда.

adriano32 ★★★
()
Ответ на: комментарий от adriano32
root@earth:/home/jet# ntfsinfo --inode 3 /dev/sdb1
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 39365  usa_count: 32551: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 5876  usa_count: 63116: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 39365  usa_count: 32551: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 5876  usa_count: 63116: Invalid argument
ntfs_mst_post_read_fixup: magic: 0x44414142  size: 1024  usa_ofs: 5876  usa_count: 63116: Invalid argument
Record 3 has no FILE magic (0x44414142)
Failed to open inode FILE_Volume: Input/output error
Failed to mount '/dev/sdb1': Input/output error
NTFS is inconsistent. Run chkdsk /f on Windows then reboot it TWICE!
The usage of the /f parameter is very IMPORTANT! No modification was
made to NTFS by this software.
Failed to open '/dev/sdb1'.
Jetty ★★★★★
() автор топика
Ответ на: комментарий от AITap

Это НЕ может работать. Почему?
Потому что по мнению винды это RAW партиция(в виду отсутствия «файла» $Volume)

Jetty ★★★★★
() автор топика
Ответ на: комментарий от adriano32

MFT && MFTMirr valid and match

Смотрел винхексом, пропал только файл $Volume

Jetty ★★★★★
() автор топика
Ответ на: комментарий от adriano32

Я подозреваю что проблема как раз в этом.
Чем можно проверить ?
Желательно линуксово конечно, но на крайняк и МХДД могу :)

Jetty ★★★★★
() автор топика
Ответ на: да хотя бы от adriano32

Запустил :)
Через часок отпишусь :)

Jetty ★★★★★
() автор топика
Ответ на: комментарий от AITap
  5 Reallocated_Sector_Ct   0x0033   200   200   140    Pre-fail  Always       -       0
196 Reallocated_Event_Count 0x0032   200   200   000    Old_age   Always       -       0
197 Current_Pending_Sector  0x0012   200   200   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0010   200   200   000    Old_age   Offline      -       0
Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

Всё по нулям. Видимо, проблема не в жёстком диске.

AITap ★★★★★
()
Ответ на: да хотя бы от adriano32
root@earth:/home/jet# badblocks -v /dev/sdb1
Checking blocks 0 to 276735657
Checking for bad blocks (read-only test): done                                
Pass completed, 0 bad blocks found.

Epic fail :(

Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

Сдампь секторов надцать с 6291457 по минимум 6291464 и выложи куда-нибудь в hex. Ты уже смотрел, теперь мы посмотрим :)

adriano32 ★★★
()
Ответ на: комментарий от Jetty

Ты в никсах?
Бери hexedit, открывай дамп (не винт!!) именно дамп, который выкладывал на rghost, найли тот участок с 0x600 по 0xDFF. Убедись сам что там бяка.
Пришли размер своего раздела, его UUID из /dev/disk/by-uuid, вспомни чем размечал (вендой или gparted), ну и что ещё вспомнишь возможно важное. Я сейчас сдамплю такой же кусок у себя с вендового раздела, попробуем сделать diff, и потом зальёшь себе.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Да, это удаленная машина под дебом. Размечался диск фдиском гнутым,

root@earth:/home/jet# fdisk -l /dev/sdb

Disk /dev/sdb: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xe5dfe5df

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       34452   276735658+   7  HPFS/NTFS
/dev/sdb2           34453       38913    35832982+  83  Linux

UUID - хз де его взять, для sdb2 есть, для sdb1 нету, да и важен ли он?

Чтото еще ?

Jetty ★★★★★
() автор топика
Ответ на: комментарий от unC0Rr

У них у всех одна и та же проблема: все они с радостью достают файлы из раздела, но не чинят сам раздел. Максимум на что они способны это поправить MFT или загрузочный сектор. В моем же случае с конкретно файлами и МФТ все пучком. У меня пропало небольшое количество служебных данным NTFS. В следствии чего, не смотря на то что ФС в порядке(в файловом смысле), смонтировать ее нельзя.... Я конечно мог бы слить почти весь веник, форматнуть, и залить обратно... но это адово долго(некуда сливать, придется сливать небольшими порциями)

Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

Всего 2048 байт - ничего страшного. 4 сектора - и раздел вернётся.
Сделай следующее

dd if=sdb1_200bytes.dump bs=512 count=8 of=sdb1_8sect.dump
dd if=sda2_200sect.bin bs=512 count=8 of=sda2_8sect.bin
Дальше будем работать с ними - файлик меньше - удобнее, не заблудишься

После
xxd -p sdb1_8sect.dump > sdb1_8sect.hex
xxd -p sda2_8sect.bin > sda2_8sect.hex

adriano32 ★★★
()
Ответ на: комментарий от Jetty

Начиная с 0x600 надо копировать из sda2_8sect.bin, поглядывая на sdb1_8sect.dump в сохранившихся полях - где структуры которые совпадают, а где данные и поля, которые разные из-за разницы в размещении и относительном смещении разделов у тебя и у меня

adriano32 ★★★
()
Ответ на: комментарий от Jetty

И сделай чтоб в окне отображалось ровно 512 байт - с {N}00 по {N+1}F0 строки в hexedit.

xxd-dump'ы не пригодятся видимо.. diff'ы не особо информативны - ручками и глазками лучше.

На ещё PPt-шку http://www.cse.scu.edu/~tschwarz/coen152_05/PPtPre/NTFSFS.ppt
Там немного обяснения по структуре записи MFT. Одна запись - 1024 байт, тебе надо восстановить только две. Можно ещё найти полное объяснение структуры записи, тогда вообще будет просто.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Ну я так навскидку поглядел, все смещения для других FILE0 совпадают, окромя Volume и LogFile

Jetty ★★★★★
() автор топика
Ответ на: комментарий от Jetty

Нет, там разница есть, смотри строки 0x250 0x260 0x2C0 0x2D0 0x3B0. Они у нас разные, но име.т зависимость от соседних ($MFTmirr который до и $AttrDef который после). Остальное можно потихоньку копировать. По вышеуказанным и может быть каким-нибудь ещё полям надо будет посидеть подумать. А потом как закончишь, просто сдампить из этого файла обратно на винт и профит!

http://dubeiko.com/development/FileSystems/BOOKS/FileSystemAnalysis.pdf - вот ещё книжка, там есть описание полей структур MFT, может пригодится.

Я бы в другое время сделал бы за тебя эту работу, но сейчас малость занят, так что удачи, отписывайся о процессе и результатах. Если чё, спрашивай. Ты на правильном пути. Чуть-чуть усилий - и всё будет возвращено, а бесценный опыт получен )

adriano32 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.