Как создать мультизагрузочную флешку grub
Статья от coka
На настоящий момент новые компьютеры используют UEFI загрузку и так же флешки стремительно растут в объеме. В связи с этим у многих возникают вопросы - как создать Мультизагрузочную флешку , чтобы она наиболее подходила вам, в смысле функциональности и удобства.
По этим причинам в этой статье предлагаю рассмотреть возможность использования загрузчика GRUB2 (как один из вариантов) и только для UEFI загрузки а так же разбиения на разделы флешек большого объема.
Причины, по которым принято такое решение это:
1. Авто определение программ, с которыми вам работать, это grub.cfg или menu.lst.
2. Возможность использовать загрузчик grub4dos, как более привычный для компьютеров с обычным BIOS.
UEFI загрузка - основополагающее требование - файловая система должна быть любой FAT и файлы загрузчика находятся в определенном месте (в нужных папках на том разделе).
Большинство программ для UEFI boot - х64, но некоторые производители софта имеют поддержку UEFI boot - х32, который здесь рассматривать не будем.
Теперь определимся с составом программ, которые хотелось бы увидеть на флешке и подготовить ее соответственно им, так же по возможности чтобы это работало при UEFI boot.
1. Установка Окошек.
2. Сборки от conty9; KopBuH91; Sergei Strelec; Xemom1 (наверно перебрал).
3. Акронисы или Парагоны или что-то в этом роде.
4. Антивирусы.
5. Линух установки или лайвы.
6. Утилиты.
Подготовка флешки и установка загрузчика
Можно делать дальнейшее и другими программами, но.
Наиболее универсальной утилитой (на мой взгляд) является Bootice.
Взять можно здесь.
Причины, по которой флешка разбивается на разделы.
1. Жаба душит отдать все под FAT32.
2. Хочется иметь возможность сохранять файлы более 4 ГБ.
3. Касперскому для сохранения баз.
4. Да мало ли для чего.
Делаем разделы на флешке
1. Открываем Bootice и идем в Parts Manage.
2. Открываем Re-Partitioning.
3. Выбераем USB-HDD mode (Multi-Partitions).
4. Выставляем нужные значения размера разделов (разделов может быть от 1-го до 4-х) и нажимаем ОК.
5. Открываем в проводнике "Мой Компьютер" и производим форматирование раздела флешки.
6. Возвращаемся в Bootice и идем в Parts Manage, там переназначаем букву следующему разделу (выделив его и нажав на Assign Drive Letter).
7. Форматируем так же как и 1-й раздел.
Для формата флешек или раздела более 32 ГБ,чтобы это обойти ограничение (если у вас старая версия Bootice), можно использовать fat32format, для переключения между разделами используйте Bootice, переназначая буквы разделу.
Установка загрузчика grub4dos
Открываем Bootice и идем в Process MBR, где можно сразу выбрать GRUB4DOS 0.4.5c/0.4.6a (grldr.mbr)/
Если такой вариант не устраивает, то Process MBR пропускаете или там отмечаете любоеб что вам нравится и устанавливаете его, а после переходите в Process PBR. В PBR устанавливаете GRUB4DOS 0.4.5c/0.4.6a (FAT/FAT32/NTFS/ExFAT), а если и так не нравится, то прописывайте в PBR - BOOTMGR с дальнейшим его переименованием.
Загрузчик должен прописан и находиться на 1-ом активном разделе с файловой системой FAT32.
Заполнение мультизагрузочной флешки
Возьмем за основу любую сборку с поддержкой UEFI от AlexGen FILTH puhpol и т. д.
Так как вы находитесь на этом сайте, то будем потрошить m0nkrus FAN 3.
У нас уже есть установка Windows 7/8.1 и Live от conty9, работающие при UEFI boot. Осталось прикрутить GRUB2 для Linux, ведь Win PE на основе 7ки или 8ки, прикручиваются к UEFI загрузке, с помощью BCD Edit программы Bootice. Редактируется файл BCD, который находится на флешке по пути: /efi/microsoft/boot
Для совмещения загрузчиков пришлось разнести их по разным разделам флешки, т. к. были совпадающие файлы. Теперь загрузка происходит таким образом: в начале стартует GRUB2, где можно прописать загрузки Linux систем и переход в меню установки Windows и запуска WinPE в UEFI режиме.
Для этого надо знать UUID разделов флешки.
--------------------------------------------------------------------------------------------------
menuentry "Установка Win7/8.1 и запуск WinPE в UEFI режиме (x64)" search --fs-uuid --no-floppy --set=root B4EF-6BC8
chainloader ($)/efi/boot/bootx64.efi
>
--------------------------------------------------------------------------------------------------
menuentry "Konboot x64 " search --fs-uuid --no-floppy --set=root B903-79FF
chainloader ($)/efi/boot/KonBoot/bootx64.efi
>
--------------------------------------------------------------------------------------------------
В приведенных примерах - Это два раздела одной флешки (UUID=B4EF-6BC8)и(UUID=B903-79FF)
Это позволяет переключатся между Grub2 EFI и Windows EFI и запускать программы, работающие в режиме UEFI, не отключая Secure Boot.
После разбития флешки на разделы в BooICE она назначает букву лишь одному разделу, который и будет загружаться в начале. Поэтому Grub2 EFI ставим на 1-й активный раздел, имеющему назначенную букву. 2-ой раздел отдаем под сборки Windows EFI (установка и Live CD).
Добавление программ происходит редактированием файла grub.cfg по пути /boot/grub/grub.cfg
Картинка меню, расположение строк и их цвет указаны в THEME.TXT, если используется тема для Grub2
При использовании простого оформления все указывается в файле.cfg.
Для загрузки компьютеров с обычным BIOS используется загрузчик grldr и menu.lst расположенные на 1-ом активном разделе и пропиской grub4dos в PBR.
P.S. Запускал х64 Асронисы; Парагоны; Антивирусы с сохранением обновленных баз, многие Линухи.
Что знаю, то подскажу, а чего нет, то самообразование никто не отменял.
puhpol ,
Нерационально, похоже на танец с бубнами.
Использовать 2-а раздела под загрузчики, да ещё необходимость uuid, которые у каждого индивидуальны. Не похоже, что автор искал универсальный и рацональный метод.
Можно проще и универсальнее:
1) с помощью bootice разбить диск (флеш, карту) на 2-а или 3-4-е раздела, для совместимости с bios с разметкой mbr. Один из которых небольшого размера, достаточео 100 Мбайт, рекомендую сделать последним номером, будет в fat32, которому можно назначить идентификатор EF. Первый раздел в ntfs (не исключаю и exFAT), чтобы он был виден в Windows, на нем размещаем загружаемое, последующие разделы можно выделить под linux (ext2, btrfs и т.п.).
2) далее с помощью того же bootice прописываем в mbr fat32 загрузчик, для пущей простоты grub4dos. На этом же разделе fat32 размещаем все загрузчики, в т.ч. efi. Забрасываем в efi/boot менеджеры grub2-efi, переименовав их в bootx64.efi и bootia32.efi соответственно, если требуется там же grub.cfg с ссылкой на конфигурационный файл, где сам загрузчик grub2-efi. Чтобы не заниматься установкой grub2-pc, grub2-efi из ubuntu и т.п. можно воспользоваться проектами grub2win и т.п.
3) Далее возвращаемся к grub4dos, в корне раздела размещаем файл grldr и в нем прописываем загрузку grub2-pc. Т.е. grub4dos в mbr нам нужен лишь как удобный костыль для запуска grub2-pc, это особенно актуально для таких проектов как grub2win устанавливаемых через windows. Хотя grub4dos можно оставить и основным загрузчиком. Однако, более универсальным будет использовать grub2 и для bios и uefi.
4) загрузчики windows размещаем в /boot и /efi/microsoft соответственно. После этого у нас будет достаточный набор.
Переключаться между разделами для редактирования конфигурационных файлов загрузчиков из под windows можно с помощью bootice. В случае linux этого не требуется.
Немного дополню. Для того что бы не было пересечения файлов, в директории Efi\Boot создаем под папки (к примеру): 2к10; Fan; Xmpe; Sstr. В эти папки копируем из соответствующих сборок файлы bootx64.efi и BCD.
Для 2к10 дополнительно в папку Efi скопировать из сборки папку мелкософт с загрузчиком.
Опробовано на флешках с одним и двумя разделами.
В файле grub.cfg прописываем:
menuentry "2K10_8x64" --class windows <
insmod /boot/grub/x86_64-efi/chain.mod
insmod /boot/grub/x86_64-efi/fat.mod
insmod /boot/grub/x86_64-efi/exfat.mod
insmod /boot/grub/x86_64-efi/ntfs.mod
insmod /boot/grub/x86_64-efi/ntfscomp.mod
search --set=root -f /2k10/Programs-2k10
chainloader /efi/boot/2k10/bootx64.efi
boot
>
menuentry " m0nkrus FAN v4.2_8x64_установка_7|8.1|10 " --class windows <
insmod /boot/grub/x86_64-efi/chain.mod
insmod /boot/grub/x86_64-efi/fat.mod
insmod /boot/grub/x86_64-efi/exfat.mod
insmod /boot/grub/x86_64-efi/ntfs.mod
insmod /boot/grub/x86_64-efi/ntfscomp.mod
search --set=root -f /efi/win_pe/W8x64.wim
chainloader /efi/boot/Fan/bootx64.efi
boot
>
menuentry " Xmpe " --class windows <
insmod /boot/grub/x86_64-efi/chain.mod
insmod /boot/grub/x86_64-efi/fat.mod
insmod /boot/grub/x86_64-efi/exfat.mod
insmod /boot/grub/x86_64-efi/ntfs.mod
insmod /boot/grub/x86_64-efi/ntfscomp.mod
search --set=root -f /Xmpe/W81x64.wim
chainloader /efi/boot/Xmpe/bootx64.efi
boot
>
menuentry " Sstr " --class windows <
insmod /boot/grub/x86_64-efi/chain.mod
insmod /boot/grub/x86_64-efi/fat.mod
insmod /boot/grub/x86_64-efi/exfat.mod
insmod /boot/grub/x86_64-efi/ntfs.mod
insmod /boot/grub/x86_64-efi/ntfscomp.mod
search --set=root -f /Sstr/strelec8x64.wim
chainloader /efi/boot/Sstr/bootx64.efi
boot
>
search --set=root -f /2k10/Programs-2k10 - команда ищет на дисках папки и файлы и делает диск с найденными файлами активным.
sanek-van , Подскажите есть ли разница между тем как вы написали скрипт пример:
Тут описана процедура создания флешки для загрузки множества iso-образов на компьютерах с BIOS. На компьютерах с UEFI она не работает. Для компов с UEFI я делал Универсальную загрузочную флешку для BIOS/UEFI.
Хорошо иметь под рукой флешку, с которой можно загрузиться для восстановления или установки системы. Также хорошо бы чтобы на ней помещались несколько разных образов ISO, доступных из меню. Создать такую флешку можно с помощью специализированных программных средств как под Linux ( Multisystem) так и под Windows (XBOOT), и даже мультиплатформенных (Yumi). Но можно пойти true linux way™ и использовать GRUB.
Сначала нужно создать на флешке раздел и сделать его загрузочным. Запускаем fdisk и натравливаем его на нашу флешку. Нижеприведенные команды делаем с правами root. Список дисков смотрим командой:
Запускаем fdisk (указав свою флешку):
Если на диске есть разделы, то ликвидируем их. Для этого жмем d
После удаления разделов жмем n и создаем новый.
В процессе создания указваем что раздел p (primary).
После создания жмем a, чтобы сделать раздел активным.
Затем жмем t, чтобы задать тип раздела и вводим тип c (FAT32).
Жмем w и записываем изменения на флешку.
Теперь надо отформатировать созданный раздел в FAT32:
Дальше ставим GRUB2 на флешку.
Создаем точку монтирования и монтируем флешку (не забываем sdx менять на актуальные буквы, соотвествующие флешке):
Устанавливаем GRUB (выполняем с правами root):
Старые версии GRUB вместо –boot-directory используют -root-directory. Если что-то не так, то установщик GRUB скажет что “Installation is impossible. Aborting”.
Создаем на флешку файлик grub.cfg
И заполняем его примерно так:
Этот содержит конфигурацию для загрузки с флешки KNOPPIX 7.2, SystemRescueCd 4.6.1, различных вариантов Ubuntu и CentOS 7. А дальше осталось просто положить указанные в grub.cfg образы ISO в корневую директорию флешки и переименовать их как указано в файле.
Для добавления других образов ISO нужно в файлик /boot/grub/grub.cfg прописывать параметры, которые обычно можно найти в файлах grub.cfg, syslinux.cfg и других, входящих в состав образа ISO.
То есть создаем новый раздел меню в /boot/grub/grub.cfg (копируя уже существующий), затем указываем файл ISO в строке loopback, а в строку linux указываем путь к ядру (то что append из syslinux.cfg). В строке initrd указываем путь к файлу initrd.
Скорее всего, в строке linux после пути к файлу ядра придется указать параметры загрузки ядра, которые позволят ядру работать с loop-устройством, на которое монтируется файл ISO. Для систем со схожим ядром, параметры, как правило, одинаковые. Например, для загрузки Fedora подойдут параметры от CentOS.
Монтируем iso-образ Windows 7 или Windows 10, копируем с него все файлы на флешку с помощью cp или rsync и дописываем в grub.cfg такое:
Тут grub будет загружать модули с помощью insmod, потом search - искать раздел с меткой MULTIBOOT и когда найдет - с помощью –set укажет, что root находится на этом разделе, а затем передаст управление /bootmgr
В принципе, для красоты и удобства, было бы неплохо создать отдельный раздел на флешке (так я поступил при создании нового варианта флешки - Универсальная загрузочная флешка для BIOS/UEFI), отформатировать его с меткой Win7, распаковать файлы из iso-образа туда и указывать –label Win7. Просто в дистрибутиве windows также есть директоррия boot и если понадобится очистить флешку от инсталлятора windows, не затрагивая остальные ОС, то из этой директории файлы придется удалять вручную.
Продолжаю писать на тему, как создать загрузочную флешку. Но, сегодня не будут, рассмотрена очередная программа для этого дела, сегодня я расскажу, как создать загрузочную флешку используя Grub4DOS.
Я не буду особо глубоко рассказывать, что такое «Grub4DOS» В конце поста дам ссылку на Русскую документацию, на тот случай, если Вас заинтересует данный загрузчик, и Вы захотите изучить его.
Если Вам интересно тема сброса пароля на вход в Windows, как на 7, так и на XP или 8 прочитайте эту статью.
Теперь приступим к задуманным планам и создадим загрузочную флешку. На USB мы размести следующие вещи:
Для примера этого, хватит.
Как создать загрузочную флешку на основе Grub4DOS?
Первым делом Вам нужно скачать вот этот архив. Распакуйте содержимое куда угодно и следуйте дальнейшим действиям. Ещё, не забудьте отформатировать флешку, как предлагает Windows по умолчанию, то есть в FAT 32.
Для начала необходимо сделать флешку загрузочной. В папке «GRUB» запустите файл «grubinst_gui.exe» теперь нужно правильно выбрать нашу флешку.
Будьте внимательны. Если Вы выберете за место флэшки системный диск, то при следующем включении ПК, Вы будет приятно удивлены. Ваша Windows не загрузится.
Поэтому будьте внимательны, и прочитайте дальше то же внимательно. Отметьте пункт «Disk» теперь в выпадающем списке выбираем флешку.
Первый вариант выбора флэшки, быстрый! Ориентируйтесь по её размеру. В данном случае, моя флэшка под цифрой (2) так как, она на 4 гига, соответственно, 3820М больше похоже на неё. Под цифрой один (1) это системный диск, вот его выбирать не нужно. Под цифрой три (3) ещё одна флешка, но мне она не нужна для дальнейших действий.
Второй вариант выбора флэшки, надёжный! В скобках каждый диск отмечен как (HD0, HD1…) поэтому идём сюда и смотрим номер каждого устройства. « ПКМ по мой компьютер > управление компьютером > управление дисками».
Видим, что флэшка находится под «Диск 1» соответственно в программе нужно выбрать «HD1» как я и сделал. «Диск 2» это моя вторая флэшка, которая не нужна и «Диск 0» это мой HDD на котором находятся «C:\ D:\» и прочие.
Теперь вы точно сможете правильно определить флешку. Как только Вы это сделали, нажимаем кнопку «INSTAL» видим консоль.
Все хорошо, нажимаем «ENTER» консоль закроется, и продолжаем дальше.Теперь из папки USB перекиньте в корень Вашей флэшки следующие файлы.
Установка загрузчика на флешку может понадобиться по нескольким причинам, например, вы хотите установить дистрибутив Linux на внешний носитель или же вам нужен еще один способ загрузить компьютер, когда основной загрузчик был затерт и система не загружается. Одним словом, может быть множество причин.
Мы уже рассматривали как установить Grub на флешку в статье про создание мультизагрузочной флешки из нескольких систем, а теперь поговорим об этом более детально.
Установка Grub на флешку
Если вы устанавливаете на фшелку дистрибутив, то у вас не возникнет никаких проблем с установкой загрузчика. Он устанавливается так же, как и при установке на жесткий диск. Вам достаточно перейти в chroot окружение новой системы, подключить все ее разделы, а затем просто установить загрузчик командой:
И создать конфигурационный файл:
grub-mkconfig -o /boot/grub/grub.cfg
Но если вам нужен загрузчик без операционной системы, то дело немного усложняется. Вы не можете использовать просто grub-install, а конфигурация вообще не будет создана, так как утилита не понимает где находятся файлы загрузчика и файлы конфигурации для него. Но есть решение.
Важно заметить, что при любом способе установки загрузчика, желательно, чтобы на флешке использовалась таблица разделов MBR. Конечно, я не встречал флешек с GPT, но вы сами можете ее создать при желании, а тогда с установкой загрузчика возникнут проблемы. Второе, что важно заметить, фшелку желательно отформатировать в файловую систему fat32. Это важно, чтобы там можно было разместить файлы Grub. Потому что если флешка будет форматирована в NTFS, то ничего не выйдет, а в ext4 - то вы не сможете подключить ее в Windows и использовать для обмена файлами.
Далее подключите флешку в какую-нибудь папку, например, mnt:
sudo mount /dev/sdc1 /mnt/
Имя устройства /dev/sdb1 - это адрес первого раздела на вашей флешке. Обычно там есть только один раздел, так и должно быть. Если больше, то берите первый. А имя флешки может отличаться - sdb, sdc, sdd или другие. Смотрите как флешка называется у вас с помощью fdisk:
Когда устройство подключено мы можем перейти к установке загрузчика:
sudo grub-install --root-directory=/mnt/ /dev/sdc
Здесь мы указываем параметр --root-directory, это та папка, которая будет считаться корнем системы, и откуда будут браться файлы загрузчика при старте. Установщик автоматически скопирует их туда. Устройство /dev/sdc - ваша флешка. После того, как установка будет завершена, можно перейти к настройке пунктов меню. Забегая наперед, если эта команда не работает, используйте опцию --boot-directory вместе с --root-directory, разные версии Grub работают по разному:
sudo grub-install --boot-directory=/mnt/boot --root-directory=/mnt/ /dev/sdc
Теперь нужно создать конфигурационный файл. Если вы используете grub-mkconfig, то получите такое же меню, как в вашей основной системе. Меня это вполне устраивает, только укажите правильное расположение файла, в папке /mnt:
sudo grub-mkconfig -o /mnt/boot/grub/grub.cfg
Теперь нам осталось протестировать как все работает. Для этого лучше использовать qemu:
qemu-system-x86 -hda /dev/sdc
Выводы
В этой статье мы рассмотрели как выполняется установка загрузчика grub на флешку. Несмотря на то, что это может вызвать некоторые сложности, процесс довольно понятен и не требует особых навыков. Зато, с такой флешкой вы можете быть уверены, что сможете загрузить компьютер, даже когда случайно повредили загрузчик. Если у вас остались вопросы, спрашивайте в комментариях!
Читайте также: