Linux32 - Блог



LINUX32

Свобода выбирать


ArchLinux
Блог >> 2015 >> Ноябрь


21.11.2015

Мультизагрузочная флешка BIOS + UEFI




Всем здравствуйте.

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

Дело в том, что следуя инструкциям прошлой статьи получалась флешка, загружающаяся только на компьютерах с BIOS'ом. Сейчас же идет поколение UEFI, поэтому необходимо "доработать" нашу флешку чтобы она стала загрузочной и в UEFI-компьютере. При этом не потеряв возможности по-старинке загружаться в компьютере с BIOS. Помимо этого, при создании новой флешки одним из основных критериев было минимальное внесение изменений относительно "первой" флешки.

С такими, слегка амбициозными, критериями я и начал свои эксперименты, вооружившись уже знакомой статьей из арчвики.

Для загрузки в UEFI необходимо наличие раздела с флагом esp (флаг можно установить в Gparted, создать и отформатировать раздел в нем же). Чтобы изменения были минимальны, разобьем флешку на два раздела, как и в прошлой статье: первый, чтобы виден был в винде, для файлов и второй загрузочный. Оба с файловой системой fat32.

Примем что флешка в компьютере определилась как диск sdb. Примонтируем второй раздел флешки в mnt:

# mount /dev/sdb2 /mnt


Далее начались мои эксперименты в ходе которых выяснилось, что если устанавливать груб как обычно:

# grub-install --removable --boot-directory=/mnt /dev/sdb


То флешка загружается только в компьютерах с BIOS.

Если установить груб так:

# grub-install --target=x86_64-efi --removable --efi-directory=/mnt --boot-directory=/mnt /dev/sdb


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

Но в который раз пробуя всяческие комбинации форматирования разделов флешки, разных таблиц разделов на ней (mbr и gpt) и установки всевозможных флагов (boot, esp и пр.) я заметил одну интересную особенность: если сначала установить груб для BIOS, а потом сразу же для UEFI, то тогда флешка начинает загружаться и в компьютерах с BIOS, и в компьютерах с UEFI.

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

• Создать на флешке таблицу разделов mbr;

• Создать два fat32 раздела на ней: первый для файлов, второй для груба;

• Смонтировать второй раздел в /mnt;

• Установить на флешку груб для BIOS:

# grub-install --removable --boot-directory=/mnt /dev/sdb


При этом на втором разделе флешки появится папка grub. СКкпировать куда-нибудь из нее папку i386-pc. Она понадобится в дальнейшем и удалить (для чистоты эксперимента) все из второго раздела флешки (то есть папку grub);

• Теперь установить на флешку груб для UEFI:

# grub-install --target=x86_64-efi --removable --efi-directory=/mnt --boot-directory=/mnt /dev/sdb


Во втором разделе уже появятся две папки: grub и EFI.

• Скопировать ранее сохраненную папку i386-pc в папку grub. Это нужно для возможности загружаться в режиме BIOS (сам загрузчик будет в первом секторе флешки, но без модулей груба, находящихся в этой папке загрузка не пойдет).

• Создать рядом с папками grub и EFI папку iso и скопировать в нее нужные iso-образы дистрибутивов;

• Взять точно такой же файл конфигурации grub.cfg как и в предыдущей статье про мультизагрузочную флешку и положить его в папку grub.

Все, теперь у вас в наличии универсальная мультизагрузочная флешка с графическим и автоматическим меню.

Свою флешку я протестировал на компьютере с UEFI и на компьютере с BIOS - везде загрузка идет как и предполагалось. Попробуйте и вы у себя. Делитесь впечатлениями в комментариях.

PS: флаг esp на второй раздел флешки можно и не ставить, флешка все равно будет работать. Единственное что я заметил - при наличии этого флага флешка в файловых менеджерах отображается как один раздел (виндоподобное поведение). Второй раздел с файлами груб становится не виден. В принципе, это довольно удобно: не мозолят постоянно глаза папки grub, EFI и iso.

Такое поведение у файловых менеджеров dolphin и thunar. Но, krusader'у например, на этот флаг наплевать и он показывает все разделы флешки.

Статья


Ваш комментарий:

Имя:
E-mail:
Код с картинки:
Комментарий: