Формат mbr на флешке как исправить

Как восстановить флешку без потери данных Любой USB-накопитель со временем может выйти из строя, чем доставит массу неприятностей своему обладателю. Неприятно потерять важные данные и фотографии, а если в сломанном устройстве хранились документы или рабочие файлы, то обидно вдвойне. Конечно, лучше бы всегда подстраховываться и дублировать всю информацию в облако для хранения файлов или […]

Содержание

  1. Как восстановить флешку без потери данных
  2. Причины неисправности
  3. Восстановление флешки без форматирования с помощью командной строки
  4. Встроенное средство проверки
  5. Специализированные программы восстановления данных
  6. БЕСПЛАТНЫЙ инструмент восстановления MBR: как исправить MBR на внутреннем и внешнем жёстком диске
  7. Обзор — Средство восстановления MBR для Windows 10/8.1/8/7
  8. Как определить, что MBR вашего жёсткого диска повреждён или испорчён
  9. Решение 1. Восстановите повреждённую MBR с помощью MBR Repair Tool
  10. Как исправить MBR в Windows 10/8.1/8/7
  11. Решение 2. Восстановите MBR через «Командную строку»
  12. Решение 3. Обратитесь к профессионалам
  13. 5 лучших бесплатных инструментов восстановления MBR для Windows 10/8.1/8/7
  14. Топ 1. EaseUS Partition Master (бесплатная версия)
  15. Топ 2. MBRWizard
  16. Топ 3. Bootrec.exe
  17. Топ 4. BOOTICE
  18. Топ 5. MBRtool
  19. Какой лучший инструмент для восстановления MBR
  20. Бонусный совет — как сделать резервную копию данных без ОС
  21. Подведём итог

Как восстановить флешку без потери данных

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

Причины неисправности

Для начала нужно понять причину неисправности. Основных вариантов здесь несколько:

  1. Механическое повреждение. Проверьте, нет имеет ли накопитель сколов и трещин, может быть погнут USB-разъём или окислились контакты. Устранение таких проблем лучше доверить профессионалам.
  2. Неисправность USB-порта на компьютере. Определить это легко, если подключить к ПК рабочую флешку, либо попробовать воспользоваться другим устройством для распознания.
  3. Наличие на устройстве вирусов. Лучше периодически проверять и чистить вирусы на флешке.
  4. Программные сбои в работе контроллера или микросхемы. Починить контроллер не получится, но можно восстановить данные.

Многие проблемы в работе USB-накопителя происходят из-за неправильного обращения с ним:

  • неправильное извлечение и подключение;
  • отсутствие своевременных проверок;
  • вирусы.

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

Восстановление флешки без форматирования с помощью командной строки

Этот способ является простым в исполнении, но эффективным. Несложный алгоритм действий обяжет Windows проверить и исправить ошибки в файловой системе USB-накопителя. Чтобы просканировать флешку через chkdsk нужно:

  1. В меню «Пуск» найти программу «cmd.exe» и запустить её от имени администратора.
  2. В окне командной строки ввести «chkdsk D: /f», где D — буква накопителя.

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

Встроенное средство проверки

Проверить накопитель на предмет ошибок и исправить их может помочь средство проверки Windows. Выполните действия по следующему алгоритму:

  1. Перейти в «Мой компьютер» и выбрать нужный носитель.
  2. Вызвать меню «Свойства».
  3. Открыть раздел «Сервис».
  4. В разделе проверки диска нажать «Выполнить проверку».

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

Специализированные программы восстановления данных

Если восстановить флешку стандартными способами не удалось, то нужно использовать одну из независимых программ для тестирования и устранения ошибок, например, EaseUS или Authorsoft. Просто скачайте подходящую программу и установите её на компьютер. Использование подобных утилит обычно не вызывает вопросов.

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

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

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

Источник

БЕСПЛАТНЫЙ инструмент восстановления MBR: как исправить MBR на внутреннем и внешнем жёстком диске

Загрузите инструмент восстановления MBR для Windows 10, 8.1, 8, 7 и Windows Server 2016, 2012, 2008, 2003. Следуйте инструкции и исправьте повреждённый MBR на жёстком диске, внешнем жёстком диске, USB-накопителе, на котором повреждена основная загрузочная запись и система Windows не может запуститься должным образом.

