30.10.21

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

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.


Далее есть три варианта:


  1. CLI
  2. Web GUI
  3. 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

Комментариев нет: