Ventoy - кроссплатформенный загрузчик Linux и Windows

  • Инструмент с открытым исходным кодом для создания загрузочного USB, HDD, SSD накопителя с поддержкой загрузки ОС (операционных систем) Windows/WinPE/Linux/ChromeOS/Unix/VMware/Xen с ISO/WIM/IMG/VHD(x)/EFI
  • Надстройка над grub2 с поддержкой MBR (x86 Legacy BIOS) и EFI (IA32 UEFI, x86_64 UEFI, ARM64 UEFI и MIPS64EL UEFI). Т.е. скопировав iso с ОС возможно не только установить ее, но и протестировать на вашем железе, а не в виртуалке
  • Возможно использование как обычного загрузчика уже установленных обычным способом ОС. Более удобен по сравнению со стандартным grub2 графическим установщиком под разные ОС

Установка Ventoy.

Под Windows

  • Под windows установщик ventoy более функционален. Есть выбор Файловых Систем (ФС) и установки без переформатирования
  • Описание установки под linux ниже аналогично установке под windows

Под Linux

  • скачать и распаковать самый свежий ventoy-..-linux.tar.gz
  • проверить права на запуск (sudo chmod 755) VentoyGUI.x86_64 или VentoyGUI.i386 и запустить его

Настройки

  • «Language» - выбрать язык интерфейса программы

103.jpg

  • Поддержка EFI Secure Boot. Улучшает безопасность , но с некоторыми линуксами может не работать

105.jpg

  • Стиль разметки разделов : MBR или GPT . Если ваш жесткий диск больше 2 ТБ или планируете установку Windows 11 - выбираем GPT.

106.jpg

  • Дополнительный раздел - создание пустого раздела в конце диска.
    • Позже его нужно разбить и отформатировать под свои нужды программой gparted. Например, отформатировать в ext4, и использовать для каталогов дистрибутивов фругал linux, а также для файлов сохранения.
    • Актуально, если нужны другие ФС, кроме созданного раздела с именем «Ventoy» exfat (на который впоследствии можем копировать ISO и пр.
      • Если нет необходимости использовать образы с Windows (запустятся только с fat exfat ntfs) - можно переформатировать в ext или фругую линукс ФС

109.jpg

  • Показывать все устройства - может пригодится для установки ventoy на жесткий диск.
    • По умолчанию показаны только usb устройства.
    • Использовать с осторожностью так как затирает все данные на указаном устройстве.

108.jpg

Установка

С переформатированием

  • Внимательно перепроверяем свой выбор и нажимаем «Установить»
    • ventoy выведет предупреждение о том что все данные на вашем устройстве будут потеряны.

112.jpg

  • ventoy установит модифицированный загрузчик grub2
  • по окончанию этой операции вы получите от ventoy сообщение об успешном выполнении .

02.jpg

Без переформатирования (Non-destructive)

Такой вариант удобен на HDD, SSD, где уже установлены другие ОС :

  • Поддерживается EFI и BIOS загрузка
  • По умолчанию будет загружаться центральное Ventoy меню grub2
    • которое можно подменить своим (подробнее ниже).
      • Из своего вызывать меню Ventoy и загружать все другие установленные ОС
      • Если установленный Линукс генерит свое grub2 меню - вызывайте его из центрального меню
  • Копированием файлов с флэшки с установленным Ventoy - Non-destructive установить не получится

Есть ограничения :

  1. На диске должны быть свободные места в таблице разделов. Ventoy необходимо вставить новый раздел VTOYEFI.
    • Для стиля разделов MBR, если на диске уже есть 4 раздела, то Non-destructive установка невозможна.
    • Для GPT - если на диске уже существует 128 разделов.
  2. Первый раздел должен начинаться с 1 МБ.
    • И MBR, и GPT должны отвечать этому требованию, чтобы соответствовать разметке диска Ventoy.
    • В Windows первый раздел по умолчанию начинается с 1 МБ.
  3. Первый раздел должен содержать файловую систему NTFS или EXT2/3/4.
    • Если раздел 1 - NTFS, то необходимо установить пакет ntfs-3g.
    • Если раздел 1 - EXT2/3/4, то необходимо установить пакет e2fsprogs.
  4. На 1-м разделе должно быть свободное пространство.
    • Также хорошо, если после 1-го раздела уже есть достаточно неиспользуемого пространства (32 МБ+) (тогда не нужно уменьшать 1-й раздел).

Установка :

  1. Перед трансформацией сделайте архивацию критичной информации на другой носитель
  2. На случай непредвиденных ситуаций запаситесь загрузочной флэшкой с любым Live Линукс
  3. Только в консоли :
    sudo sh Ventoy2Disk.sh -i -n /dev/sdХ

    , где sdX -ваш носитель (посмотреть : sudo blkid)

  4. После перезагрузки по умолчанию будет загружаться меню Ventoy, которое по умолчанию начинает искать все .iso на первом разделе (sdX1) на полную глубину. Дожидаться окончания этого процесса смысла нет
  5. Глубина поиска и прочие параметры Ventoy задаются в файле ventoy/ventoy.json (при Non-destructive он находится на 1м разделе sdX, название раздела не критично)
{
  "control": [
      { "VTOY_MAX_SEARCH_LEVEL": "0" }
  ]
}

, где 0 - искать только в корне sdX1

  • Если одновременно задан VTOY_DEFAULT_SEARCH_ROOT, то уровень будет отсчитываться от соответствующего каталога (уровень 0). Например, следующая конфигурация означает, что будут перечислены только файлы в корне и не будет производиться поиск ни в одном подкаталоге.
{
  "control": [
      { "VTOY_MAX_SEARCH_LEVEL": "1" },
      { "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }
  ]
}
  • Если сделать п.5. заранее, без ошибок - Live флэшка не понадобится.

Менее функциональная альтернатива - autoiso. Легко добавляется в меню уже установленного grub2

Настройка Ventoy после установки

Производится через конфиг ventoy/ventoy.json на разделе с именем «Ventoy»

VTOY_LINUX_REMOUNT

  • Эта опция в ventoy.json доступна только для файлов образов дистрибутивов Linux.
  • По умолчанию раздел образа, в котором находятся файлы ISO, не может быть доступен после загрузки. При попытке смонтировать его вы получите ошибку «Устройство занято». Это связано с ограничением ядра linux (модуль device-mapper).
    • Если вы выберете 1, Ventoy попытается обойти это ограничение с помощью специального механизма. Это экспериментальная функция и не полностью протестирована. Поэтому иногда есть смысл создать дополнительный раздел (см. выше)

VTOY_DEFAULT_SEARCH_ROOT

  • каталог для поиска iso и пр.
  • Ventoy будет искать файлы образов только в этой директории (и ее поддиректориях).
{ "VTOY_DEFAULT_SEARCH_ROOT": "/ISO" }
  • Не забудьте добавить этот путь в from= (porteus initrd) и uird.mount= (uird)

Ventoy Menu Extension Plugin - вызов своего меню по F6

  • Запишите ваше меню и команды grub2 в cfg файл ventoy_grub.cfg в каталоге ventoy в первом разделе, то есть /ventoy/ventoy_grub.cfg.
  • Нажмите F6 для загрузки настроенного меню в меню загрузки Ventoy.

Wimboot Plugin (WinPe)

Vlnk - загрузка iso и пр. с другого носителя

Установить Ventoy на носитель с уже установленными ОС проблематично. Легче установить на флэшку (не жалко переформатировать). Но флэшки медленные. С помощью Vlnk можно запускать iso c sdd и пр. из-под Ventoy с флэшки

  • Если iso находится на windows разделах (fat exfat ntfs) - можно запустить через F2 в главном меню Ventoy.
    • Плагины (Menu alias, Menu tip, Persistnce, Auto install …) не могут быть использованы при просмотре и загрузке файлов. Используйте вышеуказанный механизм Vlnk, если они вам нужны.
  • Для linux файловых систем : sudo bash VentoyVlnk.sh -c xxx.iso в терминале. Файл vlnk будет создан в текущем каталоге, в котором вы запустили скрипт. Перенесите его на флэшку

Injection - добавить свои файлы

  • Например например, драйверы/скрипты … Вы говорите Ventoy внедрить сжатый архив, а Ventoy распаковывает его в среду выполнения после загрузки, и это все.
  • Поддерживаются архивы :
    • Windows: .7z .zip - распакует на X:
    • Linux: .zip .tar.gz .tar.bz2 .tar.xz .tar.lzma - распакует в корень (/), как tar -xzf inject.tar.gz -C /
  • Вы должны создать свой сжатый архив в соответствии со структурой каталогов системы и предоставляемыми возможностями. Например, вы можете предоставить архив, содержащий каталог sources\$OEM$ для внедрения драйверов Windows.
  • В /ventoy/ventoy.json нужно добавить :
{
  "injection": [
      {
          "image": "/ISO/MX-19.1_x64.iso",
          "archive": "/driver/mx-driver.tar.gz"
      },
      {
          "parent": "/ISO/Windows",
          "archive": "/driver/win-driver.zip"
      }
  ]
}

Boot Conf Replace - подмена меню загрузчика grub2 и пр.

Возможна двумя способами:

  1. Нажать Tab или e, чтобы войти в режим редактирования меню загрузки и изменить параметры. Но это действует однократно и требуется при каждой загрузке.
  2. Изменить конфигурационный файл и создать новый ISO-файл. Это более хлопотно, и вам придется снова создавать новый ISO-файл после обновления опции загрузки.
  • С помощью этого плагина вы можете указать новый файл конфигурации для динамической замены оригинального файла конфигурации во время загрузки.
  • Замена происходит динамически и временно, оригинальный ISO-файл не будет изменен.
  • В /ventoy/ventoy.json нужно добавить :
{
  "conf_replace": [
      {
          "iso": "/CentOS-7-x86_64-DVD-1908.iso",
          "org": "/isolinux/isolinux.cfg",
          "new": "/ventoy/centos.cfg"
      },
      {
          "iso": "/ubuntu-20.04-desktop-amd64.iso",
          "org": "/isolinux/txt.cfg",
          "new": "/ventoy/ubuntu.cfg"
      }
  ]
}
  • Замена двух файлов :
{
  "conf_replace": [
      {
          "iso": "/debian-10.6.0-amd64-DVD-1.iso",
          "org": "/isolinux/isolinux.cfg",
          "new": "/ventoy/new_isolinux.cfg"
      },
      {
          "iso": "/debian-10.6.0-amd64-DVD-1.iso",
          "org": "/isolinux/menu.cfg",
          "new": "/ventoy/new_menu.cfg"
      }
  ]
}
  • Если используется systemd-boot (например в ArchLinux) - добавить строку с четвертым параметром : «img»: 1

Загрузка дистрибутивов https://puppyrus.org в Ventoy из iso

В этом режиме можно использовать много стандартных ОС. Наших в списках нет, но они тоже так работают. Далее особенности для наших initrd

pra-porteus initrd (LFD)

Работает из iso в любой версии ventoy в normal и grub2 режимах с from=/ваш_iso.iso

UIRD initrd (PRAR, LFDS).

  • C 1.0.82 и выше версий ventoy должны грузиться все iso c UIRD initrd в режиме grub2 (prar lfds).
  • В normal надо добавить uird.mounts=/где/prar.iso и тогда uird.from как обычно

rootaufs2 initrd (PRAR)

С версии 230107 загружается в режиме grub2

Frugal установка дистрибутивов PuppyRus.

  • На примере дистрибутив LFD10
  • Если после установки ventoy планируется устанавливать windows - ничего не получится. Устанавливайте в следующей последовательности:
    1. windows - стандартным способом
    2. grub2 с любого live дистрибутива линукс
    3. Через grub2 запускайте все установленные системы. Примеры конфигов в iso и wiki
    4. Альтернативный метод : LF-auto. Добавляется в меню любого уже установленного grub2

Копирование

  • Монтируем ISO образ любым приемлемым способом, далее открываем смонтированный каталог iso образа, находим в нем каталог с именем /lfd10,

117.jpg

копируем его в раздел /sda1

118.jpg

119.jpg

Добавление в меню загрузчика ventoy.

Два варианта:

Альтернативное меню F6

Альтернативное меню вызывается функциональной клавишой F6 в главном меню ventoy. Удобно на usb-flash

  • В разделе /Ventoy (в нашем случае это /sda1 создаём каталог с именем /ventoy,

120.jpg

  • в этом каталоге правой кнопкой мышки из контекстного меню создаём пустой файл с именем ventoy_grub.cfg

121.jpg

122.jpg

  • далее открываем этот файл и вставляем в него следующий код:
#!/bin/sh
#set default=6

#set prefix=($root)/EFI/BOOT
#if loadfont $prefix/euro.pf2 ; then
if loadfont $prefix/ter-u18n.pf2 ; then
#	set gfxmode=auto
	set gfxmode=1024x768,1024x600,800x600,640x480
	insmod efi_gop
	insmod efi_uga
	insmod probe
    insmod vbe
    insmod vga
	insmod gfxterm
	terminal_output gfxterm
  set locale_dir=$prefix
  set lang=ru_RU
  insmod gettext
fi

set menu_color_normal=white/black
export menu_color_normal
set menu_color_highlight=black/light-gray
export menu_color_highlight

insmod part_msdos
insmod ext2
insmod cat
insmod sleep
#set timeout=5

if [ "${grub_platform}" = 'efi' ]; then
menuentry " ! Если Linux ядро (неподписанное) не загружается  - отключите в BIOS Secure Boot ! " {
true
}
fi

menuentry " ▒▒ LFD10 pporteus OLS (Openbox, Lxpanel, SpaceFM). Для слабого железа (Без NM, pulse). Модули не загружаются в RAM (оперативную память) \
        load=module[1]\;module[n]   - .pfs загружаются выше базы из /optional \
        noload=module[1]\;module[n] - пропуск загрузки перечисленных модулей (regex) При малом количестве RAM (памяти) используйте zram=150% или 100%" {
  set d=lfd10
  export d
  search --set=root --no-floppy --file /${d}/vmlinuz-5.15.0-pf5-pt14_64
  linux /${d}/vmlinuz-5.15.0-pf5-pt14_64 dir=${d}  rw quiet changes=EXIT:/dev/sda1/lfd10
  initrd    /${d}/.xz   
}
  menuentry "▁▂▃▄▅▆  Назад [Esc]" --class=vtoyret VTOY_RET {
    echo
}
  • Этот конфигурационный файл актуален для LFD10-22.04 и содержит в себе опцию сохранения в каталог дистрибутивом /lfd10, при перезагрузке, но должно выполнятся условие что /sda1 отформатирован в ext4.
  • Процесс установки и конфигурации загрузчика Ventoy а также дистрибутива LFD10, c использованием альтернативного меню Ventoy на жёсткий диск закончен.

Замена меню Ventoy

  • Удобно на HDD, SSD
  • В конце добавлен вызов оригинального меню
  • Переименуйте на fat разделе VTOYEFI grub/grub.cfg в grub.cfg0

126.jpg

  • скопировать в /grub/ свой ventoy_grub.cfg

128.jpg

129.jpg

  • создать /grub/grub.cfg :

130.jpg

  • скопировать в него код:
#!/bin/sh
theme=/grub/themes/ventoy/theme.txt
export theme
##set prefix=($root)/EFI/BOOT
#if loadfont $prefix/euro.pf2 ; then
#if loadfont $prefix/ter-u18n.pf2 ; then
if loadfont unicode ; then
	set gfxmode=1024x768,1024x600,800x600,640x480
	insmod efi_gop
	insmod efi_uga
	insmod probe
    insmod vbe
    insmod vga
	insmod gfxterm
	terminal_output gfxterm
#  set locale_dir=$prefix
  set lang=ru_RU
  insmod gettext
fi

set menu_color_normal=white/black
export menu_color_normal
set menu_color_highlight=black/light-gray
export menu_color_highlight
set default=6
#"PRA рус"

#insmod vbe
#insmod vga
insmod part_msdos
insmod ext2

insmod cat
insmod sleep

#set timeout=5

if [ "${grub_platform}" = 'efi' ]; then
#menuentry " !!! Если Linux ядро не загружается (error: vmlinuz has invalid signature) - оеключите в BIOS Secure Boot !!! " {
menuentry " ! Если Linux ядро (неподписанное) не загружается  - оеключите в BIOS Secure Boot ! " {
true
}
fi
. /grub/ventoy_grub.cfg

menuentry "▁▂▃▄▅▆  МЕНЮ Ventoy "  {
    configfile $prefix/grub.cfg0
}
  • после этого можно перезагрузить компьютер.
  • Если при перезагрузке выскочит собщение : «Если Linux ядро (неподписанное) не загружается - отключите в BIOS Secure Boot !»
    • Делаем то что просят идем в BIOS и отключаем Secure Boot.

Установка загрузчика Ventoy и frugall дистрибутива LFD10, с использованием главного меню загрузчика Ventoy завершена.

Установка дистрибутива LFD10 на usb носитель, отличается лишь выбором носителя usb в интерфейсе программы, а так же созданием дополнительного раздела для frugall дистрибутивов linux , в остальном все выполняемые действия те же.

Загрузка дистрибутивов https://puppyrus.org из iso в grub2 без Ventoy

Если iso находятся на носителе, на котором установлен только grub2 без ventoy :

Автор : totiks2012

Редактирование : sfs

Печать/экспорт