Это не учения, боец! Добро пожаловать в реальный мир!
Полигон DISc0nNecT'a

Авторизация

Книга про инвестиции

Карта посещений

Другие ссылки

Поиск по сайту

Практика создания загрузочного внешнего USB носителя с ERD Commander.

Механизм загрузки и общая структура загрузочного диска.

Для начала немного теории...
При включении электропитания компьютера выполняется общий сброс оборудования и управление передается специальной программе, прошитой в постоянном запоминающем устройстве (ПЗУ) BIOS, называемой базовой системой ввода-вывода (Basic Input/Output System). Основное назначение BIOS - проверка работоспособности оборудования компьютера, сброс и инициализация основных контроллеров и выполнение начальной загрузки операционной системы. Проверка оборудования выполняется подпрограммой самотестирования (POST - Power On Self Test). POST выполняет группы тестов, проверяющих работоспособность процессора, памяти, основных контроллеров чипсета а также некоторых периферийных устройств, необходимых для выполнения начальной загрузки (диски, клавиатура, видеоадаптер и т.п.).

Если в процессе выполнения POST обнаружены ошибки, не позволяющие выполнить загрузку - выполняется останов с выдачей специального звукового сигнала, позволяющего идентифицировать неисправное оборудование. Коды ошибок POST не стандартизированы и определяются версией BIOS. Если же тестирование выполнилось успешно, практически на всех версиях BIOS выдается одиночный короткий звуковой сигнал ("короткий писк") и начинается процедура начальной загрузки операционной системы.
Для выполнения начальной загрузки, в общем случае, подпрограмма BIOS должна считать определенным образом оформленную программу с внешнего носителя в оперативную память и передать ей управление. Для загрузки с внешнего USB диска, необходимо, чтобы подпрограмма начальной загрузки BIOS могла обнаружить устройство загрузки, содержащее в своем первом секторе специальную запись Master Boot Record или MBR.

Стандартно MBR располагается в первом секторе загрузочного диска и занимает 512 байт (стандартная длина сектора). Это не обязательное условие - MBR может занимать более одного сектора, что зависит от конкретной разновидности загрузчика. Хотя запись MBR не является строго зависимой от платформы загружаемой ОС, она отличается для DOS, файловых систем Windows и Linux. Обязательным признаком наличия записи MBR в первом (иногда его называют нулевым) секторе диска является специальный код (сигнатура) в двух последних байтах - 55AA. Наличие сигнатуры проверяется подпрограммой BIOS в первую очередь, и при ее отсутствии, диск считается не загрузочным, даже если соблюдены все остальные условия возможности загрузки. Многие программы работы с жесткими дисками позволяют просматривать и редактировать данные выбранных секторов. Так, например, выглядит запись MBR, просматриваемая с помощью бесплатной версии Victoria for Widows.

Сигнатура MBR

Строго говоря, наличие сигнатуры является не столько признаком присутствия MBR, сколько признаком наличия каких-либо разделов на диске. Если изменить, например, с помощью редактора дисков, сигнатуру сектора, то и BIOS, и операционная система, будут считать такой диск "неформатированным". Перед сигнатурой (по смещению 0x1BE относительно начала сектора) располагается таблица разделов (Partition Table), состоящая из 4-х элементов по 16 байт каждый, что определяет максимальное число (не более4-х) разделов на жестком диске. Каждый элемент описывает тип раздела (00h - раздел неопределенного типа, попросту - свободное место, 01h - 12 битный FAT, 05h - расширенный раздел, 07h - NTFS и т.п.), признак активности (возможности загрузки) - код 80h, адрес начала, адрес конца, смещение относительно MBR и количество блоков раздела. Упрощенно, структуру MBR можно представить так:

  • программный код и данные. (446 байт.)
  • таблица разделов диска (4 поля по 16 байт - 64 байта)
  • сигнатура 55AA (2 байта)

Сигнатура MBR

Программа начальной загрузки ищет активный (Active) раздел, считывает в оперативную память данные из первого сектора данного раздела, и передает управление начальной инструкции кода данного загрузчика. Содержимое загрузочного сектора активного раздела, как правило, зависит от загружаемой операционной системы. Его задача - загрузить в память ядро ОС и передать ему управление.

Таким образом, чтобы загрузиться с внешнего USB диска, нужно:

  • чтобы BIOS компьютера поддерживал такой вид загрузки
  • на носителе присутствовала MBR-запись
  • имелся активный раздел с загрузчиком операционной системы
  • загрузчик дожжен найти и загрузить нужные файлы операционной системы

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

Создание USB диска на основе загрузочного CD/DVD или его ISO-образа.

На сегодняшний день не существует универсальной программы для быстрого и удобного создания загрузочного USB диска. Но имеется немалое количество различных программных продуктов, в том числе и не предназначенных напрямую для решения данной задачи, и тем не менее, позволяющих, при умелом использовании, ее решить. Наиболее распространенный случай, когда имеется компакт диск или его образ ISO и нужно на его основе создать свою загрузочную флешку. Файл ISO - это образ данных CD или DVD диска, основан на международном стандарте ISO-9660. Файл-образ содержит точную копию физического компакт-диска: данные, информацию о файловой системе, структуру каталогов, атрибуты файлов и, что важно - загрузочную информацию. При создании образа ISO, копируется каждый бит CD/DVD диска в соответствии с оригинальным носителем. Формат ISO - самый распространенный формат образов компакт дисков, поэтому существует огромное количество программ, позволяющих получить из существующего диска его ISO-образ.

Существуют также программные продукты, позволяющие выполнять редактирование образов и создавать на его основе загружаемые носители. Одной из наиболее популярных программ для создания загружаемых носителей является UltraISO, компании EZB Systems Inc. Программа платная, однако, незарегистрированная версия позволяет работать с файлами до 300 мб, и может эмулировать виртуальный CD объемом до 600 Мб.


Для примера создадим с использованием UltraISO, загрузочную флэшку на основе загрузочного компакт диска ERD Commander 2008.


Сначала необходимо создать ISO-образ, для чего в основном меню программы выбираем вкладку Инструменты и пункт Создать образ CD. После чего выбираем привод с загрузочным компакт диском, а также указываем имя и путь файла образа ISO.

Создание образа ISO

После нажатия кнопки "Сделать" начнется создание образа ISO из имеющегося CD. Ход процесса отображается программой.

UltraISO

После завершения создания образа, программа предложит открыть его содержимое.

UltraISO

В данном случае, поскольку нет необходимости работать с содержимым ISO-образа можно ответить "Нет" и перейти к следующему шагу - созданию на основе образа диска загрузочной флешки с ERD Commander 2008.

Выбираем вкладку Самозагрузка и пункт Write Disk Image (Записать образ на диск).

UltraISO запись образа на USB диск

Disk Drive - выбираем USB диск, на который нужно записать образ ISO.
В поле Файл образа отображается имя и путь файла образа ISO. Это поле изменить в данном контексте нельзя. Его значение задается выбранным (открытым) файлом ISO. Если необходимо выбрать другой файл образа, то это выполняется через основное меню программы Файл - Открыть - имя файла образа.
Метод записи - нужно выбрать USB HDD или USB HDD+.

В нижней части окна жмем кнопку "Форматировать" и задаем параметры форматирования сменного диска.

Форматирование флешки

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

UltraISO предупреждение.

После нажатия "Да" начинается процесс записи образа на съемный диск. Ход процесса отображается в виде протокола в верхней части основного окна.

Ход процесса записи UltraISO

После завершения операции записи становится активной кнопка "Назад" и при ее нажатии окно записи образа закрывается. Подобная методика позволяет легко создавать загрузочные USB диски аварийного восстановления системы из образов ERD версий 6.0 и 6.5 комплекта Microsoft Diagnostic And Recovery Toolset (MS DART). Однако, попытка создать загрузочную флешку из образа ERD Commander 2005/2008 или ERD версии 5.0 заканчивалась неудачей. Диск создавался успешно, но попытка загрузки с него заканчивалась выводом на экран дисплея сообщения: "Start booting from USB device: Remove disk or other media. Press any key to restart".

Образы ERD 6.X создаются на основе Windows Preinstallation Environment (WinPE) версии 2.0 и старше. WinPE - это усеченная версия Windows XP, которая может быть загружена без установки на жесткий диск, а с использованием CD/DVD привода или внешнего USB носителя. Версия 2.x и старше использует загрузчик в стиле Windows Vista/Windows 7. Предыдущие версии - загрузчик в стиле Windows NT/2000/XP. Напомню, что при записи образа ISO на флешку, программа UltraISO выводила протокол своей работы, в котором присутствовала запись о типе загрузочного сектора раздела. В приведенном примере, это строка - Boot Sector: WinNT. Это означает, что использовался загрузочный сектор раздела, применяемый для загрузки Windows NT/2K/XP.

Процесс загрузки системы с жесткого диска в данном случае происходит следующим образом:

  • считывается MBR и определяется адрес активного раздела
  • считывается загрузочный сектор(ы) активного раздела и управление передается ему
  • выполняется поиск и загрузка с передачей управления файлу загрузчика системы

Механизм загрузки WinNT/2K/XP с использованием жесткого диска один и тот же - в корневом разделе диска ищется файл загрузчика ntldr, загружается в память, и управление передается ему. Дальше, уже код загрузчика занимается поиском и загрузкой необходимых файлов Widows. В случае с Windows PE на компакт диске, используется код загрузочного сектора CD (файл bootsect.bin) и вместо файла начального загрузчика ntldr используется файл setupldr.bin из каталога I386. Причем файл setupldr.bin полностью функционально идентичен файлу ntldr. Напрашивается простое решение - удалить из корня флешки файл bootsect.bin и скопировать из каталога I386 файл setupldr.bin в ее корень под именем ntldr. Программный код загрузочного сектора активного раздела должен обнаружить файл начального загрузчика ntldr в корне флешки и передать управление ему.


При попытке загрузиться в таком варианте ситуация изменилась. Загрузка началась, выдалось сообщение Setup is inspecting your computer's hardware configuration:
И через несколько секунд NTDETECT failed. Все верно, setupldr.bin в виде загрузчика ntldr в корне флешки, сработал, но не найден файл NTDETECT, что вполне ожидаемо, поскольку механизм загрузки в стиле WinNT предполагает, что кроме файла ntldr в корневом разделе диска должен присутствовать файл ntdetect.com

Это файл также находится в каталоге I386 флешки. Просматривается закономерность, что при использовании setupldr.bin в качестве ntldr, все файлы, необходимые для загрузки и инициализации ядра, должны находиться в корневом каталоге диска, а не в каталоге I386. После копирования их в корневой раздел съемного диска загрузка завершилась сообщением File \minint\system32\biosinfo.inf could not be Loaded. Отсутствует файл \minint\system32\biosinfo.inf. Однако и каталога minint на флешке нет, а есть I386, в котором как раз и расположен искомый файл. Напрашивается вывод, что вместо имени каталога системы I386 используется имя minint.
Вообще-то, можно было бы разобраться со структурой записей в файле txtsetup.sif и изменить путь к системным файлам, но есть более простой и универсальный способ. Попробуем переименовать каталог и снова попытаемся загрузиться с флешки. Все прекрасно работает! Загрузка с внешнего USB диска ERD Commander 2005/2008/ERD5.0 выполняется без каких-либо проблем, гораздо быстрее и появляется прекрасная возможность переделать полученную загрузочную ERD-флешку под свои предпочтения.

Создание загрузочной ERD флешки без использования ISO-образа

Понимание механизма загрузки позволяет решить "вручную" большинство проблем без поиска и установки дополнительного программного обеспечения. Для примера, если на полученной флешке понадобилось заменить версию ERD Commander, то сделать это, можно без использования какого либо ПО. Основная загрузочная запись MBR и код загрузочного сектора активного раздела на данной флешке уже имеются. Следовательно, достаточно просто удалить с нее все файлы и каталоги одной версии ERDC и "подсунуть" нужные из состава другой. Естественно, нельзя использовать форматирование, а именно удалить старые файлы и папки и на их место скопировать новые. Для создания загрузочных съемных USB носителей можно обойтись и без использования записи образов компакт-дисков.

Предыдущую задачу можно решить и без использования программы UltraISO. Для получения на флешке MBR и загрузочного сектора раздела можно воспользоваться, например, простой и бесплатной программой PeToUSB (около 100кб в архивированном виде), позволяющей выполнять форматирование USB носителей c записью загрузочных секторов. Программа не требует инсталляции и очень проста в использовании.

Форматирование с помощью PeToUSB

После завершения форматирования, у нас будет пустая флэшка с записью MBR, признаком активности и загрузочным сектором раздела в стиле WinNT. Для создания загрузочного диска ERD Commander остается выполнить следующее:

  • cкопировать содержимое диска ERD на флешку
  • скопировать файлы (biosinfo.inf, ntdetect.com и др.) из папки I386 в корневой каталог флешки
  • переименовать в корневом каталоге файл setupldr.bin в ntldr
  • переименовать каталог I386 в minint

Источник

Яндекс.Метрика