Быстрый переход к ремонту MBR:

Обзор — Средство восстановления MBR для Windows 10/8.1/8/7

MBR — это сокращение от Master Boot Record (Главная загрузочная запись). MBR играет жизненно важную роль в загрузке компьютерной системы, а также в качестве таблицы разделов для организации и проверки разделов на жёстких дисках. Главная загрузочная запись создается при первой установке Windows на первый созданный раздел. Если MBR жёсткого диска операционной системы Windows или внешнего жёсткого диска повреждена, вы не сможете загрузиться в Windows.

Все версии Windows — Windows XP, Vista, 7 или 8 используют MBR, и в случае повреждения вы не сможете загрузиться. Вы можете найти лучший инструмент для восстановления MBR, который позволит вам эффективно и действенно восстановить повреждённую MBR. Если вы знакомы с CMD, восстановите MBR через «Командную строку». Примените лучшийинструмент восстановления MBR для Windows 10/8.1/8/7, чтобы быстро исправить повреждённую/испорченную MBR на любом устройстве.

Как определить, что MBR вашего жёсткого диска повреждён или испорчён

Какой признак того, что MBR вашего жёсткого диска повреждён? Кроме того, что точное сообщение об ошибке показывает, что Главная загрузочная запись повреждена, есть и другие подсказки, по которым вы можете определить, повреждёна ли ваш MBR и нуждается ли он в немедленном восстановлении! Например, ошибка MBR 1, ошибка MBR 2, ошибка MBR 3.

Проблема, наряду с повреждённой MBR на жёстком диске или некоторых внешних устройствах, заключается в том, что Windows больше не будет работать, и диск не сможет найти и загрузить операционную систему, потому что Главная загрузочная запись является важной частью системы запуска вашего ПК. Обычно следующие причины являются основными поводами ошибки MBR:

  • Вирусное заражение
  • Сбой диска
  • Неверная таблица разделов
  • Отсутствует операционная система
  • Операционная система не найдена
  • Несистемный диск или ошибка диска

Не переживайте, если вы столкнулись с повреждением MBR. Здесь мы предлагаем вам два эффективных способа восстановления MBR, которые описаны ниже.

Решение 1. Восстановите повреждённую MBR с помощью MBR Repair Tool

Программа для восстановления MBR EaseUS поможет вам легко исправить проблемы MBR на жёстком диске, внешнем жёстком диске и USB-накопителе в операционной системе Windows и серверной Windows без каких-либо хлопот. Все, что вам нужно сделать, это загрузить программу EaseUS для создания разделов на компьютер и автоматически восстановить MBR несколькими щелчками мыши.

Как исправить MBR в Windows 10/8.1/8/7

Шаг 1. Создайте загрузочный диск WinPE.

Загрузите и запустите EaseUS Partition Master на новом ПК, на котором установлена ​​та же система, что и у вас.
Щелкните по пункту «WinPE Creator» на панели инструментов, и выберите функцию создания загрузочного USB-накопителя. Если на вашем компьютере есть привод CD / DVD, вы также можете создать загрузочный диск на CD / DVD.
Нажмите «Продолжить», чтобы завершить процесс.

Шаг 2. Восстановите MBR.

Подключите загрузочный USB или CD / DVD к компьютеру.
Нажмите «Del» («F2» или «Esc») при перезагрузке компьютера (чтобы войти в «Boot Menu» / «Bios»). Загрузите компьютер со «съемного устройства» или «привода компакт-дисков» (с той флешки, которую мы подготовили в шаге 1). Тогда EaseUS Partition Master запустится автоматически.
Щелкните правой кнопкой мыши по тому диску, чья MBR повреждена, и выберите опцию «Восстановить MBR».

Укажите тип MBR с текущей операционной системой, и кликните по кнопке «ОК».

Далее нажмите кнопку «Выполнить 1 операцию» в верхнем левом углу, а затем др. кнопку — «Применить». После этого ваш компьютер снова сможет нормально загружаться.

Решение 2. Восстановите MBR через «Командную строку»

