tl; dr: перейти к разделу вопросов

Фон

У меня есть диск, на котором была установлена Windows 7. Он имел загрузочный раздел Windows 7 объемом 100 МБ, за которым следовал раздел, занимающий оставшуюся часть диска. Некоторое время назад я сократил основной раздел, чтобы у меня был отдельный том для файлов вместо того, чтобы хранить их на том же томе, где установлены Windows, игры и программы.

Недавно я очистил вторичный раздел и использовал EASEUS Parition Master (Home), чтобы удалить его, а основной - использовать весь диск, как это было раньше.

проблема

К сожалению, после того, как EASEUS успешно завершил свою работу (в режиме Windows Native-API), я больше не мог загружать систему с этим диском. Всякий раз, когда я пытался загрузиться, BIOS обнаруживал диск, считывал и распечатывал данные SMART (STAUS OK), а затем просто зависал .

Сначала я боялся, что диск волшебным образом умер между операцией изменения размера и перезагрузкой, но после помещения его во внешний корпус я обнаружил, что на самом деле диск был в порядке и даже лучше, разделы не повреждены, и все файлы доступны. Другой раздел исчез, а основной раздел был расширен на всю длину диска по желанию. Он полностью функционален из Windows, но не из BIOS.

Тесты и наблюдения

Я запустил оснастку MMC «Управление дисками», chkdsk, TestDisk (более новую версию) EASEUS Partition Master (бесплатно), EASEUS Partition Recovery, PC Inspector Drive Recovery и несколько других инструментов в режиме только для чтения и обнаружил, что большинство из них не было проблем с приводом. Единственный, который дал какое-либо указание на проблему, был TestDisk, который указал на несоответствие геометрии диска.

диагностика

Сделанный мною вывод заключается в том, что Windows способна считывать данные с диска и точно определять разделы (вероятно, игнорирует значения нерелевантной обратной совместимости) в таблице разделов, но когда BIOS пытается прочитать загрузочные файлы с диска, он получает ошибочные значения и зависает.

Вопрос

Теперь мне нужен способ исправить таблицу разделов (и MBR?) быть обратно совместимым с BIOS (и якобы DOS) без потери каких-либо данных.

ограничения

Я знаю, что вы можете переписать MBR без потери данных, но я не уверен, что можно перестроить таблицу разделов, не испортив существующие разделы.

К сожалению, у меня нет достаточно большого запасного диска, на который я могу скопировать все (и при этом я не хочу форматировать и копировать все это), поэтому мне нужен безопасный способ сделать ремонт на месте. Я сбросил копию первого мегабайта или около того диска, а также некоторые части раздела Windows. Поэтому у меня есть копия MBR, таблицы разделов и загрузочного сектора загрузочного раздела 100 МБ и раздела Windows.

Инструменты и навыки

Я знаком с низкоуровневыми дисковыми инструментами, в том числе с шестнадцатеричными и дисковыми редакторами (я несколько раз делал восстановление данных на томах FAT, в том числе восстанавливал цепочки и каталоги FAT), но не имел большого опыта работы с NTFS.


TestDisk выдает следующие ошибки при анализе:

Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
Current partition structure:
         Partition                  Start        End    Size in sectors

Warning: number of heads/cylinder mismatches 224 (NTFS) != 255 (HD)
Warning: number of sectors per track mismatches 19 (NTFS) != 63 (HD)
 1 * HPFS - NTFS              0  32 33    12 223 19     204800

Bad relative sector.
 2 P HPFS - NTFS             12 223 20 60801  76 27  976566032

Bad relative sector.

И журнал резервного копирования выглядит следующим образом:

#1420342168 Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
 1 : start=     2048, size=   204800, Id=07, *
 2 : start=   206848, size=976566032, Id=07, P
#1420342211 Disk /dev/sdf - 500 GB / 465 GiB - CHS 60801 255 63
 1 : start=     2048, size=   204800, Id=07, *
 2 : start=   206848, size=976566032, Id=07, P

2 ответа2

1

BIOS обычно не должен читать никаких загрузочных файлов, только 440 байтов кода начальной загрузки в MBR, остальное - дело вашего загрузчика ... (Хотя есть и досадные исключения.)

Поэтому возможно, что вам нужно переустановить загрузчик Windows только с помощью bootrec /fixmbr .

Чтобы воссоздать таблицу разделов, Linux CD будет работать. Запустите fdisk /dev/sd… запишите структуру разделов (тип, начальный сектор, размер), использование o для создания пустой таблицы разделов, повторно добавьте все разделы , используя тот же макет, и w обряду из новой таблицы.

0

В прошлом я был впечатлен PhotoRec Кристофа Гренье. Очевидно, он действительно знает, что делает, и провел много исследований по файловым системам и типам файлов. Поэтому я решил довериться его опыту и позволить TestDisk сделать свое дело (тем более что это был единственный инструмент, который вообще обнаруживал какие-либо проблемы).

После сообщения об ошибке я продолжил работу и дошел до того, что он дал мне возможность написать таблицу разделов, на которую я смотрел, или искать больше. Поскольку перечисленные разделы были уже правильными, я позволил ему записать таблицу разделов и перезагрузиться. Диск все еще был распознан и все файлы доступны (все еще во внешнем корпусе), поэтому я сделал chkdsk для спокойствия, который проверил.

Последний шаг заключался в том, чтобы подключить его к системе и посмотреть, сможет ли он пройти через BIOS. Конечно же, это так. Я сделал еще один chkdsk просто для большей уверенности, и он снова проверил. На самом деле, я сейчас пишу этот пост, пока диск с удовольствием вращается в компьютере.

Поэтому, если кто-то изменит размер раздела и обнаружит, что его BIOS зависает после обнаружения диска, либо поместите его во внешний корпус, либо вставьте в другую систему с другим BIOS, то TestDisk переписывает таблицу разделов. Он должен настроить параметры, чтобы снова быть совместимым со старым BIOS (и, вероятно, DOS). Он запишет правильную таблицу разделов с правильными параметрами и оставит все остальные данные на диске нетронутыми.


Скриншот скриншота записи TestDisk - экран таблицы разделов



(Я отмечу, что как только TestDisk переписал таблицу разделов, он больше не показывал ошибок, он переписал таблицу разделов, пока он еще находился в корпусе, но после помещения диска в систему, TestDisk один раз снова показывая ошибки, некоторые старые, некоторые новые, некоторые другие, но, тем не менее, диск работает нормально. Я включил новые ошибки ниже на тот случай, если кто-нибудь захочет попытаться отладить точную причину зависания BIOS, поскольку она, по-видимому, только частично связана с геометрическими параметрами.)

Disk /dev/sdb - 500 GB / 465 GiB - CHS 229504 224 19
Current partition structure:
         Partition                  Start        End    Size in sectors

 1 * HPFS - NTFS              0 107 16    48 134 14     204800

Warning: Bad starting sector (CHS and LBA don't match)
Warning: number of heads/cylinder mismatches 255 (NTFS) != 224 (HD)
Warning: number of sectors per track mismatches 63 (NTFS) != 19 (HD)
 2 P HPFS - NTFS             48 134 15 229504 215 11  976566272

Warning: Bad starting sector (CHS and LBA don't match)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .