Как восстановить mbr на флешке

Обновлено: 04.05.2024

Если осилили, то значит уже сделан большой шаг))).
Как вы (я надеюсь) уяснили структуры организации FDD и HDD существенно отличаются и следовательно нет какого-либо иного способа получить USB-HDD, кроме как воссоздать структуру HDD на флешке.
Вот тут и начинается самое интересное. Заботясь о том, что пользователи бараны и не знают о том чего они хотят, Microsoft позаботилась о том, чтобы вы не смогли создать HDD-организацию данных, если устройство видимое Windows считается флопиком.
Какой можно найти выход из сложившейся ситуации?

1. Сказать операционке, что она работает с HDD и нивалнует)))
Hitachi Microdrive
После чего можно обычными методами бить флешку на разделы, форматировать и все будет хорошо.

2. Создать структуру через сторонние программы, которым пофигу то, что думает по поводу типа носителя Windows
HP USB Disk Storage Format Tool (HPUSBFW_Special)
Но другой вопрос насколько верно подобные утилиты воссоздают структуру и геометрию диска.

3. Сделать все ручками. Описывать не буду, слишком многа букаф.
Исходя из того, что структура размещения служебных данных меняется - нет безболезненного способа смены вида носителя HDD<->FDD без потери данных, т.к. многое нужно пересчитывать. Теоретически такую программу сделать можно, но нафиг никому (из тех кто знает как) не нужно.

Вот тут встает еще один интересный вопрос:

А чем поглядеть - правильно ли созданна структура служебных областей? Есть ли MBR? Что с Boot-Record? Как поживает Partition Table и все ли нормально с геометрией?
Вот вам ряд программ (ссылки давать не буду, искать лениво, гугл вам в помощь):

1. Acronis Disk Director
2. Paragon Partition Manager
3. WinHEX
4. Да в принципе что угодно, что позволит как минимум поглядеть в HEX-виде различные сектора диска, а в иделе сможет показать дешифрованную информацию, т.к. читать HEX-коды можно, но неудобно.

Назначение стандартного MBR достаточно простое - предварительная загрузка, определение активного раздела, передача управления на Boot-Record активного раздела.
Нестандартные MBR могут делать свои действия, и нестандартных MBR много))), практически все загрузчики пишутся в MBR перенакрывая стандартную функциональность и расширяя ее своей (grub4dos не исключение)
Но тут есть еще ряд проблем:

1. А фиг его знает как и что BIOS читает с MBR при старте с устройства или же BIOS может быть "заточен" под стандартный MBR и ниче другое (т.е. могут быть проблемы)
2. Тупо могут быть ошибки в коде нестандартного MBR (grub4dos тоже этим грешит, ошибки правятся, и не факт, что их сейчас нет или не появятся новые)
3. Пресловутая геометрия, о которой будет чуть ниже (и позже).

Достоинства помещения grub4dos или иного загрузчика в MBR - в большинстве случаев не нужен Boot-Record, т.е. он может быть поврежден или отсутствовать, при этом загрузчик сможет все равно работать (как пример: chainloder /ntldr - загрузка непосредственно лоадера < да, да. это тоже загрузчик))) >ntldr минуя Boot-Record)
Ну и еще одно достоинство - вроде как просто все это. и достаточно хорошо документировано.

Далее по программе непонятное слово "геометрия" применительно к дискам (флешкам).
Перечитать еще раз (а лучше несколько раз)
Главная Загрузочная Запись - Master Boot Record (MBR)
Когда компьютеры были маленькими, а о законе Мура особенно никто не задумывался, тогда была CHS))), и хотя щаз LBA, но наследие прошлого осталось. Кстати, человеку свойственно на одни и теже грабли наступать неоднократно, вот тому подтверждение:
LBA-48
Короче говоря, так уж исторически сложилось, что некоторые вещи поменять нельзя, и хоть есть более логичные и казалось бы очевидные способы адресации все до сих пор завязано на CHS (Cylinder-Head-Sector), т.е. цилиндр, головка, сектор. И даже не думайте искать на флешке цилиндры с головками . Биосу побарабану, они должны быть и они есть))).
Теперь вернемся к флешкам. Дело в том, что количество ячеек памяти на флеш-памяти конечно и дешифратор работает тоже с определенным набором адресов (ну с поправкой на блочный принцип доступа). Про трансляции рассказывать не хочу, да и это не важно. Просто уясните один факт: в MBR все в CHS, с учетом LBA-адресации и цифери должны быть там правильные, т.к. при попытке доступа за пределы флешки - ничего хорошего из этого не получится.
Более того, правильная геометрия нужна: для старта некоторых операционных систем, для правильной работы загрузчиков и менеджеров, для корректной работы программ модифицирующих ФС и разделы. Но в тоже время, некорректная геометрия не обязательно приведет к тому что у вас не будет грузиться что-либо))). Тут все зависит от того как повезет, как BIOS отработает и какую операционку вы стартануть пытаетесь.
Отчего возникают проблемы с геометрией? Дык напомню, изначально имелась флешка размеченная как флопик, а вы пытаетесь сделать из нее HDD (где как минимум есть смещение на границу головки для выравнивания, согласно некоторых стандартов, для примера 63 сектора [хотя не факт, может меняться]). Ну и далее вся пляска начинается от объема флешки, где высчитывается количество получаемых секторов, и расчитываются границы раздела.
Дык вот, после пересчета некоторыми программами (аля форматерами) вполне может получится что значения CHS "вылазят" за пределы флешки или наоборот не дотягивают до конца, и как итог: получаем CHS<>LBA разной степени тяжести. А они должны быть равны.
Что тут можно сделать?

1. Вручную пересчитать))) размер раздела и скорректировать таблицу так, чтобы все совпадало. Тяжело, но можно. Формулы пересчета глядеть по ссылке выше.
2. Воспользоваться чем-нить, что сделает расчеты для вас))). Ну как пример я знаю Partition Magic (есть на том же Хирене). Т.е. алгоритм действий (дубово простой, но рабочий):
а) Сначала уменьшаем последний (или единственный раздел) в каком-нить Акронисе или Парагоне
б) Загружаем Parition Magic и в нем расширяем до конца диска
Если не сделать шаг a) то Parition Magic при старте скорее всего ругнется на левую геометрию и попробует ее починить))). Иногда он чинит насмерть :). Если же вы подсунете уменьшенный раздел, то ругаться не должен, а растянет его корректно.

Да, кстати, про LARGE-адресацию забудьте . Это был неудачный мутант, которого сейчас найти проблематично.
И напоследок, в grub4dos последних версий появились дополнительные параметры к команде geometry --tyne --sync (рекомендую ознакомиться).
И как итог: надеюсь после прочтения этой части вы точно можете сказать что у вас все впорядке с геометрией.

Таааак.
Ну будем считать что на данном этапе у вас диск с правильной HDD-структурой и правильной геометрией диска.
Далее размышлизмы по поводу загрузчиков. Как уже писалось выше grub4dos в MBR может давать весьма странные эффекты на некоторых компьютерах (ошибки BIOS, ошибки grub4dos, ошибки User'а), посему моя личная рекомендация: оставьте MBR родным. Нефиг там делать grub4dos.
Но всеже перечислю варианты их плюсы и минусы:

1. grub4dos в MBR.
"+" - относительная простота установки, практически все утилиты пытаются его именно туда запхать, исключены промежуточные этапы в загрузке, т.е. Boot-Record раздела в принципе не нужен;
"-" - возможны проблеммы с совместимостью на материнках с кривым биосом.

2. Стандартный MBR и grub4dos в Boot-Record.
"+" - гораздо бОльшая совместимость с оборудованием,
"-" - более тяжело его туда вписать, необходимость контроля того чтобы загрузчик находился в активном разделе ( критично если на флешке несколько разделов ), выполняется двухэтапная загрузка MBR->Boot-Record.

3. Стандартный MBR и стандартный Boot-Record.
"+" и "-" практически все относящееся к пункту 2. Единственное, что grub4dos еще дополнительно нужно прописывать в boot.ini (плюс нужен ntldr в корне флешки) если загрузочный сектор у вас от NT, если от Win9x/Dos то лучше не морочить голову и вписать от NT )))

4. Стандартный MBR и патченый стандартный Boot-Record от NT.
Все то что для пункта 3, только можно обойтись без ntldr и boot.ini (патчится сектор на предмет замены ntldr на grldr), уточню, что просто переименовывать файл grldr в ntldr с неизменным загрузочным сектором не желательно. Может глючить.

5. Извращения типа Plop в MBR -> Grub4dos в Boot-Record и еще какая-нить хрень прикручена. (рассматривать извращения не буду: многабукаф,глюкаф и прочих особенностей).

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

Комментарии к картинкам))) :

1. Измывательства над флешкой начнем с того, что нафиг грохнем первые 128 секторов флешки (взято отболды, с запасом)



2. Совершенно нормально, что сейчас флешка не считается чем-то удобоворимым для операционки



3. Отформатируем ее стандартными средствами (шоб поглядеть что из этого получится)



4. Доформатировалась, щаз пустая.



5. Вот этот скрин интересен, обратите внимание на сектор 1 - MBR нифига там нету, и хотя в свойствах стиля раздела написано, что-то про MBR, но на практике в HEX-эдиторе видно, что это наглая ложь и провокация. Вот какую ерундень мы получим, если будем пытаться форматировать стандартными методами.



6. Акронис не хотит работать с FDD, он просто не показывает их как устройства для работы. Парагон в этом смысле более непревередливый. Плевать он хотел на тип устройства и флешка в нем отображается. Здесь я и подчищу сектор 1, чтобы видеть что в него будет вписано.
Внимание. После любых модификаций MBR или Boot-Record флешку обязательно "передернуть", т.е. отключить и потом подключить. Иначе механизм кеширования сыграет с вами неинтересную шутку и вы будете долго ломать голову - че происходит и почему что-то куда-то не пишется.



После передергивания флешки (напомню 1 сектор забит нулями) она уже не FDD, а просто неразмеченное блочное устройство, которое прекрасно разбивается на разделы и форматируется как HDD.



После форматирования (и "передергивания") акронис опознал флешу))) и уже соглашается с ней работать, собственно вы перед собой видите MBR, опознать сможете по характерным строкам.



В Boot-Record (CHS=0,1,1=63 сектор) какая-то фигня от Парагона))), возможно даже рабочая (не проверял).



Поскольку я не уверен в корректности MBR и Boot-Record, то поступаю очень просто:

Все, после этих действий я уверен, что имею стандартные MBR и Boot-Record. Как вы можете заметить - перезаписываетя не весь сектор))), маркеры остались от Парагона (ну и фиг с ними, потом на свои исправлю)



Как исправляются маркер и label раздела вы видите:



А вот тут (от нефиг делать я попробую новую утилю, которую до этого ниразу не тестировал, а заодно погляжу че она делает, т.е. совмещаю приятное с полезным)
Grub4DOS Toolbox for Windows, GUI installer for grub4dos
Собственно, как вы можете видеть я щаз поставлю grub4dos в BR раздела, а MBR оставлю стандартным.



Ну вброшу на флешку эмулятор и загрузчик grldr, а заодно (как описывал в теоретической части) поставлю активность на раздел



Окончательная доводка (всеже меняю маркеры), а то в прошлый раз отмену нажал))). Ну и заодно показываю че щаз в BR (63 сектор) и копии BR (которая находится в 69 секторе и содержит старый BR от Парагона). Найдите 10 отличий




Вот и все. И если кто-то еще меня спросит - почему у него не стартует grub4dos, то вы уж извините. Буду посылать на юга и читать факинг мануалы.

P.S. Свою миссию я выполнил, если кто оформит статью - хвала ему и почет. Я этим безобразным делом заниматься (от природной лени) не буду.

Ну и добавлю от себя. KDn'у огромный РЕСПЕКТ за проделанную работу.
Если найдете где-то ошибки, пишите, будем исправлять :)

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

/flash.img
и получил файл размером почти гиг. Данные сохранились, и ето хорошо.
Как-то можно восстановить таблицу файлов?



testdisk/photorec (можно и нужно работать с образом, а лучше с его копией)

Чтобы флешка не определялась как 1,44M-ная, нужно забить первые её 512 байт нулями:
dd if=/dev/zero of=/dev/sdb bs=512 count=1


Обычно делаю по этому мануалу. Если я правильно понял вопрос.


Блин, флешка не монтируется. Пишет как неотформатированая.


Спс, но там предлагают данные затереть. Мне их нужно наоборот спасти.

Хм. А точно таблицу файлов? Попробуй скормить testdisk'у.

Ты угробил только mbr на флешке
Скорми её fdisk-у
Сделай там один раздел на всю флешку с типом fat32


Да, я бы так уже и сделал, но еще раз повторю - мне нужно спасти данные, чего б мне это не стоило)


Ты правда такой или прикидываешься? Создай проклятый раздел уже. Он определяется в MBR и ничего не затронет в области данных.

если уж так боишься, то слей с помощью dd бекап всей флешки, и сделай так как тебе посоветовал Lumi выше


Хорошо, хорошо, сейчас сделаю, отпишусь


Сделал раздел на весь объем. Теаерь флешка пуста.

Ты точно сделал только один лишь раздел?
Некоторые программы, считающие себя умнее человека, заодно раздел и форматируют.
Ты пробовал на флешке, или образе?
Пока есть бэкап ничего страшного не случится.
Попробуй скормить флешку программе testdisk


>> Теаерь флешка пуста.

Надеюсь, ты не додумался его отформатировать?


Кстати еще один вопрос. Давно у меня была еще досовская утилита - scan.exe. Суть ее работы слеущая:
натравливаешь ее на файл, она его сканирует на магические символы и вытягивает эти файлы наружу.
Я так музыку с игровых бинарникоы вытягивал. Так вот, никто не встречал аналога под Линукс?


Нет, я не форматировал. Может действительно что-то сделал не так? Лью образ ФС обратно.


Попередження: неправильна ознака 0x0000 таблиці розділів 4 буде виправлена при w(запису)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Команда (m - довідка): m
Команда дія
a перемикнути ознаку завантаження
b редагувати bsd етикетку диску
c перемикнути ознаку сумісності з dos
d видалити розділ
l перелік відомих типів розділів
m вивести це меню
n додати новий пристрій
o створити нову порожню DOS таблицю розділів
p вивести таблицю розділів
q вийти без збереження змін
s створити нову порожню Sun етикетку диску
t змінити системний ідентифікатор розділу
u змінити одиниці відображення/вводу
v перевірити таблицю розділів
w записати таблицю на диск та вийти
x додаткова функціональність (для фахівців)

Команда (m - довідка): o
Building a new DOS disklabel with disk identifier 0xf78329d7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Попередження: неправильна ознака 0x0000 таблиці розділів 4 буде виправлена при w(запису)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Команда (m - довідка):



Ну вобщем, если не фанат никсов (кидайте в меня помидорами), но проще действительно затереть MBR на флешке и воспользоваться чем-то вроде EasyRecovery в режиме raw.



Выложите первые 64 сектора куда-нибудь. Я посмотрю, если вы не создали заново файловую таблицу fdisk'ом, то вопрос решается без всяких RecStudi'й дописыванием нужного в 0 сектор.

Таблицу ты уже спасти не сможешь, но можно спасти файлы.

Сними полный образ с флешки через dd, а потом используй photorec или testdisk.

Восстановление разделов флешки

Случается так, что флешка перестаёт работать – она не позволяет произвести с собой каких-либо действий (запись, форматирование), при этом отсутствуют видимые повреждения. Всё, конечно, поправимо, и есть возможность восстановления.

Разные файловые системы

Windows распознаёт флешку, но предлагает сначала её отформатировать. Связано это с тем, что на компьютере файловая система NTFS, а на флешке – RAW. Происходит это из-за логической ошибки на носителе.

Можно сразу же отформатировать, но если на флешке находятся важные документы или памятные фото – этот вариант не подходит.

Есть пара способов, как восстановить информацию:

  1. Программа для восстановления удалённых данных (в интернете их огромное множество, после установки нужно следовать инструкциям).
  2. Преобразовать файловую систему в изначальную.

В операционной системе есть встроенная утилита chkdsk, вот какие нужно произвести действия:

  • запустить командную строку от имени администратора;
  • ввести команду «chkdsk T: /f» (T— имя флешки, у всех она может быть разная).

Закрыт доступ к данным, но Windows видит флешку

Закрыт доступ к данным, но Windows видит флешку

  • вставьте диск;
  • нет доступа к диску;
  • показывает неверный объём флешки.

Этот процесс восстановления будет более сложен, но нет ничего невозможного. Нужно выполнить так называемое низкоуровневое форматирование. Для этой задачи подойдут специальные программы MPTool.

Каждая программа из данного семейства уникальна и подходит под определённую флешку и контроллер.

Как определить идентификатор устройства (PID) и идентификатор производителя (VID)

  1. Для начала нужно вставить флешку в компьютер.
  2. Далее открыть «Диспетчер задач» и найти вкладку «Контроллеры USB».
  3. Отыскать имя необходимой флешки, нажать правой кнопкой мыши и выбрать «Свойства».
  4. Далее ищем параметр «ИД устройства» или «Код экземпляра устройства».
  5. Во вкладке «Сведения» и находятся искомые значения.

Бывает так, что искомые значения отсутствуют. В таком случае нужно воспользоваться утилитами, которые выведут всю нужную информацию.

После того, как определены PID и VID, необходимо посетить сайт «flashboot» и ввести там найденные значения. Программа выдаст утилиты, необходимые для восстановления накопителя. После установки нужно следовать инструкциям.

USB-устройство не опознано

USB-устройство не опознано

Существует две причины этого:

В первую очередь нужно исключить первый пункт. Необходимо подключить флешку к другому компьютеру, если она определилась и заработала, значит, проблема в компьютере. В противном случае придётся идти в мастерскую, либо заменить носитель.

Вторая причина возникает по причине сбоя в работе драйверов. Первое, что нужно сделать, – попробовать обновить драйвера:

  1. Открыть «Диспетчер задач».
  2. Найти пункт «USB-устройства», открыть.
  3. Отыскать флешку, нажать на неё правой кнопкой мыши и найти вкладку обновить драйвер.

В случае, если это не помогло, можно воспользоваться программой из интернета (DriverPack Solution) – она автоматически найдёт драйвера, которые необходимо обновить и установить (устанавливайте только драйвера для флешки, все комплектующие обновлять не нужно).

Ручная очистка ключа реестра

Ручная очистка ключа реестра

Зная PID и VID флешки, нужно открыть редактор реестра:

  1. Нажать кнопку «Пуск».
  2. В открывшемся меню (в строке поиска) набрать «regedit».
  3. Откроется реестр ключей.

Важно: ни в коем случае, нельзя менять какие-либо настройки, не понимая, для чего они нужны.

  1. Найти ветку «HKEY _ LOCAL _ MACHINE / SYSTEMCurrentControlSet /Enum/USB», в последнем каталоге есть папки. В именах этих папок есть PID и VID.
  2. Нужно удалить всё содержимое папок.

