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

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

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

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

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

Шаг 1. Загрузка

Программы ещё нет в официальных репозиториях, поэтому единственный способ её получить - скачать архив с исполняемыми файлами из репозитория GitHub. Затем распакуйте полученный архив:

tar xvzf ventoy-1.0.17-linux.tar.gz

Шаг 2. Установка

В архиве есть утилита Ventoy2Disk.sh, именно с помощью неё можно установить программу на флешку. Для этого перейдите в папку с исполняемым файлом и выполните:

./Ventoy2Disk.sh -i /dev/sdX

Утилита два раза попросит подтверждение установки, так как это сотрёт все данные с флешки. Здесь /dev/sdX - это путь к устройству вашей флешки в файловой системе Linux. Узнать его можно с помощью утилиты fdisk:

fdisk -l

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

Шаг 3. Добавление образов

Все образы достаточно скопировать на первый раздел. По умолчанию он отформатирован в FAT32, но вы можете переформатировать его в NTFS или другую файловую систему. Программа при загрузке с флешки рекурсивно проверяет все подпапки и ищет там образы, а затем добавляет их в меню.

Шаг 4. Проверка

Осталось перезагрузить компьютер или использовать эмулятор Qemu, чтобы посмотреть как работает полученная флешка:

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

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

Шаг 1. Установка Multisystem

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

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

sudo apt-get update
sudo apt-get install multisystem

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

sudo ./install-depot-multisystem.sh

Шаг 2. Запуск

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

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

Шаг 3. Выбор носителя

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

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

Шаг 4. Добавление образов

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

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

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

Вы можете добавить несколько дистрибутивов, какие захотите, например, в этом примере добавлены Slax и TinyCore. После добавления образов вы увидите их в меню программы:

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

 

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

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

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

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

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

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

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

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

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

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

Шаг 1. Форматирование флешки

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

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

usb

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

usb1

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

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

usb2

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

usb3

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

Шаг 2. Установка загрузчика

Переходим к установке загрузчика. Сначала смонтируем флешку в папку /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

Шаг 3. Настройка меню

Осталось создать конфигурационный файл загрузчика. Создайте файл /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.

Шаг 4. Проверка результата

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

sudo umount /dev/sdX1

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

qemu-system-x86_64 -hda /dev/sdX

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

usb4

Использование AutoISO

Можно не делать меню самому, а воспользоваться скриптом 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 (24 оценок, среднее: 4,79 из 5)
Загрузка...

50 комментариев

  1. Аватар jzyken 9 мая, 2016 Ответить
    • Аватар jzyken 9 мая, 2016 Ответить
      • Аватар vizl 17 мая, 2016 Ответить
        • Аватар jzyken 17 мая, 2016 Ответить
          • Аватар vizl 18 мая, 2016
    • Аватар Игорь 20 августа, 2020 Ответить
  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 Ответить
  31. Аватар Александр 10 апреля, 2020 Ответить
  32. Аватар lev 2 июля, 2020 Ответить
  33. Аватар Фонтан 28 июля, 2020 Ответить
  34. Аватар Прохожий 12 августа, 2020 Ответить
  35. Аватар help 19 августа, 2020 Ответить

Ответить

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

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