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

В последние годы очень большую популярность набрали флешки в качестве устройства для установки операционных систем. Но было бы очень неплохо иметь не одну операционную систему на флешке, а несколько. Скажем несколько разных дистрибутивов Linux, или даже флешку с Windows и Linux. Это возможно.

В сегодняшней статье мы рассмотрим как создается мультизагрузочная флешка с несколькими ОС Linux или Windows. Мы рассмотрим как специальное программное обеспечение, так и ручную разметку и создание разделов для мультизагрузочной флешки. Автоматическое создание мультизагрузочной флешки linux быстрее и проще, но ручное намного гибче и вы можете записать на одну флешку, например, Windows и Linux.

Multisystem

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

Установка Multisystem

Установить в Ubuntu можно с помощью PPA. Для этого просто используйте следующие команды:

sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main'
$ wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install multisystem

Если у вас другой дистрибутив, или вы не хотите использовать PPA, можете скачать программу, распаковать ее в любое подходящее место и запускать командой:

sudo ./install-depot-multisystem.sh

Создание мультизагрузочной флешки в Multisystem

После завершения установки, можно начинать создание мультизагрузочной флешки linux. Подключите вашу USB флешку, и запустите MultiSystem из главного меню системы или через терминал:

Menu_0012

При первом запуске программа будет выглядеть примерно вот так:

MultiSystem_002

Выберите нужный USB диск и нажмите кнопку Confirm. Может появиться такое сообщение об ошибке:

Error_003

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

После этого подтвердите установку на нее загрузчика Grub2:

Error_003

Теперь мультизагрузочная флешка linux будет настроена. В этом окне нужно выбрать диски, которые стоит записать на флешку:

MultiSystem_005

Это делается очень просто. Просто перетащите нужный ISO образ в окно программы. Если это не сработает вы можете кликнуть на иконке CD и выбрать нужные образы в файловой системе:

MultiSystem_006

Потом MultiSystem извлечет файлы из этих образов на флешку и сделает ее загрузочной.

MultiSystem_007

Вы можете добавить несколько дистрибутивов, какие захотите, например, в этом примере добавлены CentOS и Android.

После добавления образов вы увидите их в меню программы:

MultiSystem_008

 

Вот и все. Теперь мультизагрузочная флешка с несколькими ОС Linux готова к использованию. Перезапустите ваш компьютер, и установите вашу флешку как первое загрузочное устройство в Bios. Дальше останется только выбрать дистрибутив, который вы хотите запустить.

QEMU_009

Также Multisystem имеет ряд дополнительных функций:

  • Настройки Grub
  • Обновление загрузчиков Grub и Brug
  • Загрузка Live CD из сети
  • Установка VirtualBox
  • Форматирование USB флешки
  • И многие другие

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

MultiSystem_010

Также вы можете проверить как будет выглядеть загрузочное меню с помощью qemu или VirtualBox:

MultiSystem_011

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

Создание мультизагрузочной флешки вручную

На самом деле мультизагрузочная флешка с несколькими ОС Linux может быть создана и без помощи специализированных программ. Для этого достаточно несколько программ, возможно, уже установленных в вашей системе, или доступных из официальных репозиториев.

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

  • Gparted - отличный редактор разделов с графическим интерфейсом. Можно использовать любой другой, лишь бы вы знали как им пользоваться
  • Установленный загрузчик Grub2.
  • Эмулятор qemu для проверки работоспособности флешки

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

Отделять отдельный раздел для каждого дистрибутива не флешке совсем необязательно. Если нужно только записать сами файлы образов, без их модификации, можно просто скинуть их в папку на флешке, а затем попросить Grub загружаться с нужного ISO образа.

Начнем с того что отформатируем флешку и сделаем ее загрузочной. Форматировать флешку желательно в fat32. Можно использовать и другую файловую систему, кроме NTFS.

Откройте Gparted через главное меню или терминал. Возможно, флешка уже смонтирована в системе и чтобы создать мультизагрузочную флешку linux, ее придется отмонтировать:

usb

Удалите все существующие разделы и создайте один с файловой системой vfat:

usb1

Можно создать два раздела, один для файлов, а другой - скрытый для операционных систем. Только тот что для файлов делайте первым.

Теперь в контекстном меню для раздела, на который будут записаны образы выберите пункт Manage flags и установите галочку напротив пункта Bootable:

usb2

Теперь осталось нажать кнопку Применить:

usb3

Операция записи изменений на диск может занять кое-какое время.

Переходим к установке загрузчика. Сначала смонтируем флешку в папку /mnt/USB, здесь /dev/sdx - ваша флешка:

mkdir /mnt/USB

$ mount /dev/sdx1 /mnt/USB

mkdir /mnt/USB/iso/

Скопируйте необходимые файлы ISO в папку /mnt/USB/iso. Теперь установим загрузчик Grub2, следующей командой:

grub-install --root-directory=/mnt/USB/ /dev/sdx

Теперь осталось создать конфигурационный файл загрузчика. Создайте файл /mnt/USB/boot/grub2/grub.cfg приведенной ниже командой и в нем добавьте нужные пункты для каждого iso образа:

vi /mnt/USB/boot/grub2/grub.cfg

Пункт должен выглядеть вот таким образом:

menuentry "Ubuntu" {
loopback loop /iso/ubuntu-15.04-desktop-i386.iso
root=(loop)
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso /ubuntu-15.04-desktop-i386.iso noeject noprompt splash root=(loop)
initrd (loop)/casper/initrd.lz
}

Рассмотрим что значат все эти строки. Первая строка menuentry, со словом в лапках, это ни что иное, как объявление пункта и его название. Во второй строке создаем переменную loop с адресом нашего iso образа. Следующая строка задает корневую файловую систему, в нашем случае этот образ. Две последние строчки нужно взять из файла /boot/grub/grub.cfg из того образа , который нужно загрузить. Последняя будет, как правило, без изменений только нужно добавить перед адресом файла inird, адрес образа (loop), а в предпоследней мы добавляем параметр iso-scan/filename опять же с адресом нашего образа и параметр ядра root=(loop).

В примере рассмотрен код для Ubuntu. Создайте такие пункты для каждого образа. Например, еще сделаем пункт для memtest:

menuentry "Test memory" {
linux16 /iso/mt86plus
}

Исполняемый файл mt86plus нужно скачать и скинуть в папку iso.

Сделаем еще пункт для запуска с жесткого диска, если флешка оказалась в разъеме случайно:

menuentry "Load Hard Disk" {
set root="(hd1)"
chainloader +1
}

hd1 это наш первый жесткий диск, после флешки hd0, а команда chainloader передает управление загрузчику с этого жесткого диска.

Для Windows пункт меню будет выглядеть немного по-другому, вот так:

menuentry "Windows 10" {

insmod ntfs
insmod ntldr
loopback loop /iso/windows.iso
root=(loop)
ntldr (loop)/bootmgr

}

Здесь все то же самое, только вместо ядра Linux загружаем загрузчик Windows, командой ntldr.

Когда завершите настройку файла, сохраните его и можно перевеять все ли получилось. Сначала отмонтируйте флешку:

sudo umount /dev/sdx1

Затем используйте qemu для загрузки системы:

qemu-system-x86_64 -hda /dev/sdx

Вот так это выглядит:

usb4

 

Можно не делать меню самому, а воспользоваться скриптом autoiso. Перейдите в папку /mnt/USB, затем выполните такие команды:

$ mkdir /mnt/boot/grub2/scripts

$ cd /mnt/boot/grub2/srcipts/

$ wget https://raw.githubusercontent.com/coreos/grub/master/docs/autoiso.cfg

Создайте grub.cfg со следующим содержимым:

vi /mnt/USB/boot/grub2/grub.cfg

configfile /boot/grub2/scripts/autoiso.cfg

Скрипт обнаружит все доступные на диске iso файлы и сформирует с них меню:

autoiso

Вы можете не использовать iso образы, а выделять для каждого дистрибутива отдельный раздел. Тогда просто распакуйте файлы из iso образа на этот раздел. Смонтируйте образ в любую папку, и просто скопируйте файлы с помощью cp:

sudo mount ~/ubuntu.iso /mnt/ISO

$ sudo cp -rp /mnt/ISO /mnt/USB1/

Дальше пункт меню будет выглядеть немного по-другому. Вам просто необходимо указать на каком диске находится нужный дистрибутив и его ядро. В Grub диски именуются по-другому чем в Linux. Каждый диск называется hd и имеет номер начиная с нуля, разделы именуются начиная с единицы. Например, раздел /dev/sda1 будет иметь адрес (hd0,1). Как правило, первым считается тот диск, с которого выполнена загрузка.

Таким образом, конфигурация пункта меню будет выглядеть вот так:

menuentry "Ubuntu" {
root=(hd0,1)
linux /casper/vmlinuz boot=casper noeject noprompt splash
initrd /casper/initrd.lz
}

Теперь все работает, но выглядит наше меню не так красиво как в той же программе Multisystem. Наша мультизагрузочная флешка linux должна быть красивее. Добавьте следующие строки в начало конфигурационного файла grub.cfg:

Тайм-аут по умолчанию 5 секунд:

set timeout=5

Расширение экрана:

set gfxmode="1280x800"
set gfxpayload=keep

Активация режима видео:

insmod vbe
insmod gfxterm
terminal_output gfxterm

Установим шрифт Unicode:

font "/boot/grub2/fonts/unicode.pf2"
loadfont unicode

Фоновый рисунок:

insmod jpeg
background_image "/boot/fon.jpg"

И цвета текста и меню:

set menu_color_normal=red/black
set menu_color_highlight=yellow/black
set color_normal=yellow/black

Вот что получилось:

grub2

Выводы

В этой статье вы узнали как создать мультизагрузочную флешку Linux с несколькими ОС. Как видите, это очень просто. Если у вас остались вопросы, задавайте их в комментариях!

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

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (14 оценок, среднее: 4,93 из 5)
Загрузка...

32 комментария

  1. jzyken Май 9, 2016 Ответить
    • jzyken Май 9, 2016 Ответить
      • vizl Май 17, 2016 Ответить
        • jzyken Май 17, 2016 Ответить
          • vizl Май 18, 2016
  2. Сергей Июнь 2, 2016 Ответить
    • admin Июнь 5, 2016 Ответить
      • Пётр Август 1, 2016 Ответить
        • admin Август 1, 2016 Ответить
  3. eugene Сентябрь 13, 2016 Ответить
  4. Колян Сентябрь 24, 2016 Ответить
  5. Колян Сентябрь 24, 2016 Ответить
  6. Колян Сентябрь 24, 2016 Ответить
    • Uogyr Ноябрь 12, 2017 Ответить
    • Алексей Май 15, 2018 Ответить
  7. Dexa Newcomer Ноябрь 1, 2016 Ответить
  8. Dexa Newcomer Ноябрь 1, 2016 Ответить
  9. Олег Январь 14, 2017 Ответить
  10. eugene Февраль 9, 2017 Ответить
  11. ihor Февраль 12, 2017 Ответить
  12. veress Июнь 22, 2017 Ответить
  13. KolaniMir Июль 25, 2017 Ответить
  14. Анатолий Сентябрь 8, 2017 Ответить
  15. Заметил Ноябрь 14, 2017 Ответить
  16. Глеб Декабрь 4, 2017 Ответить
  17. Cahes Декабрь 22, 2017 Ответить
  18. Cahes Декабрь 27, 2017 Ответить
  19. Алексей Февраль 6, 2018 Ответить
  20. Vadim Апрель 30, 2018 Ответить
  21. Виктор Июль 7, 2018 Ответить
  22. Дядя Миша Август 8, 2018 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: