Помощь - Поиск - Пользователи - Календарь
Полная версия: восстановление инфы загрузочной дорожки винта
Форум «Всё о Паскале» > Системы, Сети, Технологии > Железо
Касатка
У меня возникли некоторые проблемы с загрузкой системы с винчестера. Для их устранения решил попробовать, не подумав, исправить 0-ю дорожку методом, найденным в одной книжке. Там предлагалось загрузиться с дискеты и из-под отладчика debug написать и запустить следующую программу на ассемблере:
-f 200 L200 0
-a 100
xxxx:xxxx mov ax,301
xxxx:xxxx mov bx,200
xxxx:xxxx mov cx,1
xxxx:xxxx mov dx,0080
xxxx:xxxx int 13
xxxx:xxxx int 3
xxxx:xxxx
-G=100
-q
После ее запуска данный винт (2 лог. диска) перестал быть виден и, соответственно, все программы и файлы на нем тоже. Можно ли его как-то вернуть в исходное состояние?
xds
В детстве я так тоже один раз сделал (сам додумался, без книжки), только Disk Edit'ом. Им же успешно и восстановил. Суть проблемы: ты закинул нулями весь (надо было первые 1BEh байт – ой!) первый сектор, в т. ч. и таблицу разделов. Последнюю можно восстановить вручную..., а можно и автоматически, но ведь ты, как большинство здравомыслящих людей, не делал резервных копий системных структур жёсткого диска? ;-). Итак, для нашей операции потребуется: шаманский бубен - настоящий, аппаратный, т. к. "болванка" (win-бубен) без Windows™ всё равно бесполезна; 2.5 л вазелина; около 60 матерей; 1 - 1.5 л чая (сахар и лимон – по вкусу); калькулятор, Norton Disk Edit; загрузочная дискета, CD или второй жёсткий диск с DOS. Для начала предлагаю припомнить характеристики экс-разделов... короче, скажи мне, как был разбит винт - порядок, размеры и типы разделов (FAT, NTFS, FFS и т. п.). По этим данным можно будет определить области поиска загрузочных записей разделов. Определив начало каждого раздела и зная его тип, можно будет вручную заполнить таблицу разделов.
Lapp
Цитата(xds @ 15.02.2006 1:50) *

В детстве я..
...
скажи мне, как был разбит винт - порядок, размеры и типы разделов (FAT, NTFS, FFS и т. п.). По этим данным можно будет определить области поиска загрузочных записей разделов. Определив начало каждого раздела и зная его тип, можно будет вручную заполнить таблицу разделов.

xds, ценю твое мастерство и юмор! smile.gif Респект, однозначно.
Усаживаюсь поудобнее в кресле и внимательно слежу за всеми перипетиями удаленного восстановления таблицы разделов..
Касатка
Емкость винта-40 гб. Разбит был на 2 равных по емкости логических диска (по 20 гб). На первом-FAT32 (для Win98, но это пока неважно, т.к. и до этой дурацкой истории она с него не загружалась), на втором-NTFS (стояла Win 2000). При включенном в положении Primary Master другом винте, с которого загружается система, и включенном как Secondary master этом винте (CD-ROM-Secondary slave) первый лог. диск этого винта был виден как D:, CD-ROM как E:, второй лог. диск-F:. Перед тем, как загрузиться c дискеты (на дискете-fat), отключал загрузочный винт, а этот включил как Primary master.
А вместо чая лучше мне запастись пузырьками колес и еще, может, валидола.
Lapp
Цитата(Касатка @ 15.02.2006 14:24) *

А вместо чая лучше мне запастись пузырьками колес и еще, может, валидола.

Касатка, не дрейфь!
xds знает, что говорит good.gif . Если сам не напортачишь - все будет ОК.
А на дисках много ценных данных?
xds
1) Object/Drive: Physical disks, Hard Disk <n> (выбери "испорченный" винт)
2) Info/Drive Info: сколько там Physical Sectors?
3) Object/Physical Sector: Starting Sector поставь равным 1, OK.
4) Tools/Find Object/Partition//Boot. Курсор должен указать на "55 AA". В начале найденного сектора должно быть слово "MSWIN4.1". В правом нижнем углу экрана - надпись "Absolute Sector <n>", где <n> обычно 63. Скажи мне точно, какое там число - это номер первого сектора первого раздела.

Твой ход...

P. S. Вот тебе более-менее новый DiskEdit (80 Гб по крайней мере переваривает smile.gif).
Касатка
Не мог 2 дня выйти на связь, не знаю правильно сделал или опять сглупил, но за это время загружался с дискеты Emergency Rescue Master Disk и выбирал пункт "восстановить главную загрузочную запись". После этого один раздел со всем старым содержимым на первом винте (FAT32) стал виден. Тем не менее, сделал как было сказано. Правда, в меню просто “Hard disk n” не было, а был только логический диск, который стал виден (D:). Выбрал его. Секторов-78 165 360, сектор с “55AA” (смещение 1FEh) и “mswin4.1”-63й. Еще “mswin4.1” нашел в секторе 347699 по смещению 52h. За DE спасибо.
Теперь надо восстановить раздел с NTFS.

Цитата
А на дисках много ценных данных?

Этот винт, скажем так, достался мне по наследству от одного деятеля, который судя по всему, занимался всякими интересными вещами, в т.ч. хакерством, а я сейчас решил сам вплотную заняться этой наукой. Он там оставил по ротозейству, перед тем, как винт попал мне в руки, свои произведения, "следы" и много чего другого. Я подумал, что мне все это будет полезно, в качестве учебного пособия, да и просто любопытно. На всякий случай: пословица "скупой платит дважды, а тупой постоянно"-не про меня, т.к. я проверял винт на физические дефекты специальной программой и не было найдено ни одной ошибки.
xds
Попробуй посмотреть на винт из ОС, поддерживающей NTFS (e. g., Windows NT/2000/XP) - может раздел NTFS тоже появился?
Касатка
Нет. Я под XP и смотрел.
xds
Повтори то же самое, но Starting Sector (п. 3) поставь равным 39 000 000. В начале найденного сектора (оканчивающегося на "55AA") должно быть слово "NTFS". Скажи мне номер этого сектора.
Касатка
Первый такой сектор (39 054 015) оказался пустым, а следующий (39 054 078) начинается с “ыRPNTFS”
xds
1) Отключи Read Only Mode в Tools/Configuration.
2) Object/Partition Table.
3) View/As Partition Table.
4) В первой строчке с "unused", замени "unused" (нажимая "пробел") на HPFS, Relative Sectors = 39 054 078, Number of Sectors = <n>. Значение (<n> - 1) хранится в первом секторе раздела NTFS (в него можно перейти нажав Enter при заполненном поле Relative Sectors) - 4 байта по смещению (offset) 40 (28 hex). Зайди в Tools/Calculator, Alt-H (hex), введи эти 4 байта в обратном порядке, Alt-I - должно получиться число, близкое (меньше или равное) к 39 111 282. Прибавь к нему 1 - это и будет значение Relative Sectors. Остальные поля оставь равными 0 - XP и так должна "увидеть" раздел.
5) Object/Exit/Write.
Касатка
xds, получилось. Спасибо.
И еще, насчет первой проблемы. Как-то раз, когда включил комп , появилось сообщение "Disk error. Press any key to restart.”, затем “Boot FailureSystem Halted” и системы престали грузиться с винта, хотя перед этим ничего с диском не делал и никаких видимых аварийных ситуаций не возникало (и ошибок тоже). Пробовал переустановить одну операционку (Win98), но после перезагрузки было то же самое, а система не успевала полностью обновить свои файлы. А при включении с другим загрузочным винтом, как я уже говорил, все установленные проги видны и запускаются. Может вирус поработал? Как его сделать снова загрузочным, если почти вся инфа на нем только в одном экземпляре (дистрибутивов нет) и скинуть некуда, т.к. занимает большую часть винта?
Кcтати, я невнимательно прошлый раз посмотрел окно “Object>Drive”. Там, оказывается, по умолчанию стоял флажок “логические диски”, а надо было “физические”. Я все делал в 1-м режиме и когда диск считывался, в конце писалось об ошибках. Второй лог. Диск высвечивается сейчас как “assigned”. Я ситуацию не усугубил? Под вышеупомянутой загрузочной дискетой (она должна “видеть” и NTFS диски) сперва NTFS виден не был (под WinXP сразу “увидело”). Затем я вновь в DE в Partition Table в поле Boot ввел “yes”. Тогда дискета “увидела” NTFS, а при попытке загрузки с этого винта-сообщение “неправильная таблица разделов”.
hiv
Не знаю - может поможет, а может нет. Я сам столкнулся с проблемой win98 когда поставил его на свой комп Duron 800 с винтом у которого кеш 2Мб. Так вот, при автоматическом выключении компа при выходе из операционки, при следующей загрузке винда выдавала запись о том, что выход из системы был аварийный и запускала каждый раз проверку диска. Как оказалось - винда слишком быстро вырубала питание компа, не давая винту успеть сбросить со своего кеша на магнитный диск. В итоге иногда портились файлы.
На сайте мелкософта есть патч для windows98SE который исправляет эту беду.
support.microsoft.com
Касатка
hiv, за ссылку тоже спасибо, однако, хоть я и не спец, но вряд ли это относится к данной проблеме. До загрузки форточек дело вообще не доходит, про ошибку пишет сразу после самотестирования компьютера. Тут скорее всего дело в каких-то низкоуровневых операциях и кодах собственно ДОС.
P.S.Обратил внимание, что на диске с Win98 нет папки Program Files, и есть 2 каталога вида FOUND.00X с файлами *.chk. Здесь есть какая то связь с описанной проблемой? И как восстановить инфу из таких файлов?
hiv
Цитата(Касатка @ 25.02.2006 3:05) *

[... но вряд ли это относится к данной проблеме.

Не путай причину и следствие. Потеря разделов и файлов в них - это следствие. Вырубание компа до того, как кеш винта записан - это причина. Винда при завершении работы вносит изменения в свои файлы, при вводе изменений также затрагиваются первые сектора винта - там располагается FAT (не в смысле типа форматирования раздела FAT32, а смысле там храняться записи цепочек секторов для каждого файла). Так вот при внесении изменений в файл - его цепоча переписываетя. Все изменения с винтом сначала пишутся в кеш винта, а потом спустя секуду или две пишутся на магнитную поверхность диска. И тут вырубается питание компа, а если в момент записи, то в первых дорожках может оказаться все что угодно.

ЗЫ: после восстановления раздела NDD сохраняет цепочки файлов в файлы *.chk и не факт что на один файл приходится одна цепочка!!! Также найденная цепочка может быть частью давным-давно удаленного файла!
Касатка
Пользуясь случаем, хотел бы еще спросить вот о чем. Есть у меня винт, на к-ом были очень ценные для меня данные и с которым произошла авария, не буду говорить какая. Проблема вот в чем.
После аварии мне кое-что делали для его “оживления” и восстановления информации. Сейчас на нем видно несколько файлов и каталогов типа Recycled, для файлов *.chk и пр., занимающих не очень много места и в то же время когда в разных прогах смотришь сведения об этом винте, то пишется, что занята большая часть винта (примерно объем потерянной инфы-каталогов и файлов, к-ые раньше там были). Пробовал под Disk Edit найти имена тех файлов и каталогов и многое нашел. Вопрос: можно ли эти DE восстановить всю старую инфу на таком винте?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.