Ventoy — мультизагрузка образов OS с преферансом и куртизанками

Существует несколько программ с графическим интерфейсом, предназначенных для создания Live USB-дисков.
Так начиналась переводная статья, комментарии к которой стали вторым толчком (а был ещё и первый) для написания обзора возможностей, системы для создания мультизагрузочных флешек ventoy.
Проект начатый китайским разработчиком longpanda примерно полтора года назад, в марте 2020-го, успел набрать популярность и уже включён в состав репозиториев некоторых дистрибутивов linux. И неспроста.
Что умеет? Базовые возможности.
- Устанавливаться на флешку / sd card / обычный диск.
- Разбивать флешку(целевой носитель) под MBR или GPT.
- Обновляться без потери данных на носителе.
- Имеет поддержку Secure Boot™.
- Имеет установщики под linux (CLI / Web / Qt & GTK GUI) и Windows (GUI).
- Умеет грузить загрузочные ISO Windows, Windows PE, Linux, *BSD, Android X86 etc. Список протестированных ISO-шников насчитывает 742 позиции, на данный момент.
- Кроме x86_64 и x86, умеет в следующие архитектуры: IA32 UEFI, ARM64 UEFI, MIPS64 UEFI (Что интересно, протестировано на всяких китайских железках, типа Loongson).
- Поддерживает загрузку x86 OpenWRT.
- Умеет загружать floppy images, а также имиджи формата VHD, VDI и RAW.
- Имеет поддержку Persistence для LiveCD Fedora, Ubuntu, Arch, Mint etc.
- Также умеет в файлы для unattended installation различных дистрибутивов linux и windows.
- Умеет в Memdisk Mode — режим при котором образ целиком загружается в память и запускается уже оттуда (Это позволяет, например, загрузить KolibriOS и некоторые ремонтные диски на основе DOS).
- В случае проблем с запуском Windows образов в нормальном режиме, может переключаться в WIMBOOT mode.
- GUI / Web инсталлятор локализован на большое количество языков, включая русский.
- Имеет развитую систему плагинов, в основном конфигурируемую при помощи json файла конфигурации.
И это, разумеется, ещё не всё. Это вот то, что вспомнилось сходу. Дальше при рассмотрении плагинов, мы увидим другие вкусности, а некоторые из перечисленных рассмотрим подробнее, так как часть из вышеперечисленного конфигурируется через плагины.
Получение и установка
Скачать бинарники ventoy можно с GitHub. Кроме бинарников под Windows и Linux, есть также вариант с LiveCD, на основе Linux и GUI установщиком.
Пользователи Arch-Linux могут подключить сторонние репозитории и скачать оттуда. Также есть в AUR. Пользователи Manjaro просто могут набрать sudo pacman ventoy .
Далее есть три варианта:
- CLI
- Web GUI
- GTK / Qt 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 и выше, придётся использовать встроенную фичу…
Где после ключа -r поставить размер резервируемого размера в мегабайтах. В результате разбивка примет вид как на картинке ниже:
Разбивка с reserved space
Например, для флешки объёмом 256 гигов можно зарезервировать 150Gb ( -r 153600 ) и тогда под Раздел1 + Раздел2 останется 106gb. После установки на зарезервированном месте, можно создать дополнительный раздел или несколько. Переходим к следующему варианту…
Разбивка под GPT:
Всё то же самое, что и в случаях с MBR разбивкой. Такую флешку можно грузить не только на UEFI системах, но и на большинстве систем с BIOS. По крайней мере у меня, на тестовом ноуте 2008-го года, c чистым легаси, прекрасно грузится. Разумеется, для GPT разбивки действуют ровно те же ограничения в 137gb, что и для MBR, так что ключик -r обязателен для больших флешек. Для систем с SecureBoot нужно ставить ключ -s (подробнее про работу с SecureBoot можно посмотреть тут). Правда обычным системам с BIOS/UEFI он никак не мешает. Поэтому я, на обычные «мелкие» флешки всегда ставлю командой:
Другие полезные ключи ventoy: * -I — заменяет ключ -i , если нужно установить (полная переустановка с потерей всех данных) ventoy на флешку,. на которой он уже установлен. * -l — Проверить наличие и показать версию ventoy на флешке. * -L LabelName — задать при установке метку раздела(exFAT) с данными. По умолчанию Ventoy * -u — Обновить ventoy на флешке, без потери данных:
▍ Web GUI
Исторически первый гуёвый интерфейс под linux. Отличающийся от своих нативных GUI Linux/Windows собратьев ровно ничем.
WebGUI
По умолчанию веб-интерфейс поднимается на http://127.0.0.1:24680 о чём ventoy радостно сообщает нам в консоли:
Cамо собой разумеется, ключиками ( -H ip.add.re.ss — Адрес, -p port и порт соответственно) его можно повесить на другой ip / port, но это такое cебе развлечение, ибо никакой защиты не предусмотрено.
▍ GTK / Qt GUI
Ну тут совсем всё просто. Правда бинарник собран под кучу архитектур и поэтому имя выглядит как VentoyGUI._arch_ По умолчанию запускается GTK интерфейс:
Для запуска Qt версии надо добавить ключ —qt5 . Сам интерфейс GUI и Web-версии прост как табуретка и не требует пояснений для пользователей хабра. Единственное что, не ставьте крыжик «показать все устройства», если конечно у вас нет цели поставить Ventoy на HDD / SDD (или совершить цифровое самоубийство неверным движением руки)
Ventoy Qt5 GUI
После установки ISO файлы просто копируются, as is, на флешку в любые каталоги или корень раздела и при загрузке ventoy их найдёт и отобразит в загрузочном меню. Кроме загрузочных ISO или floppy / HDD образов вы спокойно можете хранить обычные данные. Одна беда, если на флешке будет много файлов и развитая система каталогов, производительность построения меню будет низкой, но для этого у ventoy есть отличное решение — плагины, к описанию которых мы и переходим.
Плагины, основная фишка Ventoy
Архитектурно, ventoy представляет из себя GRUB2 с очень развитой надстройкой, одной из главных частей которой является система плагинов. Конфигурируется эта система через конфиг файл формата json. живущем по пути ventoy/ventoy.json на разделе с данными (на первый раздел, где живёт сам ventoy, лазать обычному пользователю, а следственно и монтировать его, смысла нет). Json простого формата вида
Ещё в ventoy есть такая интересная штука для запуска плагинов по условию запуска в определённой среде, как Multi Mode. Например, показывать разные *.iso , если мы запустились в BIOS(legacy) или в UEFI. Для этого после имени плагина пишем имя режима, через подчёркивание: «plugin_name_mode»: < . Как-то так:
Глоббинг путей поддерживается в ventoy, но он предельно примитивный и имеет только одну возможность — замену отдельного символа, также, как это делает знак вопроса в bash. Только здесь его функцию выполняет * . Например:
Под эти шаблоны подпадут, например Ubuntu-20.04-desktop-amd64.iso и Ubuntu-21.01-desktop-amd64.iso . Хотелось бы большего, но и это неплохо, особенно когда меняешь *.iso на новые версии.
Дальнейшая часть является вольным переводом официального справочника по плагинам. Первоначально я хотел кратенько обозреть основные, самые полезные, плагины, но… Увлёкся и в результате получился вот такой вот TL;DR и самый полный справочник по Ventoy на русском.
И начнём мы с основного плагина Control.
▍ Global control plugin
Здесь живут основные параметры ventoy, включая и тот который отвечает за расположение каталогов с *.iso файлами и прочими файлами образов: < "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" >. Чтобы ventoy не приходилось шерстить весь диск для того, чтобы их найти и добавить в меню. Возможные параметры я свёл в табличку, как и у остальных плагинов, описываемых далее.
| Ключ | Тип | Описание |
|---|---|---|
| VTOY_DEFAULT_MENU_MODE | string | Стиль меню: 0 — Список; 1 — Дерево |
| VTOY_TREE_VIEW_MENU_STYLE | string | Вид древообразного стиля меню: 0 — показывать каталоги и файлы с размером; 1 — не показывать |
| VTOY_FILT_DOT_UNDERSCORE_FILE | string | Фильтровать файлы с префиксом ._ (генерируются MacOS): 0 — не фильтровать; 1 — фильтровать |
| VTOY_SORT_CASE_SENSITIVE | string | Учитывать регистр при сортировке: 0 — не учитывать; 1 — учитывать |
| VTOY_DEFAULT_SEARCH_ROOT | string | Путь поиска *.iso и прочих файлов образов. При загрузке ventoy будет искать файлы только в этом каталоге и его подкаталогах. |
| VTOY_MAX_SEARCH_LEVEL | string | На сколько уровней опускаться по поддереву каталогов (от корня, если не указан предыдущий параметр или от каталога указанного в предыдущем параметре): 0 — не обходить рекурсивно; max — обходить все дерево; 1 .. n уровни дерева |
| VTOY_MENU_TIMEOUT | string | Таймаут, в секундах, после которого выполнится VTOY_DEFAULT_IMAGE |
| VTOY_DEFAULT_IMAGE | string | Пункт меню, по умолчанию. Кроме имиджей умеет в специальные пункты меню (cм [1]) |
| VTOY_VHD_NO_WARNING | string | Предупреждать если раздел на VHD образе не отформатирован под NTFS: 0 — предупреждать (по умолчанию); 1 — не предупреждать |
| VTOY_DEFAULT_KBD_LAYOUT | string | Раскладка клавиатуры (по умолчанию QWERTY_USA ) полный список раскладок см. в [2] |
| VTOY_FILE_FLT_type | string | Фильтровать в списке образов файлы определённого type [3] например VTOY_FILE_FLT_ISO : 0 — не фильтровать; 1 — фильтровать |
| VTOY_WIN11_BYPASS_CHECK | string | Пропускать проверку железа, при установке Windows 11, с оригинального образа. Работает через прописывание ключей реестра [4], «на лету»: 0 — проверять железо; 1 — пропускать проверку. |
Примечания к таблице:
- Специальные пункты меню: VTOY_EXIT — выйти из ventoy; Fn>xx>yy , где Fn , означает клавишу от F1, до F6 из нижней строчки, xx и yy . действие и поддействие, если есть. Ровно так как они выглядят на экране. Например: < "VTOY_DEFAULT_IMAGE": "F5>Check plugin json configuration (ventoy.json)>Check theme plugin configuration» > или < "VTOY_DEFAULT_IMAGE": "F2>Halt» > или < "VTOY_DEFAULT_IMAGE": "F1" >2. Список раскладок клавиатуры: QWERTY_USA , AZERTY , CZECH_QWERTY , CZECH_QWERTZ , DANISH , DVORAK_USA , FRENCH , GERMAN , ITALIANO , JAPAN_106 , LATIN_USA , PORTU_BRAZIL , QWERTY_UK , QWERTZ , QWERTZ_HUN , QWERTZ_SLOV_CROAT , SPANISH , SWEDISH , TURKISH_Q , VIETNAMESE 3. Типы фильтруемых файлов: ISO , WIM , EFI , IMG , VHD , VTOY 4. Ключи реестра создаваемые ventoy на лету, при включённом байпассинге проверки железа: HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassRAMCheck , HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassTPMCheck , HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassSecureBootCheck , HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassCPUCheck , HKEY_LOCAL_MACHINE\SYSTEM\Setup\LabConfig\BypassStorageCheck
▍ Image list / Image Blacklist plugin.
Чёрный ( image_blacklist ) или белый ( image_list ) список. Может быть только либо один, либо другой. В примере выше, будут отображаться только имиджи из этого списка. Ещё в любой каталог можно поместить пустой файл .ventoyignore и тогда этот каталог и все его подкаталоги будут проигнорированы.
▍ Theme plugin
Поддержка тем формата GRUB2. Возможные параметры сведены в таблицу
| Ключ | Тип | Описание |
|---|---|---|
| file | string/string array | Полный путь к файлу или файлам темы (как в примере выше). Если это массив путей, то ventoy рандомно выбирает файл темы из этого списка |
| gfxmode | string | Графический режим вида Width x Height . По умолчанию «1024×768» |
| display_mode | string | В консольном — CLI , графическом — GUI , через последовательный порт — serial или serial_console (serial при наличии видеокарты) запускаться при старте. По умолчаню GUI |
| serial_param | string | Параметры последовательного порта в формате описанном в документации к GRUB2 |
| ventoy_left | string | Надпись с версией Ventoy. Отступ слева, в %. По умолчанию «5%» |
| ventoy_top | string | Та же надпись, отступ сверху. По умолчанию «95%» |
| ventoy_color | string | Цвет надписи с версией Ventoy. По умолчанию «#0000ff» |
| fonts | string array | Массив полных путей к используемым шрифтам. |
При создании своей темы или использовании темы, скачанной из интернета, придётся добавить в файл темы 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 например).
Класс, стоящий выше по конфигу, имеет больший приоритет. Если для встроенных классов, связанных с функциональными клавишами(см таблицу на сайте ventoy), отсутствует соответствующая иконка и при этом он является дочерним, то берётся иконка родителя. Например: У клавши F4 есть класс F4boot и четыре дочерних подкласса: boot_windows , boot_g4d , boot_disk и boot_uefi . Если есть иконка F4boot.png , а иконка какого-либо из классов отсутствует, для соответствующего пункта будет использована F4boot .
▍ Menu alias plugin
Очень полезный плагин, позволяющий алиасить имена каталогов и образов, чтобы вместо условного ru_windows_10_enterprise_ltsc_2019_x64_dvd_9c09ff24.iso в меню просто отображалось Windows 10 . Табличка тут совсем маленькая и нет смысла убирать её под спойлер:
| Ключ | Тип | Описание |
|---|---|---|
| image | string | Полный путь к образу |
| dir | string | Полный путь к директории, без завершающего слеша |
| alias | string | Алиас |
▍ Menu tip plugin
Подсказка, показываемая на экране, при наведении на определённый пункт:
Menu tip plugin в действии
Табличка возможных параметров тут тоже очень простая.
| Ключ | Тип | Описание |
|---|---|---|
| left | string | Позиция по X, в процентах |
| top | string | Позиция по Y (сверху), в процентах |
| color | string | Цвет (Можно в формате #rrggbb ) |
| tips | array | Массив с обЪектами image , tip |
| image | string | Полный путь к имиджу |
| tip | string | Подсказка |
▍ 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 |
- Специальный пункт меню VTOY_RET возвращает вас в вышестоящее меню. (см. пример)
- Все возможности, имеющиеся в GRUB, можно реализовать при помощи данного плагина. Читайте документацию.
▍ 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 | Пароль |
Пароли могут быть: * в plain text, формат: txt#YourSuperPassword12345 , длиной не более 32-х символов * в MD5, формат: md5#e10adc3949ba59abbe56e057f20f883e * в MD5 с солью, формат: md5#MySuperSalt#0659c7992e268962384eb17fafe88364 Соль не более 16 символов.
Приоритеты паролей от частного к общему: 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. Понятия не имею для чего и как, но если звёзды зажигают…
- Скачиваем из репозитория: wget https://github.com/ventoy/vhdiso/releases/download/v3.0/ventoy_vhdboot.zip
- Также распаковываем ventoy_vhdboot.img в каталог ventoy на флешке.
В комменты призываются админы виндовс, дабы просветить для чего и зачем. В описании к плагину я нашёл только одно применение, через 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 |
Ну и традиционная таблица параметров:
| Ключ | Тип | Описание |
|---|---|---|
| image | string | Полный путь до ISO |
| parent | string | Полный путь до каталога, без концевого слеша. Ко всем образам будут применены соответствующие темплейты |
| template | string/array | Полный путь или массив с путями до шаблона(ов). В меню можно будет выбрать нужный шаблон |
| autosel | integer | Номер автовыбираемого шаблона 0 — без шаблона. 1..n — шаблоны по списку, сверху вниз. ВНИМАНИЕ! При корректном наличии этого параметра меню выбора шаблонов не показывается ! |
▍ Boot conf replace plugin
Плагин позволяющий «на лету» подменять grub.cfg / isolinux.cfg внутри исошника. В принципе можно подменять любые файлы. Разумеется сам исошник не меняется. Все изменения происходят в памяти, в момент загрузки. Это аналогично нажатию e в меню GRUB и ручному редактированию параметров.
Табличка очень простая.
| Ключ | Тип | Описание |
|---|---|---|
| iso | string | Имидж, на который будем накладывать «патч» (поддерживаются только ISO формата ISO9660. UDF имиджи Windows не работают!) |
| org | string | Путь и имя файла в файловой системе внутри имиджа |
| new | string | файл которым заменяем |
▍ Injection plugin
Плагин позволяющий подкидывать любые файлы и каталоги внутрь файловой системы iso-шника. Объединяет в себе свойства предыдущего плагина и немного DUD и Auto installation plugin, только более низкоуровневый. Например, можно подкинуть архив с sources/$OEM$ и нужными драйверами, в виндовс. В Windows содержимое архива распакуется в X:\ , в Linux соответственно в / .
| Ключ | Тип | Описание |
|---|---|---|
| image | string | Полный путь до образа |
| parent | string | Или путь к образам, без концевого слеша |
| archive | string | Архив с файлами, которые хотим синжектить. Для Windows это могут быть .7z или .zip . Для Linux архивы форматов .zip , .tar.gz , .tar.bz2 , .tar.xz , .tar.lzma |
▍ Persistence plugin
| Ключ | Тип | Описание |
|---|---|---|
| image | string | Полный путь до iso-шника |
| backend | string/array | Путь или массив путей к имиджам персистентности |
| autosel | integer | 0 отключить персистентность 1..n cоответствующий элемент массива. Если включен этот параметр, меню выбора не показывается |
Очень многие LiveCD (яркий пример Kali Linux) позволяют сохранять состояние между сеансами. Они записывают состояние на раздел с определённой меткой диска. Вот некоторые из них:
| Дистрибутив | Протестированная версия | Метка раздела | Примечание |
|---|---|---|---|
| Arch Linux | archlinux-2021.03.01-x86_64.iso | vtoycow | ArchMan/ArchBang/ArchLabs/BlackArch также поддерживаются |
| Ubuntu | ubuntu-20.04-desktop-amd64.iso | casper-rw | |
| MX Linux | MX-19.1_x64.iso | MX-Persist | |
| LinuxMint | linuxmint-19.3-xfce-64bit.iso | casper-rw | |
| elementaryOS | elementaryos-5.1-stable.20200405.iso | casper-rw | |
| Zorin | Zorin-OS-15.1-Core-64-bit-r2.iso | casper-rw | |
| Kaspersky R.D, | krd18.iso | casper-rw | |
| Kali | kali-linux-2020.2-live-amd64.iso | persistence | Требуется ключик -c persistence.conf , при создани персистенса и Live USB Persistence в параметры ядра |
| CloneZilla | clonezilla-live-20200703-focal-amd64.iso | persistence | Требуется ключик -c persistence.conf , при создани персистенса |
| Fedora | Fedora-Workstation-Live-x86_64-33-1.2.iso | vtoycow | Нужно отключить selinux добавлением в параметры ядра selinux=0 |
Для получения раздела необходимо создать образ диска, с правильной меткой. Есть два варианта: Скачать готовый образ. Или создать самому. Для этого в комплекте поставки есть удобный скрипт:
Тут всё просто. Если запустить без параметров, то утилита выполнится со следующими параметрами, по умолчанию: ./CreatePersistentImg.sh -s 1024 -t ext4 -l casper-rw -o persistence.dat В результате создастся образ persistence.dat , размером в гигабайт, раздел на нём будет иметь метку casper-rw и отформатирован будет под ext4 . Параметр -c нужен для некоторых дистрибутивов (см. примечания в табличке выше).
Для увеличения или уменьшения (если он не отформатирован под XFS ) раздела, и не забит под завязку, используется утилита ./ExtendPersistentImg.sh file [-]size file — файл который нужно обработать, size — насколько надо увеличить или уменьшить(если перед size cтоит — ) раздел. Раздел увеличивается или уменьшается без потери данных.
▍ vDisk boot plugin
Ну что ж, последний на сегодняшний день плагин. Плагин, позволяющий запускать VHD/VDI/RAW имиджи из VirtualBox, с установленным в них Linux. Поддерживаются только имиджи фиксированного размера. Динамические образы не поддерживаются ! Ещё, при установке ОС в виртуалку, в ней должна быть включена поддержка UEFI! Не создавайте снапшотов виртуалки , что приведёт к невозможности загрузки!
UEFI On!
После установки и настройки ОС в виртуалке, скачайте в виртуалку последнюю версию vtoyboot скрипта из репозитория, распакуйте и запустите:
ВНИМАНИЕ! Данный скрипт также нужно запускать при каждом обновлении ядра и/или обновления initrd образа на гостевой системе!
Затем, после отключения виртуальной машины, переименуйте файл в *.vtoy Например: mv Manjaro.vhd Manjaro.vhd.vtoy и скопируйте на флешку.
Кроме всего прочего, данный плагин можно заставить запускать такие образы с вашего локального HDD/SSD, для чего можно воспользоваться Menu Extension Plugin :
Где в переменную my_vdisk_path надо прописать полный путь до образа, от корня вашего физического раздела . Например, если у вас /home на отдельном разделе и имидж живёт по пути /home/vasya/vImages/Arch.vdi.vtoy то в переменную надо будет прописать /vasya/vImages/Arch.vdi.vtoy
Дисклеймер от меня… Сильно подозреваю, что с шифрованными разделами, такой трюк не прокатит.
Да, такие образы можно грузить из других загрузчиков. Подробнее здесь. Ну и наконец таблица с замечаниями по установке на конкретные дистрибутивы.
| Дистрибутив | 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 |
- Для некоторых дистрибутивов, например, deepin-desktop-community-1010-amd64.iso понадобится установить дополнительный пакет, что бы была возможность грузиться на системах с BIOS! Для дипина это будет пакет grub-pc-bin_2.02.24.3-1+eagle_amd64.deb живущий в /pool/main/g/grub2/ установочного диска. Общий шаблон для поиска: grub-pc-bin_xxx.deb или grub2-2.xxxx.rpm для RPM based дистров. Например, для Mageia.
Заключение
Вот такими, почти неограниченными возможностями, обладает, казалось бы, обычная система мультизагрузки ventoy. К сожалению есть проблемы с загрузкой любительских, исследовательских и экспериментальных ОС — Haiku, Sculpt (Genode OS Framework), Redox, Plan9 etc. Разумеется, не грузятся OS/2 и её деривативы. Для этих операционок не помогает даже memdisk. Но проект бурно развивается (я пользуюсь этой утилитой и слежу за развитием примерно с июня прошлого года и помню то время, когда не грузились системы семейства *BSD) и я думаю, что многие проблемы будут решены. Надеюсь обзор, мой вольный перевод документации по плагинам, вам понравился и вы ещё не раз заглянете сюда за справочной информацией. Ибо более полного описания функционала, на русском, я на просторах интернета не встречал.
Бонус: Соответствие бинарников скачанных с GitHub и бинарников установленных из пакета (Arch like дистрибутивы).
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.
А вы какими программами пользуетесь для создания мультизагрузочных носителей?
Ventoy linux как пользоваться
Download the installation package, like ventoy-x.x.xx-windows.zip and decompress it.
Run Ventoy2Disk.exe , select the device and click Install or Update button.
Notes:
Ventoy2Disk.exe is a x86_32 application and supports both 32-bit and 64-bit Windows PC with intel/amd processor.
Since 1.0.58, Ventoy also provides Ventoy2Disk_X64.exe/Ventoy2Disk_ARM.exe/Ventoy2Disk_ARM64.exe you can use them if needed.
These exe files are in altexe directory of the installation package.
You must copy them to the upper directory to use them. (The same location with Ventoy2Disk.exe )

- if Ventoy2Disk.exe always fail, you can use Ventoy LiveCD, refer notes
- Ventoy can be installed on USB drive or local disk. To prevent misoperation, Ventoy2Disk.exe only lists USB drives by default.
You can toggle the Show all devices option then all the disks will be listed. But at this time, you must be very careful and don’t choose the wrong disk. - MBR/GPT partition style option is used only during install and will be ignored during update.
- After install, you can manually reformat the Ventoy partition with exFAT/FAT32/NTFS/UDF/XFS/Ext2/3/4
- For Windows — CLI mode
- For Linux — GUI mode
- For Linux — CLI mode
- Copy Image files
- Постоянная поддержка Ubuntu, MX Linux, Linux Mint, Elementary OS и Zorin OS
- Автоматическая установка – программа должна работать с Windows и любым дистрибутивом Linux, который поддерживает автоматическую установку, но она была протестирована только с RHEL7 / CentOS7 / Fedora, Debian / Ubuntu Server и SUSE
- Поддержка загрузки WIM-файлов (Legacy + UEFI)
- Поддерживает файлы ISO размером более 4 ГБ
Windows command line was supported since Ventoy 1.0.86. Please refer Windows Command Line
Download the installation package, like ventoy-x.x.xx-linux.tar.gz and decompress it.
Run the shell script as root sh Ventoy2Disk.sh < -i | -I | -u >/dev/XXX XXX is the USB device, for example /dev/sdb.
Attention that the USB drive will be formatted and all the data will be lost after install. You just need to install Ventoy once, after that all the things needed is to copy the iso files to the USB.
You can also use it as a plain USB drive to store files and this will not affact Ventoy’s function.
After the installation is complete, the USB drive will be divided into 2 partitions. The 1st partition was formated with exFAT filesystem (You can also reformat it manually with NTFS/FAT32/UDF/XFS/Ext2/3/4 . See Notes). You just need to copy iso files to this partition. You can place the iso/wim/img/vhd(x) files any where. Ventoy will search all the directories and subdirectories recursively to find all the image files and list them in the boot menu alphabetically. Also you use plugin configuration to tell Ventoy only to search for image files in a fixed directory (and its subdirectories).
Как легко создать загрузочную флешку с помощью Ventoy
Ventoy – это довольно новый инструмент с открытым исходным кодом для создания загрузочных USB-накопителей с использованием ISO-файлов Linux или Microsoft Windows.
Вы устанавливаете этот инструмент на USB-накопитель, затем просто копируете ISO-образы на USB-накопитель и можете загружаться с него без каких-либо других изменений (поэтому нет необходимости переформатировать USB-накопитель каждый раз, когда вы хотите создать загрузочный USB-накопитель, и без необходимости извлекать содержимое файла ISO).
Приложение доступно для Microsoft Windows и Linux. Оно имеет графический пользовательский интерфейс только на Windows; в Linux вам нужно будет использовать его из командной строки.
При копировании нескольких ISO образов на USB-накопитель, Ventoy предоставляет меню при загрузке, откуда вы можете выбрать, с какого ISO загрузиться. Вы даже можете создать мультизагрузочный USB-накопитель, добавив ISO-файлы нескольких дистрибутивов Linux и Windows на один USB, как показано на скриншоте в верхней части этой страницы.
Стоит отметить, что вы можете продолжать использовать USB-накопитель для других целей. После того, как Ventoy установлен на USB-флешке, этот USB-накопитель можно использовать для загрузки файлов ISO, которые вы копируете на него, но вы также можете копировать на него другие файлы, и это не повлияет на работу Ventoy.
Чтобы использовать весь USB-накопитель для других целей, вам не нужно его форматировать. Удалите все файлы ISO из него и используйте его как обычный USB-накопитель (Ventoy занимает всего несколько МБ места и не виден при подключении USB-накопителя). Если вы хотите использовать этот же USB-накопитель для загрузки ISO, все что вам нужно сделать, это скопировать файл ISO (или несколько ISO) на USB и загрузиться с него.
Ventoy поставляется с устаревшей поддержкой UEFI Secure Boot и он был протестирован с более чем 260 файлами ISO, включая Debian, Ubuntu (и его разновидности), CentOS, RHEL, Deepin, Fedora, SLES, openSUSE, MX Linux, Manjaro, Linux Mint, Elementary OS, Pop! _OS, Solus OS, Zorin OS, Arch Linux, Puppy Linux, Tails, Slax, Kali Linux, Mageia, Slackware, Gentoo, NixOS, ALT Linux, KDE Neon и многие другие дистрибутивы Linux, а также Windows 7, Windows 8 / 8.1, Windows 10 и Windows Server
Другие функции Ventoy:
Как установить Ventoy на флешку
Нажмите на кнопку ниже, чтобы скачать программу для Linux или Windows
В Windows Ventoy поставляется с графическим интерфейсом пользователя, поэтому использовать его довольно просто. Чтобы использовать его, распакуйте загруженный ZIP-файл Ventoy, затем запустите исполняемый файл Ventoy2Disk.

Выберите USB-накопитель в списке устройств, при необходимости включите поддержку Secure Boot (из меню Option), затем нажмите кнопку Install, чтобы установить Ventoy на USB-накопитель. Теперь, когда Ventoy установлен на вашем USB-накопителе, вы можете создать загрузочный USB-накопитель, просто скопировав ISO образы на USB, независимо от того, являются ли они ISO-дистрибутивами Linux или ISO-файлами Windows 10/8/7.
В Linux извлеките файл Ventoy.tar.gz, и вы найдете 3 папки, а также 2 сценария, Ventoy2Disk.sh для установки Ventoy на USB-накопитель и CreatePersistentImg.sh для создания постоянного образа для использования с Ventoy.

Но перед установкой Ventoy на USB-накопитель и созданием загрузочного USB-накопителя необходимо выяснить имя устройства на этом USB-накопителе и размонтировать его, если он подключен. Для этого выполните следующие действия
1. Узнайте имя устройства USB-накопителя и доступные разделы
Подключите USB к компьютеру, затем выполните команду ниже (вы также можете использовать lsblk или sudo fdisk -l вместо нее, или использовать Gparted, если вы предпочитаете графический интерфейс) в терминале:
Эта команда должна вывести диски и разделы, подключенные к вашему компьютеру, в том числе USB-накопитель. Вам нужно выяснить, какие из перечисленных устройств будет вашим USB-накопителем, основываясь на названии модели, размере диска и т. д.
Пример с командой parted -l, показывающей USB-накопитель, подключенный к моему компьютеру:

В выходных данных этого примера вы можете найти имя USB-устройства в разделе «Диск», так что в моем случае это /dev/sdc.
2. Размонтируйте все подключенные разделы USB-накопителя.
Если на USB-накопителе смонтированы разделы, отключите их, прежде чем продолжить (иначе вы не сможете установить Ventoy на USB, а это необходимо для создания загрузочного USB-накопителя):
Замените /dev/sdXN на ваше имя. Обязательно размонтируйте все смонтированные разделы диска.
3. Установите Ventoy на USB-диск
Важно отметить, что все данные на диске, куда вы устанавливаете Ventoy, будут потеряны! Убедитесь, что имя USB-устройства указано правильно, чтобы случайно не потерять данные с жесткого диска.
Чтобы иметь возможность создавать загрузочные USB-накопители, просто копируя ISO-файлы на USB, вам необходимо установить Ventoy на USB-накопитель. Откройте терминал и перейдите к папке, в которую вы распаковали Ventoy (папка, содержащая скрипт Ventoy2Disk.sh).
Чтобы установить Ventoy на USB-диск без поддержки Secure Boot, используйте:
Чтобы установить Ventoy на USB-диск с поддержкой Secure Boot, используйте:
В обеих этих командах необходимо заменить /dev/sdX на имя устройства USB, которое вы узнали на шаге 1.
Вам будет предложено еще раз перепроверить правильность данных

Теперь, когда Ventoy установлен на вашем USB-накопителе, вы можете создать загрузочный USB-накопитель, просто скопировав файлы ISO на USB, независимо от того, являются ли они ISO-дистрибутивами Linux или ISO-файлами Windows 10/8/7.

Загрузитесь с этого USB-накопителя, и вы увидите список ISO-файлов, которые доступны на нем – щелкните любой из них, и вы загрузите выбранный ISO-файл с возможностью установки дистрибутива Linux или версии Windows, на которую вы скопировали USB-накопитель.
Как создать загрузочный USB-накопитель с постоянным использованием Ventoy
Когда вы создаете обычный Linux live USB, вы можете устанавливать программное обеспечение, загружать файлы, вносить изменения в систему и т. д., но все эти изменения теряются после перезагрузки. Постоянный USB позволяет сохранять любые изменения, которые вы вносите в действующую систему, поэтому они сохраняются при следующей загрузке.
Ventoy поддерживает создание постоянного загрузочного USB-накопителя. Среди дистрибутивов Linux, для которых Ventoy поддерживает постоянство, есть Ubuntu, MX Linux, Linux Mint, Elementary OS и Zorin OS.
В следующих инструкциях предполагается, что вы уже загрузили, извлекли и установили Ventoy на USB-устройство (см. Инструкции выше).Стоит отметить, что для этого требуется скрипт CreatePersistentImg.sh, доступный только при загрузке Ventoy Linux (аналогичного решения Ventoy для Windows не существует).
1. Создайте файл постоянного образа.
Чтобы создать постоянный загрузочный USB-накопитель, первым делом необходимо создать файл внутреннего образа. Это простой образ диска с меткой. Вы можете использовать скрипт CreatePersistentImg.sh, который находится в папке где вы распаковали Ventoy для Linux, чтобы создать этот файл образа.
Откройте терминал, перейдите в папку в которую вы распаковали Ventoy (которая должна содержать скрипт CreatePersistentImg.sh), и выполните эту команду, чтобы создать файл образа размером 4 ГБ:
Эта команда создаст файл образа EXT4 объемом 4 ГБ с меткой по умолчанию casper-rw. 4096 представляет размер файла образа в мегабайтах, если вы хотите увеличить или уменьшить размер, измените это число.
Вы можете увидеть все доступные опции, запустив:
2. Скопируйте файл постоянного образа на USB-накопитель
Созданный файл образа называется persistence.img и должен быть доступен в папке Ventoy (рядом со сценарием CreatePersistentImg.sh). Подключите USB-накопитель, на котором вы установили Ventoy, и скопируйте persistence.img на USB-накопитель.
3. Создайте файл конфигурации Ventoy json, содержащий пути к файлам ISO.
На USB-диске, на котором вы установили Ventoy, создайте папку с именем ventoy. Внутри этой папки создайте файл с именем ventoy.json и откройте этот файл в текстовом редакторе.
Внутри файла вставьте следующие строки:
Замените ISO-file-name.iso на имя файла ISO (и путь, если он не находится в корне USB), а persistence.img также на имя файла и путь постоянного образа (если вы изменили имя и не поместили его в корень USB).
Например, если у вас есть ISO ubuntu-20.04-desktop-amd64.iso и файл постоянного образа persistence.img, которые находятся в корневом каталоге USB-накопителя, ventoy.json будет выглядеть так:
Вы можете добавить несколько файлов ISO если хотите, например:
Убедитесь, что пути и синтаксис на 100% верны, иначе это не сработает.
Когда вы закончите, сохраните файл и загрузитесь с этого USB-накопителя.
А вы пробовали создать загрузочную флешку с помощью программы Ventoy? Поделитесь своими мыслями в комментариях ниже.