Если вы знакомы с «Командной строкой», вы можете вручную устранить проблему повреждения MBR с помощью CMD. Если вы не можете загрузить свою систему, вам нужно запустить компьютер с установочного DVD-диска Windows 10/8/7. Если у вас его нет под рукой, вам нужно создать его с помощью Windows Media Creation Tool. Вот пример исправления MBR в Windows 10 с помощью CMD.

Шаг 1. Загрузитесь с оригинального установочного DVD (или USB-накопителя для восстановления).

Шаг 2. На экране приветствия нажмите «Восстановить компьютер» в левом нижнем углу.

Шаг 3. Выберите «Устранение неполадок» > «Дополнительные параметры» > «Командная строка».

Шаг 4. Когда загрузится «Командная строка», введите следующие команды и нажмите Enter после каждой:

  • Bootrec.exe/fixmbr
  • Bootrec.exe/fixboot
  • Bootrec.exe/rebuildbcd

Шаг 5. По завершении выйдите из окна «Командной строки», извлеките DVD-диск и перезагрузите компьютер.

Решение 3. Обратитесь к профессионалам

Если вы считаете, что вам сложно исправить MBR и восстановить MBR самостоятельно, вы можете обратиться к профессиональной удалённой помощи 1 на 1.

5 лучших бесплатных инструментов восстановления MBR для Windows 10/8.1/8/7

Многие бесплатные инструменты восстановления MBR могут исправить MBR. Здесь я перечисляю пять самых эффективных инструментов.

Топ 1. EaseUS Partition Master (бесплатная версия)

Как я уже упоминал ранее, EaseUS Partition Master — довольно мощная утилита, которая может помочь в решении проблем с MBR и случаях управления дисками. Даже если у вас небольшие познания в технологиях, вы сможете с её помощью перестроить MBR.

Что мне понравилось

  • Вы можете создать загрузочный носитель, даже если не можете загрузить свой компьютер.
  • Это программа восстанавливает потерянные или удалённые разделы, если у вас возникла проблема с потерей раздела.
  • Программа совместима с Windows 10/8.1/8/7/Vista/XP.
  • Вы можете перестроить и починить MBR бесплатно.

Что мне не понравилось

  • Некоторые функции платные.

Топ 2. MBRWizard

Если вы используете компьютеры на базе x86 и x86-64, MBRWizard — хороший выбор. Это инструмент Master Boot Record (MBR), предназначенный для устранения неполадок с программным обеспечением сторонних производителей. Этот инструмент для восстановления загрузки Windows также обладает множеством ключевых функций.

Что мне понравилось

  • MBRWizard предоставляет функциональные возможности, помогающие решить большинство проблем с загрузкой MBR.
  • Программа может устранять проблемы, вызванные продуктами для создания образов дисков.
  • Вы можете восстановить и защитить MBR-диск на своем ПК.

Что мне не понравилось

  • MBRWizard Suit требует платной лицензии.

Топ 3. Bootrec.exe

Bootrec.exe — это команда, которая используется для обновления кода Главной загрузочной записи, кода загрузочного сектора раздела и BCD (данных конфигурации загрузки). Она предоставляется Microsoft в среде восстановления Windows.

Что мне понравилось

  • Вам не нужно устанавливать дополнительное программное обеспечение.
  • Это абсолютно бесплатно, потому что вам нужны только командные строки.

Что мне не понравилось

  • Вам нужно запустить компьютер с установочного DVD-диска Windows 10/8/7.

Топ 4. BOOTICE

BOOTICE — это программа для создания загрузочных устройств. Она используется для установки, исправления, резервного копирования и восстановления MBR диска или раздела PBR. Всякий раз, когда вы сталкиваетесь с проблемами MBR, вы можете исправить их с помощью BOOTICE.

Что мне понравилось

  • Программа может редактировать файл конфигурации загрузки Windows BCD.
  • Эта программа может управлять элементами автозагрузки UEFI.

Что мне не понравилось

  • Программа доступна только для 64-битной ОС

Топ 5. MBRtool

MBRtool полностью бесплатна. Но это утилита, работающая в DOS. Если некоторые из секторов MBR повреждены, я рекомендую этот инструмент.

Что мне понравилось

  • Программа запускается с загрузочного носителя.
  • Резервное копирование и восстановление доступно для пользователей.

Что мне не понравилось

  • Последнее обновление было давно.

Какой лучший инструмент для восстановления MBR

Существует множество бесплатных способов исправления и восстановления повреждённой MBR на любом устройстве хранения в Windows, среди которых один из широко применяемых методов восстановления MBR — использование «Командной строки» и запуск команды bootrec.exe /fixmbr. Тем не менее, это не лучший выбор, потому что нужно искать дополнительные руководства, чтобы узнать, как создать диск восстановления системы для входа в режим автоматического восстановления Windows.

Кроме того, всё становится намного проще, когда вы знакомитесь с инструментом восстановления MBR! EaseUS Partition Master поставляется с функцией Rebuild MBR. Эта уникальная и мощная функция делает его самым популярным бесплатным инструментом восстановления MBR для исправления повреждённой Главной загрузочной записи жёсткого диска. Вот сравнительная таблица, которая наглядно показывает, какой бесплатный инструмент для восстановления MBR является лучшим.

Сравнение EaseUS MBR Repair Software Bootrec.exe
Лёгкость Просто в использовании Сложно
Поддерживаемые ОС Windows 10/8.1/8/7/Vista/XP Ограничено
Стоимость Бесплатно Бесплатно
Техподдержка Да Нет

Бонусный совет — как сделать резервную копию данных без ОС

Прежде чем вы соберётесь восстанавливать MBR, вам лучше заранее сделать резервную копию файлов. Если повреждённая MBR является системным диском, вы не сможете загрузиться в Windows 10/8/7. Вам лучше сделать резервную копию данных или вашей системы, не загружая ОС. Если у вас имеется резервная копия, вы можете легко восстановить нужные данные и систему. Мое предложение — профессиональная программа для восстановления от EaseUS. EaseUS Todo Backup — это надёжная программа для резервного копирования данных для пользователей, которая позволяет быстро выполнить резервное копирование и восстановление файлов на компьютере под управлением Windows.

Подведём итог

«Главная загрузочная запись этого жесткого диска повреждена» — это распространённая ошибка. Вы можете решить это дело быстро, если будете следовать приведенным выше методам. Кстати, инструмент восстановления MBR EaseUS может не только восстановить MBR, но и проверить жёсткий диск на наличие ошибок. Он проверит повреждённые сектора в разделе и выполнит тест поверхности диска. Если у вас встречаются другие ошибки на диске, вы также можете обратиться к этой программе.

Последние статьи — Также в программе EaseUS

Как преобразовать FAT32, FAT16 или FAT12 в NTFS без потери данных? EaseUS Partit.

Ваш внешний жесткий диск WD My Passport не отображается, не обнаружен или не рас.

Пошаговое руководство, которое поможет вам переместить нераспределённое простран.

Эта статья о том, как использовать дисковую утилиту в Windows. Исходя из потребн.

Источник

Мое почтение читающему!
Топик мог бы получиться просто катастрофически огромным, поэтому перейдем сразу к делу. Впереди вас ждет рассказ, о том, как можно одну флешку сделать одновременно загрузочной как для ОС семейства Windows, так и *nix, а также сделать из нее live-usb. Заранее прошу прощения за жаргон, не сторонник, но так короче.

Аннотация

Как-то пришлось много раз подряд устанавливать на одну и ту же машину кучу разных операционных систем, как от

товарищей