Все эти действия нужно повторить с веткой «HKEY _ LOCAL _ MACHINE / SYSTEMCurrentControlSet/Enum/USBSTOR». Далее необходимо перезагрузить компьютер и наслаждаться выполненной работой.

В случае, если всё вышеперечисленное не помогло, остаётся только один вариант – взять флешку и отнести её в сервисный центр, там специалист выяснит причину неисправности.

/flash.img
и получил файл размером почти гиг. Данные сохранились, и ето хорошо.
Как-то можно восстановить таблицу файлов?



testdisk/photorec (можно и нужно работать с образом, а лучше с его копией)

Чтобы флешка не определялась как 1,44M-ная, нужно забить первые её 512 байт нулями:
dd if=/dev/zero of=/dev/sdb bs=512 count=1


Обычно делаю по этому мануалу. Если я правильно понял вопрос.


Блин, флешка не монтируется. Пишет как неотформатированая.


Спс, но там предлагают данные затереть. Мне их нужно наоборот спасти.

Хм. А точно таблицу файлов? Попробуй скормить testdisk'у.

Ты угробил только mbr на флешке
Скорми её fdisk-у
Сделай там один раздел на всю флешку с типом fat32


Да, я бы так уже и сделал, но еще раз повторю - мне нужно спасти данные, чего б мне это не стоило)


Ты правда такой или прикидываешься? Создай проклятый раздел уже. Он определяется в MBR и ничего не затронет в области данных.

если уж так боишься, то слей с помощью dd бекап всей флешки, и сделай так как тебе посоветовал Lumi выше


Хорошо, хорошо, сейчас сделаю, отпишусь


Сделал раздел на весь объем. Теаерь флешка пуста.

Ты точно сделал только один лишь раздел?
Некоторые программы, считающие себя умнее человека, заодно раздел и форматируют.
Ты пробовал на флешке, или образе?
Пока есть бэкап ничего страшного не случится.
Попробуй скормить флешку программе testdisk


>> Теаерь флешка пуста.

Надеюсь, ты не додумался его отформатировать?


Кстати еще один вопрос. Давно у меня была еще досовская утилита - scan.exe. Суть ее работы слеущая:
натравливаешь ее на файл, она его сканирует на магические символы и вытягивает эти файлы наружу.
Я так музыку с игровых бинарникоы вытягивал. Так вот, никто не встречал аналога под Линукс?


Нет, я не форматировал. Может действительно что-то сделал не так? Лью образ ФС обратно.


Попередження: неправильна ознака 0x0000 таблиці розділів 4 буде виправлена при w(запису)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Команда (m - довідка): m
Команда дія
a перемикнути ознаку завантаження
b редагувати bsd етикетку диску
c перемикнути ознаку сумісності з dos
d видалити розділ
l перелік відомих типів розділів
m вивести це меню
n додати новий пристрій
o створити нову порожню DOS таблицю розділів
p вивести таблицю розділів
q вийти без збереження змін
s створити нову порожню Sun етикетку диску
t змінити системний ідентифікатор розділу
u змінити одиниці відображення/вводу
v перевірити таблицю розділів
w записати таблицю на диск та вийти
x додаткова функціональність (для фахівців)

Команда (m - довідка): o
Building a new DOS disklabel with disk identifier 0xf78329d7.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Попередження: неправильна ознака 0x0000 таблиці розділів 4 буде виправлена при w(запису)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Команда (m - довідка):



Ну вобщем, если не фанат никсов (кидайте в меня помидорами), но проще действительно затереть MBR на флешке и воспользоваться чем-то вроде EasyRecovery в режиме raw.



Выложите первые 64 сектора куда-нибудь. Я посмотрю, если вы не создали заново файловую таблицу fdisk'ом, то вопрос решается без всяких RecStudi'й дописыванием нужного в 0 сектор.

Таблицу ты уже спасти не сможешь, но можно спасти файлы.

Сними полный образ с флешки через dd, а потом используй photorec или testdisk.

Читайте также: