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 установщиком.
Скачиваем, распаковываем:
$ curl -L https://github.com/ventoy/Ventoy/releases/download/v1.0.55/ventoy-1.0.55-linux.tar.gz | tar -zxv$ cd ventoy-1.0.55
Пользователи Arch-Linux могут подключить сторонние репозитории и скачать оттуда. Также есть в AUR. Пользователи Manjaro просто могут набрать sudo pacman ventoy
.
Далее есть три варианта:
- CLI
- Web GUI
- GTK / Qt GUI
Пробежимся по всем трём:
▍ CLI
ВНИМАНИЕ! Первоначальная установка на устройство (флешку/HDD) удаляет все данные на нём!
Cамый простой метод:
sudo ./Ventoy2Disk.sh -i /dev/sdX
поставит ventoy на устройство /dev/sdX
с разбивкой MBR. При этом создадутся два раздела. Раздел FAT на 32mb с самим ventoy, в конце диска. И раздел для данных в начале диска, отформатированный под exFAT и занимающий всё оставшееся место. Данный метод позволит грузиться на практически всех системах с BIOS и UEFI без SecureBoot. Раздел для данных можно переформатировать в ext2-4 и XFS, при этом увеличится скорость работы, но нельзя будет закидывать данные из Windows (по крайней мере без дополнительных костылей). При желании раздел можно отформатировать в FAT/FAT32, NTFS, UDF.
Данный метод не подходит для систем с BIOS, если суммарный размер разделов вылезает за границу в 137gb. То есть Для флешек объёмом 256gb и выше, придётся использовать встроенную фичу…
Резервирование места:
sudo ./Ventoy2Disk -i -r <SIZE_MB> /dev/sdX
Где после ключа -r
поставить размер резервируемого размера в мегабайтах. В результате разбивка примет вид как на картинке ниже:
Разбивка с reserved space
Например, для флешки объёмом 256 гигов можно зарезервировать 150Gb (-r 153600
) и тогда под Раздел1 + Раздел2 останется 106gb. После установки на зарезервированном месте, можно создать дополнительный раздел или несколько. Переходим к следующему варианту…
Разбивка под GPT:
sudo ./Ventoy2Disk -i -g /dev/sdX
Всё то же самое, что и в случаях с MBR разбивкой. Такую флешку можно грузить не только на UEFI системах, но и на большинстве систем с BIOS. По крайней мере у меня, на тестовом ноуте 2008-го года, c чистым легаси, прекрасно грузится. Разумеется, для GPT разбивки действуют ровно те же ограничения в 137gb, что и для MBR, так что ключик -r
обязателен для больших флешек. Для систем с SecureBoot нужно ставить ключ -s
(подробнее про работу с SecureBoot можно посмотреть тут). Правда обычным системам с BIOS/UEFI он никак не мешает. Поэтому я, на обычные «мелкие» флешки всегда ставлю командой:
sudo Ventoy2Disk -i -g -s /dev/sdX
Другие полезные ключи ventoy: * -I
— заменяет ключ -i
, если нужно установить (полная переустановка с потерей всех данных) ventoy на флешку,. на которой он уже установлен. * -l
— Проверить наличие и показать версию ventoy на флешке. * -L LabelName
— задать при установке метку раздела(exFAT) с данными. По умолчанию Ventoy
* -u
— Обновить ventoy на флешке, без потери данных:
sudo Ventoy2Disk -u /dev/sdX
▍ Web GUI
Исторически первый гуёвый интерфейс под linux. Отличающийся от своих нативных GUI Linux/Windows собратьев ровно ничем.
WebGUI
Запуск:
sudo ./VentoyWeb.sh
По умолчанию веб-интерфейс поднимается на http://127.0.0.1:24680
о чём ventoy радостно сообщает нам в консоли:
=============================================================== Ventoy Server 1.0.55 is running ... Please open your browser and visit http://127.0.0.1:24680===============================================================################## Press Ctrl + C to exit #####################
Cамо собой разумеется, ключиками (-H ip.add.re.ss
— Адрес, -p port
и порт соответственно) его можно повесить на другой ip / port, но это такое cебе развлечение, ибо никакой защиты не предусмотрено.
▍ GTK / Qt GUI
Ну тут совсем всё просто. Правда бинарник собран под кучу архитектур и поэтому имя выглядит как VentoyGUI._arch_ По умолчанию запускается GTK интерфейс:
./VentoyGUI.x86_64
Для запуска 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 простого формата вида
{ "plugin_name": { "key": "value", ... "key-n": "value-n" }, "plugin_name2": [ { "key1": "value1", ... "key-n": "value-n" }, { "key1": "value1", ... "key-n": "value-n" } ]}
Ещё в ventoy есть такая интересная штука для запуска плагинов по условию запуска в определённой среде, как Multi Mode. Например, показывать разные *.iso
, если мы запустились в BIOS(legacy) или в UEFI. Для этого после имени плагина пишем имя режима, через подчёркивание: "plugin_name_mode": {
. Как-то так:
{ "theme_legacy": { "display_mode": "CLI" }, "theme_uefi": { "file": "/ventoy/theme/theme.txt", "gfxmode": "1920x1080" }, "theme_ia32": { "file": "/ventoy/theme/theme_ia32.txt", "gfxmode": "800x600" }, }}
Глоббинг путей поддерживается в ventoy, но он предельно примитивный и имеет только одну возможность — замену отдельного символа, также, как это делает знак вопроса в bash. Только здесь его функцию выполняет *
. Например:
{ "menu_alias": [ { "image": "/ISO/Ubuntu-20.**-desktop-amd64.iso", "alias": "Ubuntu 20" }, { "image": "/ISO/Ubuntu-21.**-desktop-amd64.iso", "alias": "Ubuntu 21" } ]}
Под эти шаблоны подпадут, например Ubuntu-20.04-desktop-amd64.iso
и Ubuntu-21.01-desktop-amd64.iso
. Хотелось бы большего, но и это неплохо, особенно когда меняешь *.iso
на новые версии.
Дальнейшая часть является вольным переводом официального справочника по плагинам. Первоначально я хотел кратенько обозреть основные, самые полезные, плагины, но… Увлёкся и в результате получился вот такой вот TL;DR и самый полный справочник по Ventoy на русском.
И начнём мы с основного плагина Control.
▍ Global control plugin
{ "control": [ { "VTOY_DEFAULT_MENU_MODE": "0" }, { "VTOY_TREE_VIEW_MENU_STYLE": "0" }, { "VTOY_FILT_DOT_UNDERSCORE_FILE": "1" }, { "VTOY_SORT_CASE_SENSITIVE": "0" }, { "VTOY_MAX_SEARCH_LEVEL": "max" }, { "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }, { "VTOY_MENU_TIMEOUT": "10" }, { "VTOY_DEFAULT_IMAGE": "/ISO/debian_netinstall.iso" }, { "VTOY_FILE_FLT_EFI": "1" }, { "VTOY_DEFAULT_KBD_LAYOUT": "QWERTY_USA" }, { "VTOY_WIN11_BYPASS_CHECK": "0" } ]}
Здесь живут основные параметры ventoy, включая и тот который отвечает за расположение каталогов с *.iso
файлами и прочими файлами образов: { "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }
. Чтобы ventoy не приходилось шерстить весь диск для того, чтобы их найти и добавить в меню. Возможные параметры я свёл в табличку, как и у остальных плагинов, описываемых далее.
Tags:
October 30, 2021 at 06:44PM
Open in Evernote
from WordPress https://ift.tt/3vXslf7
via IFTTT
Комментариев нет:
Отправить комментарий