господ из Майкрософт, так и любимых всеми нами *nix`ов. При этом инсталляторы вновь устанавливаемых ОСей периодически терли загрузчики ранее установленных, так что приходилось их восстанавливать вручную, загружаясь с live-usb. Но самое ужасное, что при всем при этом под рукой была всего одна флешка (и еще 15 компьютеров правда, но толку от них было мало, так как разбирать их по причинам гарантии в надежде на лишний жесткий диск было нельзя). Флешка к счастью была большого объема. Вот тут-то и возникла идея сделать из одной флешки две, а лучше три (хотя можно и 4) разных девайса.

Немного теории

Как сделать из одной флешки несколько с целью последующей установки на нее одновременно нескольких установщиков ОС и еще live-операционки? Ответ очевиден — сделать на флешке несколько разделов!

Покопавшись в

интернете

глубинах подсознания вспомнил из институтского курса, что информация о разделах хранится в первом секторе

диска

флешки, называющемся Master Boot Table (MBR), а точнее в отдельной его части, называемой partitions. Находится эта часть по смещению 0x01BE и представляет собой 4 поля по 16 байт, каждое из которых представляет собой запись об отдельном разделе. При этом в принципе возможно на одном устройстве иметь и большее количество разделов, но это сложнее и нам для флешки хватит и четырех.

Инструментарий

В форточных ОС существует неприятное ограничение на количество разделов флешки. Оно не должно превышать 1. Точнее разделов может быть сколько угодно, но ОСь будет видеть только первую из записей в partitions. Собственно это и определило выбор средств для форматирования флешки. Будем работать с линуксовым fdisk`ом!

Сам загрузчик будем писать на FASM`е, так как для программирования кода, выполняющегося вне ОС он наиболее удобен на мой взгляд.

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

Краткое лирическое отступление

На самом деле особенность работы ОС семейства Windows с флешками позволяет используя предлагаемую мной технологию абсолютно безболезненно по отношению к дальнейшему использованию флешки в качестве ординарного накопителя данных. Отрезав от имеющихся у меня в наличии 16 GB парочку в конце, я стал обладателем 14-гиговой флешки, работающей с точки зрения винды как и прежде (т. е. другие разделы были не видны), но при этом при попытке загрузки с нее из BIOS позволяющей устанавливать ОСи из двух гигабайтных разделов, созданных в конце.

Зубофлешко-дробильный аппарат

Начнем с самого простого, разметим файловую систему на нашей флешке. В частности я использовал флешку Transcend JetFlash 16 GB (была получена в качестве подарка, а дареному коню как известно… Хотя нареканий в ее адрес у меня за 1,5 года использования нет). Как я уже говорил, пользоваться будем линуксовым fdisk`ом (под рукой оказалась старенькая виртуальная машина Ubuntu 9).

Итак, монтируем флешку (так как сидим под X-ми, то просто втыкаем ее в порт). Получаем устройство /dev/sdb.

Запускаем fdisk, натравив его на новое устройство:
root@kubuntu:/# fdisk /dev/sdb

Имеем выхлоп:

The number of cylinders for this disk is set to 1953.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

Считаем, что диск чистый и не содержит ни одного раздела. В противном случае командой d исправляем этот недостаток (не забыв скопировать нужные данные заранее).

Задача проста — создать три раздела. Разделы будем создавать основные (primary), чтобы вся информация о них хранилась в partitions MBR`а. Воспользуемся командой n.
Первый раздел самый большой (14 ГБ), так как его потом будет видеть Windows, и его будем использовать в качестве обычной флешки:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-15320, default 1): 1
Last cylinder or +size or +sizeM or +sizeK (1-15320, default 15320): +14336M

Второй и третий по гигабайту:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (13674-15320, default 13674):
Using default value 13674
Last cylinder or +size or +sizeM or +sizeK (13674-15320, default 15320): +1024M

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (14652-15320, default 14652):
Using default value 14652
Last cylinder or +size or +sizeM or +sizeK (14652-15320, default 15320):
Using default value 15320

Проверим полученные результаты, распечатав сформированную таблицу разделов командой p:

Command (m for help): p

Disk /dev/sdb: 16.0 GB, 16064184320 bytes
64 heads, 32 sectors/track, 15320 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0x0dee0000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       13673    14001136   83  Linux
/dev/sdb2           13674       14651     1001472   83  Linux
/dev/sdb3           14652       15320      685056   83  Linux

Как видим имеем три раздела: 14 ГБ, 1ГБ и остатки (чуть меньше гига). Остается сохранить полученные изменения командой w:

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
root@kubuntu:/#

Отключаем флешку от виртуальной машины и моментально лицезреем всплывающее окошко следующего вида:

Видно, что флешка стала восприниматься Windows, как устройство значительно меньшего размера. Что ж, форматируем! Получаем первый раздел, готовый к использованию. Но что делать с двумя другими? Первое, не факт, что самое умное (но главное, что рабочее!), что пришло на ум — это обмануть старушку Windows и поменять местами записи в таблице разделов.

Итак, воспользуемся программой DMDE, откроем флешку, как блочное устройство и покопаемся в байтиках загрузочного сектора.

Выбрали подходящее по размеру устройство.

Открыли его и первое, что видим — это таблицу разделов, разбитую по полям. Не устраивает, лезем к сырым байтам. Нажимаем F2 и видим содержимое MBR. Помним, что partitions (записи о разделах) хранятся с 446 байта.

Красным выделена запись о первом разделе. Далее делаем ход конем! Сохраняем все три записи куда-нибудь в блокнотик, а на место первой записи записываем вторую (crtl+e, записываем, ctrl+w сохраняем). Закрываем DMDE, перетыкаем флешку и… бинго! Видим следующее окошко:

Windows на этот раз увидела второй раздел в гигтар размером. Потираем руки и форматируем.

Как не сложно догадаться, далее стоит на место первого записать третий, а на место второго скопировать с первого. Снова отформатировать и вернуть полученную запись на третью позицию (не забываем, что записи 16 байт, а при форматировании меняется байт идентификатора файловой системы). На последнем шаге возвращаем из блокнотика на место первую запись. В результате, если подмонтировать такую флешку к Ubuntu, получим три разных раздела, а в случае Windows — только один — первый.

Способом, аналогичным способу форматирования разделов, на флешку легко устанавливаются всевозможные операционки. Я на свою установил следующие:

  • Раздел 1 (14 ГБ) — установщик Windows 7 (+ также используется как обычная флешка)
  • Раздел 2 (1 ГБ) — live-usb Windows (bartPE)
  • Раздел 3 — live-usb Linux (backtrack)
А где же код?

Что дальше? Имеем прекрасную флешку с тремя операционками и… огромным минусом! Чтобы после загрузки BIOS компьютер начинал грузиться с флешки, один из ее разделов должен быть активным (значение первого байта в записи partitions 0x01). Легко, скажите вы, воспользуемся все той же любимой DMDE. Возможно, но тут сталкиваемся с очередной проблемой — что, если мы часто меняем мнение по поводу того, с какого раздела флешки грузиться? Не редактировать же каждый раз таблицу разделов из DMDE вручную. Конечно нет, автоматизируем этот процесс!

Еще немного теории

Из чего состоит MBR? MBR — это загрузчик + запись таблицы разделов. После того, как микропрограмма BIOS проверит компьютер (POST), она производит копирование первого сектора диска, с которого предполагается проводить загрузку операционной системы в память по адресу 0x7С00 (процессор работает в реальном режиме адресов) и передает туда управление. Далее кодом загрузчика MBR (все, что до 446го байта) осуществляется проверка готовности диска, проверка записей таблицы разделов (активной должна быть только одна!) и выбор активного раздела с последующей передачей управления загрузчику ОС.

Что сделаем мы

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

Как я уже говорил, код будем писать на FASM (а отладка осуществлялась в Bochs). Далее представлен листинг без особых пояснений, иначе топик никогда не закончится. Хотелось бы только отметить, что так сложилось, что это моя первая программа на ассемблере, поэтому не судите строго. Что делает код было описано выше.

;регистр dl cодержит номер загрузочного диска!

use16
;======== Копируем самого себя по адресу 0000:0600h ===================
    mov ax, 7C0h
    mov ds, ax
    xor si, si

    mov ax, 60h
    mov es, ax
    xor di, di

    mov cx, 0FFh ;в cx лежит число повторений функции копирования слов

    ;[DS:SI] => [ES:DI]; SI += 2; DI += 2;
    rep movsw

    ;Передаем управление на новое расположение кода
    jmp 0000:0618h

;======== Приветствуем пользователя ===================================
	  mov ax, hello_msg_1
	  call print
	  mov ax, hello_msg_2
	  call print

;======== Проверяем таблицу разделов ===================================
	  mov si, [part_adr]
	  mov bh, 80h

	  mov cl, -1
partitions_chek:
	  cmp cl, 3			   ;если уже было проверено 4 записи, выходим из цикла и переходим к обработке записей
	  je partition_select

	  add si, 10h
	  inc cl

	  mov bl, [es:si]
	  cmp bl, bh
	  jne partitions_chek		   ;запись не является загрузочной

	  call partitions_process	   ;запись загрузочная!
					   ;[es:si] содержит адрес записи в таблице разделов
					   ;cl - номер раздела

	  jmp partitions_chek

;======== Подпрограмма вывода инофрмации об активном разделе =============================
partitions_process:
	  mov ax, boot_part_msg
	  call print

	  mov di, part_num
	  add [ds:di], cl
	  mov ax, part_num
	  call print
	  sub [ds:di], cl

	  mov di, boot_flags
	  mov ch, 0
	  add di, cx
	  mov byte[ds:di], 1

	  ret;
;=======================================================================

partition_select:
	  ;Обрабатываем пользовательский ввод
	  mov ax, select_part_msg
	  call print

choise:   mov di, boot_flags
	  mov si, [part_adr]

	  mov ah, 0
	  int 16h

p0:	  cmp al, 48
	  jne p1
	  add si, 10h
	  jmp disk

p1:	  cmp al, 49
	  jne p2
	  add si, 20h
	  jmp disk

p2:	  cmp al, 50
	  jne p3
	  add si, 30h
	  jmp disk

p3:	  add si, 40h
	  cmp al, 51
	  je disk

wrong_choise:
	  mov ax, wrong_input_msg
	  call print
	  jmp choise

disk:	  mov ah, 0
	  sub al, 48		      ; сначала проверка, выбрал ли пользователь действительно загрузочный раздел
	  add di, ax
	  cmp byte [ds:di], 0
	  je wrong_choise
				      ; по [es:si] содержится запись таблицы разделов
				      ; о выбранном загрузочном диске

	  mov ah, 41h		      ; проверка поддержки диском расширенного режима (> 8 GB)
				      ; dl содержит номер диска
	  mov bx, 55AAh
	  int 13h
	  jc  ext_not_present_error
	  shr  cx, 1
	  jnb  ext_not_present_error
	  cmp  bx, 0AA55h
	  je   read_boot_sect

ext_not_present_error:
	  mov ax, ext_not_pres_msg
	  call print
	  int 18h

read_boot_sect:
	  mov ah, 42h
	  mov di, DAP_structure
	  add di, 8
	  add si, 8
	  mov ebx, [ds:si]
	  mov [ds:di], ebx
	  mov si, DAP_structure
	  int 13h
	  jc  ext_not_present_error

	  jmp 0000:7C00h
;======== Подпрограмма вывода сообщений ================================
print:
	  push si
	  push bx

	  mov bx, ax
	  xor si, si
	  mov ah, 0Eh

p:	  mov al, [bx + si]
	  cmp al, 0Ah
	  int 10h

	  je end_print

	  inc si
	  jmp p

end_print:
	  pop bx
	  pop si
	  ret

;=======================================================================
hello_msg_1	 db '************************', 0Dh, 0Ah
hello_msg_2	 db '*WELL`s LOADER (c) 2011*', 0Dh, 0Ah
boot_part_msg	 db 'Find bootable partitions:', 0Dh, 0Ah
select_part_msg  db 'Select part to boot from (press 0 ... 3)', 0Dh, 0Ah
wrong_input_msg  db 'Wrong choise. Try again', 0Dh, 0Ah
ext_not_pres_msg db 'a disk read error occured', 0Dh, 0Ah
part_num	 db '0', 0Dh, 0Ah
part_adr	 dw 1AEh
boot_flags	 db 4 dup (0)
DAP_structure	 db 10h, 0, 1, 0, 0, 7Ch, 0, 0, 8 dup (0)

Как видно, программа загрузчика представляет из себя чистый бинарник без всяких точек входа, секций и прочей сложноты. Режим работы процессора — реальный (16-разрядный).
Чтобы использовать этот загрузчик, его необходимо залить на флешку в первый сектор (с помощью DMDE, например), при этом сохранив нетронутой таблицу разделов. Размер скомпилированного бинарного файла 442 байта.

Перспективы

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

Скачать исходный код и бинарник загрузчика можно отсюда.

Всё о MBR, Boot-Record, Геометрии дисков (флешек)

Так уж исторически сложилось, что после покупки флеш-брелков они форматируются как FDD, тобишь большая дискета. Ну и стандартные процедуры форматирования (по крайней мере та же WinXP) делают тоже самое, считают устройство дискетой и форматируют как дискету. Это важно! По сравнению с HDD дискета НЕ ИМЕЕТ MBR, таблицы разделов, а по первому сектору находится Boot-Record. Соответственно загрузиться с такого устройства можно ТОЛЬКО в режиме эмуляции FDD и все, других вариантов нет. А чтобы получить загрузочное устройство — нужно просистемить (вписать Boot-Record) дискету, т.е. загрузчик помещается в первый сектор.
Т.к. вам в большинстве случаев усиленно хочется установить grub4dos в MBR, то все очень просто — нет MBR, нет конфетки. Т.е. фигушки. Такое грузиться не будет ни при каких обстоятельствах. При необходимости получить именно загрузочную USB-дискету — вписывать загрузчик нужно в Boot-Record!!! И только в него. Но это не все, нужно будет также поправить grldr (HEX-edit’ором) или пересборкой grldr из исходников, с целью исключить из встроенного меню строку игнорирования поиска menu.lst с дискет.
Прочитать вышенаписанное 100 раз и осознать раз и навсегда. После осознания приходит логический вывод, лучше использовать режим эмуляции HDD, на котором я более подробно и остановлюсь.
Для начал читать тут:

Главная загрузочная запись
MBR под микроскопом
Master Boot Record (MBR)
Традиционная логическая структура жёсткого диска
Логическая структура жесткого диска

Если осилили, то значит уже сделан большой шаг))).
Как вы (я надеюсь) уяснили структуры организации 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-коды можно, но неудобно.

Итого, только в том случае, если вы знаете, что флешка со структурой данных HDD-типа, имеет смысл устанавливать grub4dos в MBR!!!
Ну где должен жить MBR вы уже в курсе? В первом секторе))), там где на FDD вместо этого живет Boot-Record. Интересуют именно 512 байт. Если представляете что и как — достаточно одного взгляда, чтобы точно и определенно сказать (поглядев в HEX-код) MBR перед вами или BR (Boot-Record).
Кстати, таблица разделов живет в тех же 512 байтах, т.е. настоятельно не рекомендую ручками переносить этот сектор с другого винчестера))). Править таблицу в таких случаях надо. Акронисы и некоторые другие программы умеют сами пересчитывать таблицу размещения, так что пользуйтесь ими.
На всякий случай, в очередной раз: прописать стандартную MBR можно:

1. Через консоль восстановления (fixmbr)
2. Из под Win98/Dos (fdisk /mbr)
3. Сторонними программами
4. Из предварительно созданной копии (тупо скопировать 512 байт в первый сектор)
5. Из любого другого MBR (но потом поправить Partition Table)
При этом предпочтение нужно отдавать более новым версиям MBR (Master Boot Record — тока щаз догадался, что до сих пор не расшифровал), т.к. они местами отличаются…

Назначение стандартного 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, то поступаю очень просто:

1. Гружу консоль восстановления (если кто не в курсе ее можно установить на винчестер с помощью команды «путь к инсталлу winXPI386WINNT32.EXE /cmdcons«)
2. fixmbr флешка (например fixmbr f:)
3. fixboot флешка (например fixboot f:)

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

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

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

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

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

Усе, запускаю эмулятор и гляжу геометрию новыми командами. Тут я еще и показал как ее отфиксить средствами grub4dos новой версии, но сам еще эту фичу особо не тестил, т.к. Парагон создал раздел с правильной геометрией, что меня несказанно удивило… Я пересчитал и все сошлось. Появляется уважение к разработчикам Парагона, т.к. после форматера от HP у меня всегда была «левая» геометрия которую приходилось править.

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

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

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

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

Источник: http://KDn

Понравилась статья? Поделить с друзьями:
  • Формально логические ошибки
  • Фортнайт failed to initialize battleye service generic error
  • Форд фокус 3 ошибка гидроусилителя руля
  • Формальная ошибка это
  • Форти клиент ошибка 7200