Как создать мультизагрузочную флешку grub linux

Мультизагрузочная Linux-флешка

Тут описана процедура создания флешки для загрузки множества 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:

Установка загрузчика GRUB

Дальше ставим 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

Для добавления других образов 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 образов с помощью GRUB можно тут: https://wiki.archlinux.org/index.php/Multiboot_USB_drive

Загрузка установочных образов Windows 7 и Windows 10 c помощью GRUB

Монтируем 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, не затрагивая остальные ОС, то из этой директории файлы придется удалять вручную.

Источник

Создание мультизагрузочного USB HDD или флешки

Загрузочный USB Flash или HDD накопитель удобен тем, что можно отказаться от использования CD/DVD для установки ОС и использования диагностических программ типа Memtest, MHDD, Acronis TI.

Читайте также:  Не могу получить код активации windows

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

Существует множество решений для флешек (например, http://eee-pc.ru/wiki/софт:usb_multiboot), но, как правило, они не работают с USB HDD. На хабре я нашел только статью об установке Win7 с USB HDD, но год назад попытки воспроизвести это не увенчались успехом. Для установки Windows 7 с флешки существует MS Win7 DVD Tool, но он опять же не работает с HDD. Поэтому давайте создадим свой мультизагрузочный USB HDD с помощью GRUB4DOS.

Нам понадобится:

  • USB HDD (все описанное должно работать и для флешек).
  • ОС Windows (естественно можно аналогично сделать это и из ОС на базе Linux, но у меня сейчас нет возможности проверить работоспособность и наличие «подводных камней»).
  • Материнская плата (BIOS) с поддержкой загрузки с USB накопителей. Если загрузка с USB не поддерживается, можно использовать Plop, об этом ниже.

Начнем

  1. Скачиваем HP USBFW и форматируем наш накопитель. Обычно все, в том числе и я, пропускают этот шаг. Возможно, будет работать и без него, но лично я перепробовал все стандартные варианты форматирования из Windows 7, однако загрузка с моей 320ГБ Тошибы не работала (зависала сразу после выбора в Boot menu) до использования этой утилиты.
  2. Если воспользовались HP USBFW из прошлого пункта, то можно удалить созданный им на весь диск раздел и создать свой, поменьше (желательно FAT32, иначе могут возникнуть проблемы с некоторыми программами и ОС), а оставшееся место оставить для «файлопомойки».
  3. Устанавливаем загрузчик GRUB4DOS в MBR. Рекомендуется использовать первый вариант, чтобы не ошибиться с выбором диска или раздела.
    1. Можно воспользоваться GUI: для этого скачиваем grubinst-1.1-bin-w32-2008-01-01, запускаем grubinst_gui.exe, выбираем диск, жмем Refresh в Part list и выбираем нужный раздел. Остальные настройки можно не трогать.
    2. Либо в консоли командой: Номер диска можно узнать в «Управлении дисками» (diskmgmt.msc).
  4. Копируем файлы grldr и Menu.lst из архива grub4dos-0.4.4.zip в корень раздела.

Можно перезагружаться и проверять работоспособность нашего мультизагрузочного накопителя.

Для проверки работоспособности многих программ необязательно каждый раз ребутать компьютер. Можно использовать виртуальные машины: MobaLiveCD или VirtualBox. Для VB выполняем в консоли: где число в PhysicalDrive — номер нашего загрузочного диска, и указываем полученный файл (C:\USBHDD.VDI) в качестве жесткого диска при создании машины. Однако некоторые ОС (например, Windows 7) могут не работать таким способом.

Примеры установки некоторых ОС и программ

Memters86+

Скачиваем ISO образ с офф. сайта memtest.org/download/4.20/memtest86+-4.20.iso.zip и кидаем его на наш загрузочный HDD (не забываем распаковать .zip архив).

Открываем Menu.lst текстовым редактором, добавляем туда следующее:

И попробуем разобраться, что эти команды означают.
title Memtest — название пункта (Memtest), которое будет отображаться в меню.
map /mt420.iso (hd32) — загрузка ISO образа, находящегося в корне загрузочного диска (эмуляция CD-ROM).
root (hd32)— делает виртуальный CD-ROM корневым.
chainloader () — передает управление другому загрузчику (если в скобках ничего не указано, то используется корневой, в данном случае hd32).

Ubuntu 10.4

Также кидаем ISO образ с ubuntu.com на HDD и прописываем в Menu.lst (образ переименован в ubuntu1.iso):

Windows 7

А вот с Win 7 немного сложнее.

Способ 1:

Копируем все файлы с диска (образа) Windows 7 и добавляем в Menu.lst:

В некоторых случаях работает, но могут возникнуть различные ошибки во время установки. К тому же таким способом будет работать только если на hdd находится одна Windows 7, иначе (например, если хотим поместить туда х86 и х64) запустится установка первой найденной.

Способ 2:

Небольшой скрипт автоматизирующий некоторые операции (в т.ч. добавление пункта в Menu.lst) по изменению образа. Источник — greenflash.su/forum/5-661-1, там же ссылки на подробное описание того, что он делает.

Способ 3:

Качаем imdisk, запускаем, копируем полученную папку imdisk на наш диск.
Создаем в этой папке файлы со следующим содержанием:

Либо берем здесь уже готовую папку.

Кидаем образ Windows 7 в корень диска (не забываем переименовать его в win7.iso или соответственно изменить имена во всех файлах) и в Menu.lst добавляем:

Читайте также:  Vmware linux нет звука

И во время установки Win 7, когда попросит драйвер CD-ROM, открываем консоль (SHIFT+F10) и запускаем setup.bat:

UPD: автоматизация этого способа: rghost.ru/20467691 либо greenflash.su/_fr/7/7487664.7z. Файлы из архива (кроме menu.lst и seven.iso) необходимо скопировать в корень раздела (либо соответственно изменить пути в Menu.lst).

Возможные проблемы и ошибки

Error 60: File for drive emulation must be in one contiguous disk area

Решение: нужно дефрагментировать образ. Например, с помощью программы Contig от Марка Руссиновича. Использование: contig.exe g:\ubuntu1.iso в консоли.

BIOS не поддерживает загрузку с USB, зависает, долго грузится и другие проблемы, связанные с загрузкой с USB HDD

Решение: Plop boot manager. Вариантов использования много и на их описание не хватит места, поэтому инструкцию на русском можно найти, например, тут.

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

Более подробный мануал по GRUB4DOS есть здесь (перевод на русский язык, местами кривой) либо в README_GRUB4DOS из архива с GRUB4DOS.

UPD1: перезалит скрипт из 2 способа вин7: ошибся и выложил старую версию, в ней были проблемы с х64.
UPD1.1: добавлен автоматизированный 3 способ вин7.

Источник

Lubuntu.ru

Русскоязычное сообщество Lubuntu Linux

Мультизагрузочная флешка с grub2

Модератор: adventurer

Мультизагрузочная флешка с grub2

Сообщение adventurer » 20 июл 2011, 20:50

Мультизагрузочная флешка с загрузчиком grub2.

Для создания мультизагрузочной флешки нам понадобится сама флешка объёмом не менее 2ГБ. На ней хватит места для двух iso-образов по 700МБ каждый и для файла casper-rw.
Ничто не мешает нам записать всего один iso-образ, тогда хватит и флешки объёмом в 1ГБ. Но эту флешку нельзя будет назвать мультизагрузочной. Она будет просто загрузочной.

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

Вставляем флешку в разъём. На экране появляется окошко с надписью «Подключён сменный носитель» и предложением «Открыть в файловом менеджере». Нажимаем «Отменить».
Далее, идём в Меню_Приложений/Системные/Дисковая утилита.
В списке устройств выбираем нашу флешку.

Нажимаем кнопку «Размонтировать раздел».

Нажимаем кнопку «Форматировать устройство».
Оставляем схему «Таблица разделов MBR».

Нажимаем «Форматировать», подтверждаем.
Нажимаем кнопку «Создать раздел».

Выбираем файловую систему FAT.
Можно задать название (метку) раздела. Я назвал раздел «multiboot».

Ждём окончания процесса форматирования.
Нажимаем кнопку «Монтировать раздел». Запоминаем точку монтирования:

Закрывать программу «Дисковая утилита» пока не будем, просто свернём окно.

Теперь нам нужно установить на флешку загрузчик grub2. Для этого нам понадобится терминал.
Идём в Меню_Приложений/Стандартные/LXTerminal.
Можно ещё раз открыть окно программы «Дисковая утилита» и убедиться, что наша флешка определилась как устройство /dev/sdb, а точка монтирования /media/multiboot.
Для установки загрузчика в LXTerminal выполняем команду:

Обратите внимание! Устанавливаем загрузчик именно на устройство (/dev/sdb), а не на раздел (/dev/sdb1)!
Получили сообщение, что инсталляция завершена. Сообщений об ошибках нет.

Загрузчик установили. Создаём конфигурационный файл:

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

Добавим файл шрифтов. Возьмём его из каталога /usr/share/grub/. Скопируем на флешку в каталог /boot/polices/, который надо создать.

Теперь самое время проверить, работает ли наша флешка (и, если понадобится, изменить цвета меню).

Осталось самое простое (или наоборот, самое сложное) — добавить iso-образы.
Сначала добавим утилиту memtest для тестирования оперативной памяти компьютера. Скачать утилиту можно отсюда:

Скачивать нужно архив с бинарным файлом (на момент написания статьи самая последняя версия memtest86+-4.20.bin.gz).
Создаём каталог для файла memtest:

Теперь, для разнообразия воспользуемся графическим интерфейсом архиватора File Roller. Щёлкаем мышкой на иконке файла memtest86+-4.20.bin.gz, нажимаем кнопку «Распаковать», указываем каталог /media/multiboot/boot/img/ и опять нажимаем «Распаковать».

В файл grub.cfg добавляем пункт с утилитой memtest:

Читайте также:  Windows 10 закрывается acrobat

Обратите внимание на параметры locale=ru_RU.UTF-8 и console-setup/layoutcode=ru, передаваемые ядру при загрузке. Они позволяют загрузить iso-образ Lubuntu c русской локалью и поддержкой соответствующей раскладки клавиатуры. Для других языков эти параметры нужно отредактировать.

На этом шаге опять нужно проверить работоспособность флешки. ОС Lubuntu должна загружаться. Интерфейс должен быть на русском языке. Откройте программу AbiWord и попробуйте напечатать несколько слов на анлийском и русском языках. Переключение раскладки должно работать.

Если что-то не так, то ищем ошибки и исправляем их.

Как я уже упоминал, Lubuntu, кроме того, что она лёгкая и быстрая, полностью русифицирована (все файлы локализации включены в iso-образ). Эти свойства делают Lubuntu идеальной ОС для использования на флешке. Но, все программы в iso-образ поместить не возможно. А так бывают нужны программы для поиска — catfish, для резервного копирования — deja dup, для восстановления таблицы разделов — testdisk. Нужных программ, которых нет в iso-образе, великое множество. Конечно, можно их установить через интернет. Но как их сохранить?
Оказывается для этого служит режим persistent mode. В режиме persistent mode все изменения записываются на отдельный раздел, а точнее в файл casper-rw. Вообще говоря, для записи изменений, кроме файла casper-rw, можно использовать и файлы home-rw, casper-sn и home-sn. Но в файл home-rw будут сохранятся только файлы домашних каталогов. А мы хотим сохранить установленные программы, то есть хотим сохранить системные изменения. Для этого надо использовать файл casper-rw. Ну а файлы casper-sn и home-sn используются для сохранения снапшотов (о которых я имею весьма смутное представление).
Файлы casper-rw ходовых размеров 256МБ, 512МБ, 1ГБ, 2ГБ, 4ГБ можно скачать из интернета (в архивированном виде файлы, содержащие нули, занимают очень мало места). Но мы создадим файл casper-rw сами, используя команду dd:

По этой команде:
запускается программа dd;
которая в выходной файл casper-rw (of=casper-rw);
записывает нули (if=/dev/zero);
в количестве 512 блоков (count=512);
каждый блок размером в 1 Мегабайт (bs=1M).

Создаём внутри файла casper-rw файловую систему ext3:

Обратите внимание! Мы не изменяем существующий пункт, а добавляем новый (хотя он отличается от существующего только названием и наличием нового параметра persistent). Старый пункт у нас оказывается на втором месте (чтобы не запутаться, меняем комментарий пункта с #0 на #1, напомню, нумерация пунктов в меню grub2 начинается с нуля).
У нас появился выбор режима загрузки Lubuntu: мы можем загрузится в режиме persistent mode (с сохранением изменений) или загрузится с «чистого» iso-образа (без сохранения изменений).

Проверим работает ли режим persistent mode. Загружаемся в этом режиме. Создаём на рабочем столе файл file1.txt и записываем в него произвольный текст, сохраняем изменения. Перезагружаемся, опять выбрав режим persistent mode. Файл file1.txt должен быть на рабочем столе.
Если же при загрузке мы выберем второй пункт, то никакого файла file1.txt на рабочем столе не должно быть.
Надеюсь, я не слишком вас запутал. Вот, как выглядит файл grub.cfg на данный момент:

Вот, как выглядит меню загрузки:

Установим на флешку ещё одну замечательную программу — Super Grub2 Disk. С помощью этой небольшой (1,4МБ) утилиты можно найти и загрузить любые ОС, установленные на компьютере (в том числе и Windows). А также загрузить iso-образы, находящиеся на жёстком диске.
Посмотреть описание и скачать можно здесь:

Файл гибридного образа имеет довольно длинное название super_grub_disk_hybrid-1.98s1.iso. Измением его на sgdh.iso и поместим в каталог /boot/img/ на нашей флешке.
Для загрузки Super Grub2 Disk нам понадобится ещё крошечный файл memdisk, ктороый входит в пакет syslinux. Причём архив syslinux занимает 7,5МБ, тогда как файл memdisk всего 25КБ. Но так как syslinux может пригодится в дальнейшем, то лучше его скачать. Отсюда:

Создадим на флешке каталог /boot/syslinux/ и поместим туда файл memdisk.
В файл grub.cfg добавим следующие строчки:

Вот, такая картинка получилась:

Обратите внимание!
Для lubuntu-14.04 (а также ubuntu-14.04, kubuntu-14.04 и т. д.) везде в меню (файл grub.cfg) вместо «vmlinuz» надо писать «vmlinuz.efi» (без кавычек, естественно).
То же самое для семейства ubuntu-13.04 и ubuntu-13.10.

PS
В lubuntu-14.04.1 (lubuntu-14.04.2) разработчики вернулись к прежнему имени ядра vmlinuz!

Использованные источники:

Источник

Оцените статью