habrahabr

Multiboot, UEFI, NTFS или почти рецепт счастья

  • воскресенье, 19 октября 2014 г. в 03:11:11
http://habrahabr.ru/post/240793/

Пост написан по мотивам публикации «Живительная флешка».

Предисловие


Доброго времени суток, Хабр. Совсем недавно, читая Хабр, наткнулся на статью Живительная флешка, где был описан способ создания мультизагрузочной флешки с набором полезных утилит, разнообразных систем и т.д. И все бы ничего, да вот и тут зарыта собака — обратим внимание на эту ветку комментариев, в которой обсуждается работоспособность мультизагрузки в системах с UEFI. Таким образом я начал собственное расследование искать универсальный способ решения этой проблемы.

Далеко ходить не пришлось — еще со времен безумной популярности сборки Windows XP Zver Edition ее разработчики использовали набор утилит под названием RMPrepUSB для записи сборки на USB-накопитель. Сборка ушла из памяти людей, ну а сам проект пакета утилит продолжает развиваться и крепнуть. Ну а сама основа — проект Easy2Boot. Изучая их сайт я нашел универсальный способ создания мультизагрузочной флешки, которая может содержать в себе любой дистрибутив, LiveCD или образы дискет, которые Вы только захотите добавить. Итак, приступим к созданию такой чудо-флешки.

Начинаем


Идем на сайт и качаем последний архив с Install_RMPrepUSB_Full в названии. Распаковываем и устанавливаем.
Внимание: для любителей переносимости — можно открыть установочник в 7-zip (к примеру) и распаковать его в папку без установки.
Далее идем на сайт Easy2Boot и качаем архив с самим E2B, распаковываем в любую папку на ПК.

Подготовка флешки


Заходим в папку с E2B и запускаем файл _ISO\docs\Make_E2B_USB_Drive.cmd.
Внимание: если Вы не устанавливали, а распаковывали RMPrepUSB, то на первом же этапе Вас попросят указать путь в папке RMPrepUSB.
Нас попросят указать номер накопителя из приведенного списка, спросят, действительно ли мы хотим форматировать накопитель и попросят выбрать ФС.
И вот тут внимание! Выбираем FAT32 — грузимся в UEFI без проблем, но нет поддержки файлов >4 Гб, и наоборот — NTFS без UEFI, но с поддержкой больших файлов. Если Ваши образы весять меньше 4 Гб каждый, то смело выбирайте FAT32. С NTFS немного сложнее, а именно — флешка в UEFI не загрузится, но если загрузить ее на обычном биосе, а потом выбрать образ для UEFI (об этом ниже), то Easy2Boot перепишет MBR флешки и она будет загружаться в UEFI, при условии, что в том образе есть его поддержка (наличие файлов efi\bootia32.efi и efi\boot\bootx64.efi)

Идем по сложному пути — пишем N (то есть форматируем в NTFS), вылезет окошко с подтверждением, жмем ОК и ждем. После форматирования будут скопированы файлы E2B и на зеленом фоне появится надпись «Нажмите любую клавишу».

Скриншоты




Структура папок или куда же класть образы?


Заходим на накопитель, видим файлы и папку _ISO. Кратко опишу структуру (подробности есть на сайте):
  • ANTIVIRUS — закидываем образы антивирусных LIveCD (Kaspersky, Dr.Web и иже с ними)
  • AUTO — кидаем любой образ в подпапку с нужным названием (к примеру, по пути Ubuntu\My_Ubuntu_Distro.iso)
  • LINUX — соответственно любой Лунксовый образ закидываем в эту папку.
  • MAINMENU — закидываем образ в эту папку и он появится в главном меню Grub4DOS при загрузке (не в подменю, об этом позже)
  • UTILITIES — образы дискет кидаем сюда
  • UTILITIES_MEMTEST — то же самое, но, увы, точнее сказать не могу
  • WIN — сюда мы будем складывать образы, подготовленные для загрузки в UEFI. Об этом позже
  • WINDOWS — по структуре подпапок несложно понять, что для каждого семейства Windows нужно положить образ в соответствующую ему подпапку.


Далее запускаем RMPrepUSB, выбираем накопитель в списке и жмем Ctrl+F2, соглашаемся и ждем пару секунд. Программа пошаманит с файлами и можно грузиться с флешки.

Постой, а как же UEFI?


Ах, ну да. То, ради чего мы здесь и собрались. Для подготовки образа к загрузке в UEFI, скачаем архив, распакуем его. Устанавливаем файл ImDisk\imdiskinst.exe из папки, после чего перетаскиваем файл образа на скрипт MakePartImage_AutoRun_FAT32.cmd в основной папке. Данный скрипт переделает образ в формат .imgPTN, при монтировании которого E2B будет переписывать MBR и монтировать образ как раздел FAT32. Подробнее Вы можете прочитать тут.

Как все это выглядит?


Рабочий пример — накидал разных образов на накопитель, структура такова:
  • _ISO\LINUX\linuxmint-17-xfce-dvd-64bit.iso
  • _ISO\WIN\ru-en_win7_sp1_x86-x64_18in1_activated_v2.imgPTN
  • _ISO\WIN\Boot_USB_Sergei_Strelec_2014_v.6.9.imgPTN
  • _ISO\WIN\ru_windows_8_1_pro_vl_x86_dvd_LITE_3.iso

Скриншоты
Главное меню флешки

Подменю Linux

Подменю с обычными ISO образами Windows

Подменю с образами для UEFI

При загрузки образа для UEFI нас спросят, действительно ли мы хотим переписать таблицу разделом флешки? Жмем Enter

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


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

Внимание! Если Вы загружались с образов, подготовленных для UEFI, то Вы заметите, что при следующей загрузке с накопителя будет меню загрузки с того самого образа. А где же все те, что мы набросали на флешку? Да и файлы на флешке не те… Тут два варианта — из загрузчика выбрать верхний пункт EASY2BOOT или в ОС запустить с флешки скрипт e2b\RestoreE2B (run as admin).cmd.

В сухом остатке


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

Информация с сайта разработчиков