Мультизагрузочная флешка с несколькими ОС 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 (16 оценок, среднее: 4,94 из 5)
Загрузка...

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

  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 Ответить
    • Аватар admin 14 января, 2017 Ответить
      • Аватар Artur 19 августа, 2019 Ответить
  10. Аватар eugene 9 февраля, 2017 Ответить
  11. Аватар ihor 12 февраля, 2017 Ответить
    • Аватар Михаил 23 сентября, 2019 Ответить
  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 Ответить
  23. Аватар john1148 7 ноября, 2018 Ответить
  24. Аватар Джонни 18 ноября, 2018 Ответить
  25. Аватар Basil 13 декабря, 2018 Ответить
  26. Аватар Борис 24 января, 2019 Ответить
    • Аватар Kosmitriy 25 января, 2019 Ответить
  27. Аватар Kosmitriy 25 января, 2019 Ответить
    • Аватар Северга 9 марта, 2019 Ответить
  28. Аватар ua9oas 13 июля, 2019 Ответить
  29. Аватар basil 16 января, 2020 Ответить
  30. Аватар андрей 16 марта, 2020 Ответить

Ответить

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

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