Как установить ventoy в linux
Ventoy — мультизагрузка образов OS с преферансом и куртизанками
Существует несколько программ с графическим интерфейсом, предназначенных для создания Live USB-дисков.
Так начиналась переводная статья, комментарии к которой стали вторым толчком (а был ещё и первый) для написания обзора возможностей, системы для создания мультизагрузочных флешек ventoy.
Проект начатый китайским разработчиком longpanda примерно полтора года назад, в марте 2020-го, успел набрать популярность и уже включён в состав репозиториев некоторых дистрибутивов linux. И неспроста.
Что умеет? Базовые возможности.
И это, разумеется, ещё не всё. Это вот то, что вспомнилось сходу. Дальше при рассмотрении плагинов, мы увидим другие вкусности, а некоторые из перечисленных рассмотрим подробнее, так как часть из вышеперечисленного конфигурируется через плагины.
Получение и установка
Скачать бинарники ventoy можно с GitHub. Кроме бинарников под Windows и Linux, есть также вариант с LiveCD, на основе Linux и GUI установщиком.
Далее есть три варианта:
Пробежимся по всем трём:
ВНИМАНИЕ! Первоначальная установка на устройство (флешку/HDD) удаляет все данные на нём!
Cамый простой метод:
поставит ventoy на устройство /dev/sdX с разбивкой MBR. При этом создадутся два раздела. Раздел FAT на 32mb с самим ventoy, в конце диска. И раздел для данных в начале диска, отформатированный под exFAT и занимающий всё оставшееся место. Данный метод позволит грузиться на практически всех системах с BIOS и UEFI без SecureBoot. Раздел для данных можно переформатировать в ext2-4 и XFS, при этом увеличится скорость работы, но нельзя будет закидывать данные из Windows (по крайней мере без дополнительных костылей). При желании раздел можно отформатировать в FAT/FAT32, NTFS, UDF.
Данный метод не подходит для систем с BIOS, если суммарный размер разделов вылезает за границу в 137gb. То есть Для флешек объёмом 256gb и выше, придётся использовать встроенную фичу…
Разбивка с reserved space
▍ Web GUI
Исторически первый гуёвый интерфейс под linux. Отличающийся от своих нативных GUI Linux/Windows собратьев ровно ничем.
WebGUI
По умолчанию веб-интерфейс поднимается на http://127.0.0.1:24680 о чём ventoy радостно сообщает нам в консоли:
▍ GTK / Qt GUI
Ну тут совсем всё просто. Правда бинарник собран под кучу архитектур и поэтому имя выглядит как VentoyGUI._arch_ По умолчанию запускается GTK интерфейс:
Ventoy Qt5 GUI
После установки ISO файлы просто копируются, as is, на флешку в любые каталоги или корень раздела и при загрузке ventoy их найдёт и отобразит в загрузочном меню. Кроме загрузочных ISO или floppy / HDD образов вы спокойно можете хранить обычные данные. Одна беда, если на флешке будет много файлов и развитая система каталогов, производительность построения меню будет низкой, но для этого у ventoy есть отличное решение — плагины, к описанию которых мы и переходим.
Плагины, основная фишка Ventoy
Архитектурно, ventoy представляет из себя GRUB2 с очень развитой надстройкой, одной из главных частей которой является система плагинов. Конфигурируется эта система через конфиг файл формата json. живущем по пути ventoy/ventoy.json на разделе с данными (на первый раздел, где живёт сам ventoy, лазать обычному пользователю, а следственно и монтировать его, смысла нет). Json простого формата вида
Дальнейшая часть является вольным переводом официального справочника по плагинам. Первоначально я хотел кратенько обозреть основные, самые полезные, плагины, но… Увлёкся и в результате получился вот такой вот TL;DR и самый полный справочник по Ventoy на русском.
И начнём мы с основного плагина Control.
▍ Global control plugin
Здесь живут основные параметры ventoy, включая и тот который отвечает за расположение каталогов с *.iso файлами и прочими файлами образов: < "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" >. Чтобы ventoy не приходилось шерстить весь диск для того, чтобы их найти и добавить в меню. Возможные параметры я свёл в табличку, как и у остальных плагинов, описываемых далее.
Примечания к таблице:
▍ Image list / Image Blacklist plugin.
▍ Theme plugin
Поддержка тем формата GRUB2. Возможные параметры сведены в таблицу
При создании своей темы или использовании темы, скачанной из интернета, придётся добавить в файл темы ventoy-зависимую часть. Пример из темы по умолчанию:
▍ Menu class plugin
Наверняка многие из вас видели, как различные системы мультизагрузки отображают разные иконки для разных образов или разделов, так вот это оно. Этот плагин в виде массива элементов осуществляет поддержку именно этого функционала, а ещё отображение иконок для встроенного в ventoy функционала, как то горячие Fn клавиши и пункты их меню.
Class icons
Ключ | Тип | Описание |
---|---|---|
key | string | Подстрока по которой ищется имя файла образа(без путей!) |
parent | string | Директория (без завершающего слеша( / )!) описанная в этом параметре и все её подкаталоги будет иметь именно этот класс |
dir | string | Директория без подкаталогов будет иметь соответствующий класс. Завершающий слеш также запрещён! |
class | string | Собственно класс. Чтобы произошло отображение иконки класса, в каталоге темы должен быть подкаталог icons с соответствующей иконкой. Например, для «class»: «debian» должна существовать иконка icons/debian.png |
Стоит отметить, что существуют встроенные классы для «иконизации» функционала ventoy (функциональные клавиши и их пункты меню). Я не буду приводить всю таблицу, отмечу лишь названия классов связанные с типами файлов: vtoydir — класс для директорий. Классы для файлов соответствующих типов: vtoyiso vtoywim vtoyimg vtoyefi vtoyvhd vtoyvtoy и vtoyret — класс для возврата в предыдущее меню. Эти классы не нужно указывать в конфиге, достаточно разместить в директории theme/icons соответствующие иконки ( vtoyiso.png например).
▍ Menu alias plugin
Ключ | Тип | Описание |
---|---|---|
image | string | Полный путь к образу |
dir | string | Полный путь к директории, без завершающего слеша |
alias | string | Алиас |
▍ Menu tip plugin
Подсказка, показываемая на экране, при наведении на определённый пункт:
Menu tip plugin в действии
Табличка возможных параметров тут тоже очень простая.
▍ Menu extension plugin
Один из немногих плагинов, чья конфигурация не задаётся в ventoy/ventoy.json Этот плагин сильно завязан на GRUB и в нём можно использовать любые команды GRUB shell. Конфигурируется в файле ventoy/ventoy_grub.cfg и позволяет создавать собственное кастомное меню вызываемое по нажатию клавиши F6. Именно таким образом был сделан заглавный скриншот статьи.
Есть несколько встроенных переменных, которые можно использовать в этом меню:
Переменная | Пример |
---|---|
vtoydev | hd1 |
vtoy_iso_part | (hd1,1) |
vtoy_efi_part | (hd1,2) |
VENTOY_VERSION | 1.0.55 |
▍ Password plugin
На мой взгляд, самый бесполезный плагин, защищающий разве что от шаловливых детских рук. :-). Позволяет задавать пароли как на загрузку самого ventoy, так и на выбор определённых типов файлов, директорий или отдельных образов.
Ключ | Тип | Описание |
---|---|---|
bootpwd | string | Пароль на загрузку ventoy. Выход после трёх неправильных попыток |
isopwd | string | Пароль на загрузку файлов *.iso |
wimpwd | string | файлов *.wim |
imgpwd | string | файлов *.img |
vhdpwd | string | файлов *.vhd |
efipwd | string | файлов *.efi |
vtoypwd | string | файлов *.vtoy |
menupwd | array | Массив объектов с парами строк file / parent и pwd |
file | string | Полный путь к образу |
parent | string | Путь к определённой директории(без концевого слеша) |
pwd | string | Пароль |
Приоритеты паролей от частного к общему: menupwd file → menupwd parent → isopwd/wimpwd/imgpwd…
▍ Auto memdisk plugin
Простой, но очень полезный плагин, который позволяет автоматически грузить определённые имиджи полностью в память. Та же KolibriOS или Hiren’s boot CD не желают грузиться стандартным способом, но при этом прекрасно грузятся через мемдиск. Так вот что бы не нажимать каждый раз F1 (а ведь можно и забыть) и создан этот плагин. Имейте в виду, загрузка всего исошника в память может занять длительное время. Чем больше имидж, тем дольше. Как пользоваться, понятно из примера.
ВНИМАНИЕ! Поддерживаются только ISO образы!
▍ WIMboot plugin
Один из плагинов «специального назначения», призванный лечить возможные косяки с загрузкой современных виндовс. Данный плагин не входит в комплект поставки из-за наличия проприетарных компонентов, поэтому делаем следующие шаги:
WIMboot mode
Кстати, виндоадмины, расскажите для чего оно и как работает? Сто лет с виндами не общался!
▍ Windows VHD boot plugin
Ещё один плагин с проприетарными компонентами, для windows. Понятия не имею для чего и как, но если звёзды зажигают…
В комменты призываются админы виндовс, дабы просветить для чего и зачем. В описании к плагину я нашёл только одно применение, через Menu extension plugin:
Но если честно не в курсе куда такое применяют.
▍ DUD (Driver Update Disk) plugin
Фича, поддерживаемая дистрибутивами RHEL / Centos / Fedora (dd.iso формат) и SLES — SUSE Linux (dud.iso формат) и позволяющая подкидывать необходимые драйвера непосредственно в процессе установки.
Конфигурирование простое и ясно из примера. image — образ к которому применятся dd/dud образы. dud — строка или массив с путями до dd/dud образов.
▍ Auto installation plugin
Windows и энное количество дистрибутивов Linux поддерживают т.н. Unattended installation — фичу позволяющую по специально сформированному файлу ответов, по сути дела декларативному скрипту, установить систему в фоновом режиме с определёнными настройками, не задавая вопросов пользователю. Для примера известные дистрибутивы ОС и их скрипты.
Дистрибутив | Тип шаблона | Пример |
---|---|---|
Windows | Unattended XML | unattended.xml |
RHEL8/CentOS8/Derivatives | Kickstart script | kickstart8.cfg |
RHEL7/CentOS7/Fedora/Derivatives | Kickstart script | kickstart7.cfg |
RHEL6/CentOS6/Derivatives | Kickstart script | kickstart6.cfg |
Debian/Ubuntu Server/Derivatives | Preseed script | preseed.cfg |
SLES/OpenSUSE/Derivatives | autoYast XML | autoYast.xml |
Ну и традиционная таблица параметров:
▍ Boot conf replace plugin
Плагин позволяющий «на лету» подменять grub.cfg / isolinux.cfg внутри исошника. В принципе можно подменять любые файлы. Разумеется сам исошник не меняется. Все изменения происходят в памяти, в момент загрузки. Это аналогично нажатию e в меню GRUB и ручному редактированию параметров.
Табличка очень простая.
Ключ | Тип | Описание |
---|---|---|
iso | string | Имидж, на который будем накладывать «патч» (поддерживаются только ISO формата ISO9660. UDF имиджи Windows не работают!) |
org | string | Путь и имя файла в файловой системе внутри имиджа |
new | string | файл которым заменяем |
▍ Injection plugin
▍ Persistence plugin
Ключ | Тип | Описание |
---|---|---|
image | string | Полный путь до iso-шника |
backend | string/array | Путь или массив путей к имиджам персистентности |
autosel | integer | 0 отключить персистентность 1..n cоответствующий элемент массива. Если включен этот параметр, меню выбора не показывается |
Очень многие LiveCD (яркий пример Kali Linux) позволяют сохранять состояние между сеансами. Они записывают состояние на раздел с определённой меткой диска. Вот некоторые из них:
Для получения раздела необходимо создать образ диска, с правильной меткой. Есть два варианта: Скачать готовый образ. Или создать самому. Для этого в комплекте поставки есть удобный скрипт:
▍ vDisk boot plugin
UEFI On!
После установки и настройки ОС в виртуалке, скачайте в виртуалку последнюю версию vtoyboot скрипта из репозитория, распакуйте и запустите:
ВНИМАНИЕ! Данный скрипт также нужно запускать при каждом обновлении ядра и/или обновления initrd образа на гостевой системе!
Затем, после отключения виртуальной машины, переименуйте файл в *.vtoy Например: mv Manjaro.vhd Manjaro.vhd.vtoy и скопируйте на флешку.
Кроме всего прочего, данный плагин можно заставить запускать такие образы с вашего локального HDD/SSD, для чего можно воспользоваться Menu Extension Plugin :
Дисклеймер от меня… Сильно подозреваю, что с шифрованными разделами, такой трюк не прокатит.
Да, такие образы можно грузить из других загрузчиков. Подробнее здесь. Ну и наконец таблица с замечаниями по установке на конкретные дистрибутивы.
Дистрибутив | ISO | BIOS | UEFI | Примечания |
---|---|---|---|---|
Centos8 | CentOS-8.3.2011-x86_64-dvd1.iso | Ok | Ok | |
Centos7 | CentOS-7-x86_64-Minimal-2009.iso | Ok | Ok | |
Deepin | deepin-desktop-community-1010-amd64.iso | Ok | Ok | См. [1] |
Fedora | Fedora-Workstation-Live-x86_64-33-1.2.iso | Ok | Ok | |
Ubuntu Desktop | ubuntu-20.04-desktop-amd64.iso | Ok | Ok | |
Ubuntu Server | ubuntu-20.04.1-live-server-amd64.iso | Ok | Ok | См. [1] |
Linux Mint | linuxmint-20.2-cinnamon-64bit.iso | Ok | Ok | |
MX Linux | MX-19.2_x64.iso | Ok | Ok | |
Kali Linux | kali-linux-2021.1-installer-amd64.iso | Ok | Ok | См. [1] |
Manjaro | manjaro-xfce-20.0.1-200511-linux56.iso | Ok | Ok | Arch based |
Archman | Archman_KDE_20200209.iso | Ok | Ok | Arch based |
Mageia | Mageia-7.1-x86_64.iso | Ok | Ok | См. [1] |
openSUSE | openSUSE-Leap-15.2-DVD-x86_64.iso | Ok | Ok |
Заключение
Вот такими, почти неограниченными возможностями, обладает, казалось бы, обычная система мультизагрузки ventoy. К сожалению есть проблемы с загрузкой любительских, исследовательских и экспериментальных ОС — Haiku, Sculpt (Genode OS Framework), Redox, Plan9 etc. Разумеется, не грузятся OS/2 и её деривативы. Для этих операционок не помогает даже memdisk. Но проект бурно развивается (я пользуюсь этой утилитой и слежу за развитием примерно с июня прошлого года и помню то время, когда не грузились системы семейства *BSD) и я думаю, что многие проблемы будут решены. Надеюсь обзор, мой вольный перевод документации по плагинам, вам понравился и вы ещё не раз заглянете сюда за справочной информацией. Ибо более полного описания функционала, на русском, я на просторах интернета не встречал.
Бонус: Соответствие бинарников скачанных с GitHub и бинарников установленных из пакета (Arch like дистрибутивы).
Как создать мультизагрузочный USB-диск с помощью Ventoy
Оригинал: How To Create Multiboot USB Drives With Ventoy In Linux
Автор: SK
Дата публикации: 21 мая 2020 г.
Перевод: В.Костромин
Дата перевода: 21 мая 2020 г.
Возможности
Ventoy обладает массой возможностей и полезных свойств, часть из которых перечислена ниже.
Создание мультизагрузочных USB-накопителей с Ventoy в Linux
Вначале вам нужно найти имя вашего USB-накопителя. Узнать, как найти информацию о дисках в Linux, вы можете в следующей статье:
Я буду использовать команду fdisk для выяснения данных о моем USB-диске:
Пример вывода:
Затем загрузите последний скрипт Ventoy со следующей страницы. Когда я писал эту статью, последняя версия имела номер 1.0.10.
Перейдите в каталог, в котором вы сохранили скрипт и разархивируйте его. Я разархивировал его в папку “ventoy” на моем рабочем столе. Перейдите в папку Ventoy:
Теперь запустите следующую команду, чтобы создать мульти-загрузочный USB-диск:
Не забудьте заменть /dev/sdc на имя вашего USB-диска.
Вам будет предложено подтвердить процесс создания загрузочного USB. Дважды проверьте имя USB-накопителя, введите Y и нажмите ENTER, чтобы продолжить:
Пример вывода:
Щелкните правой кнопкой мыши и выберите вариант «Открыть изображение» для просмотра его в увеличенном формате
Через несколько секунд мультизагрузочный USB-накопитель будет создан. Приведенная выше команда создаст два раздела. Вы можете проверить это с помощью команды fdisk:
Теперь скопируйте файлы ISO в первый раздел. Вы увидите этот первый раздел только в вашем файловом менеджере.
Другой способ скопировать все ISO-файлы заключается в том, чтобы перейти в каталог, где вы храните ISO-файлы, и запустить в командной строке команду rsync, как показано ниже:
Пожалуйста, обратите внимание на то, что в некоторых дистрибутивах USB-диск может быть смонтирован в каталог /run/media/.
ВСЁ сделано! Мы только что создали мульти-загрузочный USB-диск с помощью Ventoy.
Загрузите вашу систему с USB-диска и вы увидите загрузочное меню Ventoy:
Выберите ОС, которую вы хотите загрузить, и нажмите ENTER, чтобы загрузить ее!
Вот короткая демонстрация того, как происходит загрузка ОС с USB_диска, созданного с помощью Ventoy:
Круто, не правда ли?
Загрузка ISO-образов в RAM
Как уже упоминалось, образы ISO могут не загружаться на некоторых машинах, особенно в устаревшем режиме Legacy BIOS. Здесь в помощь приходит Memdisk. Когда режим Memdisk включен, Ventoy загрузит весь файл ISO-образа в память и загрузит его оттуда.
Чтобы задействовать режим Memdisk, нажмите клавишу F1 прежде чем выбирать загружаемую ОС. Вы увидите в правом верхнем углу уведомление, что режим Memdisk включен.
В этом случае ISO-файл будет загружен в оперативную память:
Чтобы вернуться в обычный режим, снова нажмите клавишу F1.
Ventoy. Мультизагрузочная флешка
Утилит для создания мультизагрузочных флешек много, а для чего такие флешки или диски на хабре я думаю, объяснять не требуется. До последнего момента я пользовался WinSetupFromUsb и Rufus пока не узнал про Ventoy. В коментах указали про такие тулзы как YUMI, E2B etc. Не знал про них, спасибо за наводку.
Итак, скачать можно утилиту в виде zip архива с github страницы проекта (Windows/ Linux). Распаковываем и запускаем.
Интерфейс утилиты
Как этим пользоваться?
Вставляем наш флеш диск в ПК
В опциях выбираем стиль разметки диска MBR/GPT
Включаем SecureBoot если нужно
Нажимаем Установить, Ventoy установлен, он больше не нужен.
Если необходимо установить утилиту на иной накопитель (SD, NVMe, HDD, SSD, CD/DVD) в опциях выбираем «показать другие устройства».
Основной раздел под образы можно ещё подразбить на дополнительный. Зачем? Дело в том, что после загрузки в режиме live usb, раздел с образами становится недоступен. На дополнительный раздел можно сохранить необходимые файлы для работы с live usb.
Про плагины
Как любезно указал в коментах @Oxyd,в статье не хватает слов про плагины. Извольте. Итак, плагины и файл конфигурации ventoy.json хранятся в основном каталоге с образами. Для этого создадим папку / ventoy и поместим туда ventoy.json.
Подробнее про плагины можно узнать здесь. Лично мне они не нужны, так как хватает возможностей из коробки.
Подытожим:
Плюсы:
Открытый исходный код GPLv3
Скорость установки ограничена скоростью накопителя
Установка из ISO / WIM / IMG / VHD (x) / EFI без распаковки
Поддержка разметки MBR/GPT
Поддержка x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI, MIPS64EL UEFI
Основной раздел можно форматировать в FAT32 / exFAT / NTFS / UDF / XFS / Ext2, 3,4
Поддержка более 730 файлов дистрибутивов и постоянно добавляются новые
Накопитель после установки Ventoy можно использовать как обычно (я вставил флешку в смартфон)
Обновлять Ventoy необязательно (если используете определенный набор дистрибутивов) но в новых версиях улучшается совместимость.
Обширная и исчерпывающая справка по программе.
Минусы:
Не все железо поддерживает
Не все образы корректно работают, так что это отнюдь не «серебряная пуля»
Ventoy – бесплатная программа для создания мультзагрузочных USB-носителей
Ventoy – бесплатная программа с открытым исходным кодом, которая позволяет создавать мультизагрузочные USB-носители без необходимости форматирования носителя для записи очередного образа. Так же программа поддерживает образы и файлы следующих типов ISO, WIM, IMG, VHD(x), EFI.
Как пользоваться бесплатной программой Ventoy
Принцип работы программы Ventoy достаточно простой – создание загрузочного меню на съемном носителе, в который, в дальнейшем мы копируем нужные нам образы.
Благодаря утилите Ventoy вам не нужно форматировать диск снова и снова, вам всего лишь нужно воспользоваться утилитой, скопировать файлы ISO образов на USB-накопитель и затем загрузиться с носителя. Вы можете копировать несколько файлов образов за раз, а Ventoy предоставит вам загрузочное меню с выбором образов для последующей загрузки.
Как создать загрузочной USB-носитель в Windows с помощью Ventoy
Скачиваем Ventoy, разархивируем архив и запускаем файл Ventoy2Disk.exe.
Для создания мультизагрузочной флешки в разделе «Устройство» выбираем наш USB-носитель и нажимаем на кнопку «Установить».
Соглашаемся на форматирование накопителя.
Об окончании форматирования нас уведомит соответствующее окошко.
Программа Ventoy создала два раздела, один с файловой системой ExFAT, а другой с файловой системой FAT. В Проводнике будет отображаться первый раздел ExFAT и он будет большего размера. Именно в данный раздел нужно перемещать образы.
Теперь при загрузки с данной мультизагрузочной флешки будет отображаться меню GRUB 2 с выбором загрузки перемещенных образов.
Важно. Стоит отметить, что названия образов не должны содержать пробелов и кириллицы.
Вы можете удалять образы, переименовывать их, перемещать другие образы в папку Ventoy без необходимости повторного запуска программы Ventoy. В случае, если после добавления новых образов, изменения не будут отображаться в меню GRUB загрузочной флешки, то стоит запустить программу Ventoy и выбрать опцию «Обновить».
Как создать загрузочной USB-носитель в GNU/Linux с помощью Ventoy
Начиная с версии Ventoy 1.0.36 для Linux в программе появился графический веб-интерфейс. Рассмотрим работу Ventoy с запуском графического веб-интерфейса.
С версии Ventoy 1.0.37 для дистрибутива Deepin появился свой скрип с графическим интерфейсом. Для запуска Ventoy в Deepin воспользуйтесь следующей командой: sudo sh VentoyWebDeepin.sh
Скачиваем Ventoy для Linux, разархивируем архив и переходим в папку ventoy. В папке нас интересует файл VentoyWeb.sh, его мы запустим. Открываем терминал в папке с программой и вводим команду запуска:
В адресной строке браузера открываем ссылку локального веб-сервера Ventoy:
Как видно на скриншоте отображается привычный интерфейс, подобный интерфейсу в Windows.
Дальнейшие действия аналогичны инструкции версии Ventoy для Windows.
Нажимаем на кнопку «Установить» и дважды соглашаемся с форматированием USB устройства.
По окончании установки образы можно переместить в раздел Ventoy съемного носителя.
Для закрытия Ventoy в Linux нужно закрыть вкладку браузера с ссылкой Ventoy, а затем в терминале воспользоваться комбинацией клавиш CTRL+C для завершения процесса Ventoy.
А вы какими программами пользуетесь для создания мультизагрузочных носителей?