Автор Тема: Ventoy - инструмент для создания загрузочных флешек  (Прочитано 93985 раз)

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
Автор Ventoy предоставил возможность применения альтернативной темы оформления загрузочного меню Ventoy

Хотя это и не принципиально (главное - функционал), но изменить тему довольно просто.
Нужно скопировать из распакованного каталога ~/ventoy-1.0.21/plugin папку ventoy со всем содержимым и вставить в корень подготовленной флешки с размещёнными на ней образами. Эта тема хороша тем, что показывает размер образа.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
Для создания файла образа нужно запустить скрипт sudo sh CreatePersistentImg.sh [ -s SIZE_IN_MB ] [ -t FSTYPE ] [ -l LABEL ], по умолчанию будет создан файл persistence.img с размером=1GB fs=ext4 label=casper-rw.
Например, для создания в Ubuntu файла сохранения размером 512 МБ команда такая: sudo sh CreatePersistentImg.sh -s 512
Разные дистрибутивы используют разные метки по умолчанию, например, ubuntu используют casper-rw, MX Linux используют MX-Persist, для установки которых нужно использовать -l.
После того, как создали файл образа, можно его сжать для уменьшения размера и сохранить его как шаблон на компьютере.
На практике оказалось, не так просто воспользоваться данными рекомендациями, чтобы впоследствии использовать файл сохранения.
Наш друг и коллега Вячеслав Федьков продемонстрировал создание файла сохранения на примере Matuntu-F-08-20. В умолчальный файл CreatePersistentImg.sh в распакованном каталоге Ventoy вносятся небольшие изменения (для наглядности подчёркнуты) :
CreatePersistentImg.sh
#!/bin/sh

size=2048
fstype=ext2
label=casper-rw
persistence=matuntu_F.dat

print_usage() {
    echo 'Usage:  CreatePersistentImg.sh [ -s size ] [ -t fstype ] [ -l LABEL ]'
    echo '  OPTION: (optional)'
    echo '   -s size in MB, default is 1024'
    echo '   -t filesystem type, default is ext4  ext2/ext3/ext4/xfs are supported now'
    echo '   -l label, default is casper-rw'
    echo ''
}

while [ -n "$1" ]; do
    if [ "$1" = "-s" ]; then
        shift
        size=$1
    elif [ "$1" = "-t" ]; then
        shift
        fstype=$1
    elif [ "$1" = "-l" ]; then
        shift
        label=$1
    elif [ "$1" = "-h" ] || [ "$1" = "--help" ]; then
        print_usage
        exit 0
    else
        print_usage
        exit 1
    fi
    shift
done


# check label
if [ -z "$label" ]; then
    echo "The label can NOT be empty."
    exit 1
fi

# check size
if echo $size | grep -q "^[0-9][0-9]*$"; then
    if [ $size -le 1 ]; then
        echo "Invalid size $size"
        exit 1
    fi
else
    echo "Invalid size $size"
    exit 1
fi


# check file system type
# nodiscard must be set for ext2/3/4
# -K must be set for xfs
if echo $fstype | grep -q '^ext[234]$'; then
    fsopt='-E nodiscard'
elif [ "$fstype" = "xfs" ]; then
    fsopt='-K'
else
    echo "unsupported file system $fstype"
    exit 1
fi

# 00->ff avoid sparse file
dd if=/dev/zero  bs=1M count=$size | tr '\000' '\377' > $persistence
sync

freeloop=$(losetup -f)

losetup $freeloop $persistence

mkfs -t $fstype $fsopt -L $label $freeloop

sync

losetup -d $freeloop

В распакованной папке Ventoy запускаем скрипт: sudo ./CreatePersistentImg.shНа боковой панели файлового менеджера Caja во вкладке Устройства  должен появиться casper-rw. Если открыть это устройство с помощью приложения Mate Disk Image Mounter, то оно будет пустым. Аналогично можно посмотреть, как будет выглядеть dat-образ на флешке, после загрузки с /ventoy/persistence/*.dat. Там уже будет сформирована структура каталогов для сохранения изменений.
Копируем созданный образ matuntu_F.dat на флешку в /persistence. У меня на флешке Ventoy создано 3 каталога: /iso (в нём образы .iso), /persistence (файлы persistence.dat) и /ventoy (файлы ventoy.json, ventoy_grub.cfg и папка theme).
Вячеслав поделился темой оформления Ventoy с текстом theme.txt (разрешение экрана и размер шрифта нужно подставить под свои параметры). Мной в файл ventoy.json внесено разрешение экрана FullHD и в три раза уменьшен размер шрифтов.
Примерный текст ventoy.json
{
    "control": [
        { "VTOY_DEFAULT_MENU_MODE": "0" },
        { "VTOY_DEFAULT_SEARCH_ROOT": "/iso" },
        { "VTOY_MENU_TIMEOUT": "30" },
        { "VTOY_DEFAULT_IMAGE": "/iso/Matuntu-F-08-20.iso" }
    ],

    "theme": {
        "file": "/ventoy/theme/theme.txt",
        "gfxmode": "1920x1080",
        "fonts": [
            "/ventoy/theme/MonofurForPowerline-12.pf2",
            "/ventoy/theme/URWGothicBook-9.pf2"
        ]
    },
   
    "persistence" : [
        {
            "image": "/iso/Matuntu-F-08-20.iso",
            "backend": "/persistence/matuntu_F.dat"
        }
    ],

    "menu_alias" : [
        {
            "image": "/iso/Matuntu-F-08-20.iso",
            "alias": "F 20.08"
        },
        {
            "image": "/iso/Matuntu-B32-07-20.iso",
            "alias": "B32 20.07"
        },
        {
            "image": "/iso/Matuntu-B64-06-20.iso",
            "alias": "B64 20.06"
        },
        {           
            "image": "/iso/Matuntu-X64-03-20.iso",
            "alias": "X64 20.03"
        },
        {
            "image": "/iso/ubuntu-mate-20.04.1-desktop-amd64.iso",
            "alias": "Mate 20.04.1"
        }
    ],

    "menu_class" : [
        {
            "key": "Matuntu-",
            "class": "matuntu"
        },
        {
            "key": "ubuntu-m",
            "class": "ubuntu-mate"
        }
    ]
}

В результате при первом запуске в меню Ventoy было предложено два пункта загрузки образа: без сохранения настроек и с сохранением. При выборе второго пункта все изменения, внесённые в живой сессии, при повторной загрузке сохранились.

В дальнейшем загрузка образа Matuntu-F открывает два пункта:
  • Boot without persistence
  • Boot with /persistence/matuntu_f.dat

Огромное спасибо Вячеславу за помощь в освоении возможностей Ventoy.
« Последнее редактирование: 10 Октября 2020, 21:09:53 от vita »
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3071
  • Что бы ни случилось, всё будет хорошо!
Спасибо за опыт! Попробовал - повторяемо.
Тем более, что в UNetbootin раздел создаётся, но сохранёнка с некоторых пор перестала "функциклировать"  :) MKUSB сложноват и работает только с одним образом.
Ventoy - наше всё!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3071
  • Что бы ни случилось, всё будет хорошо!
Продолжая свои эксперименты с persistence на флешке, добрался до своих избранных Appimages. То, что они запускаются и работают, заслуга файловой системы EXT. Так что моя коллекция приложений нормально работает в сохранёнке.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
На практике оказалось очень удобным иметь на загрузочной флешке файл сохранения. Например, добавила в живой сессии пакет LibreOffice.appimage и теперь можно работать с документами в офисе без его установки на любом компьютере  :)

Всё "наработанное" доступно из сохранённого файла для просмотра и копирования в установленной системе. Достаточно примонтировать флешку Vernoy, найти файл с расширением .dat и войти в нужный для просмотра каталог.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
На сайте проекта приводится разъяснение о создании Ventoy Persistence на английском языке. Поэтому для русскоязычных пользователей попробую разместить информацию в переводе на форуме.
Цитата: Введение
Многие дистрибутивы (например, Ubuntu / MX / LinuxMint ...) предоставляют возможность сохранения. Это позволяет сохранить любые изменения, которые вы вносите в действующую систему, чтобы они всё ещё присутствовали при следующей загрузке в неё. Обычно для этого мы создаем отдельный раздел, что не так гибко.
Теперь Ventoy представляет здесь новую функцию. Вам не нужно создавать какой-либо раздел, нет необходимости добавлять постоянный параметр загрузки. Просто поместите файл данных сохраняемости в 1-й раздел и сообщите Ventoy с помощью конфигурации json, и всё.
Вы можете одновременно размещать много разных файлов данных для разных файлов iso. Вы также можете совместно использовать файл данных между разными iso-файлами, если он поддерживается дистрибутивами. Даже если вы можете указать более одного файла данных для файла iso, Ventoy предоставит меню для выбора перед загрузкой.
Для упорядочения размещения файлов на флешке Ventoy создаю каталоги iso для размещения образов и persistence - для файлов сохранения.
На странице описания плагина Ventoy Persistence в разделе Конфигурация Json определен persistence массив для описания конфигурации в /ventoy/ventoy.json
ventoy.json
{
    "persistence": [
        {
            "image": "/ISO/MX-19.1_x64.iso",
            "backend": "/persistence/MX-19.1_x64.dat"
        },
        {
            "image": "/ISO/ubuntu-20.04-desktop-amd64.iso",
            "backend": [
                "/persistence/ubuntu_20.04_1.dat",
                "/persistence/ubuntu_20.04_2.dat",
                "/persistence/ubuntu_20.04_3.dat"
            ],
            "autosel": 2
        },       
        {
            "image": "/linuxmint-19.3-xfce-64bit.iso",
            "backend": "/persistence/linuxmint_19.03.dat",
            "autosel": 1           
        }
    ]
}
КлючТипОписание
imageSTRINGПолный путь к ISO-файлу
backendSTRING или ARRAYПуть к файлу образа сохраняемости для файла iso. Может быть одной строкой или массивом строк.
autoselINTEGER   НеобязательныйЕсли вы установите его, это означает, что вы автоматически выберете соответствующую опцию в меню подсказки. И меню подсказки НЕ будет отображаться.
0: загрузка без файла образа сохраняемости
1: загрузка с 1-м файлом образа сохраняемости
2: загрузка со 2-м файлом образа сохраняемости
Цитата: Рекомендации проекта
Создавая файл образа и копируя его на USB, позаботьтесь о буфере. (можно использовать синхронизацию для сброса данных на диск).
В разных дистрибутивах по умолчанию используются разные метки, например, ubuntu использует casper-rw, а MX Linux использует MX-Persist, вы можете использовать -l, чтобы установить его.
Файл образа сохранения должен быть помещен в первый раздел (или /persistence). Он может находиться в корневом каталоге или любом подкаталоге.
После того, как вы создали файл образа сохранения, вы можете сжать и сохранить его как шаблон на вашем компьютере (очень маленький после сжатия).
В установленной Matuntu-F-8-20 в примонтированном с помощью Mate Disk Image Mounter файле сохранения в устройстве casper-rw содержатся два каталога upper и work.
Каталог upper содержит структуру системы, близкую к установленной системе. В домашней папке находятся файлы сохранения, доступные для просмотра и копирования,

При этом в дисковой утилите первый раздел флешки Ventoy, упомянутый на странице проекта, действительно выглядит единым (неделимым) в фс exFAT,

хотя созданный мною файл сохранения по факту в файловой системе ext2.
Это наблюдается в процессе инсталляции Matuntu-F-08-20 из загруженного образа с сохранением

Надеюсь, изложенное поможет более полному освоению инструмента создания мультизагрузочной флешки Ventoy.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3071
  • Что бы ни случилось, всё будет хорошо!
Полдня назад отрелизилась версия Ventoy 1.0.24 с небольшими исправлениями.
Цитата: sudo sh Ventoy2Disk.sh -u /dev/sdb
Update Ventoy  1.0.22 ===> 1.0.24
Для программы, написанной на теле бутового вируса, её возможности поражают.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
Октябрь не закончился, а тем временем ещё два выпуска Ventoy состоялись:
  • Ventoy 1.0.25 release
  • Ventoy 1.0.26 release
В новых версиях:
  • Добавлен плагин списка образов.
  • Оптимизация для загрузки виртуального диска Linux в режиме Legacy BIOS.
  • Поддержка различных тем для режима Legacy BIOS и режима UEFI.
  • Поддержка двухрежимных плагинов.
  • Отображение предупреждающего сообщения, если в ventoy.json обнаружена синтаксическая ошибка.
  • Оптимизация подсказки в Ventoy2Disk.sh и другие незначительные изменения.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
Вчера состоялся релиз Ventoy 1.0.29 c незначительными изменениями.
Образ Matuntu по-прежнему успешно загружается  :)
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3071
  • Что бы ни случилось, всё будет хорошо!
Намедни видел руководство для Windows-юзеров по сабжу. Конечно, M2 использовать как флешку... :o Дешевле купить скоростную флешку. По скорости и то и другое ограничено интерфейсом USB 3.0. А в остальном обзор действий для пользователя достаточно подробный.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
Ventoy по-прежнему продолжает развиваться. Уже доступна версия 1.0.30, в которую добавлены новшества:
- Добавлена экспериментальная поддержка IA32 UEFI (ia32-efi).
- Добавлена экспериментальная поддержка ARM64 UEFI (aarch64-efi).
- Расширена опция двойного режима до опции мультирежима.
- Добавлен простой плагин пароля.
- Исправлена ошибка в Ventoy2Disk.exe для диска 2 ТБ + и другие.

Для применения этого инструмента мне достаточно только плагина настройки темы и файла сохранения, который, как показала практика, должен быть размером не менее 4 ГБ. Удобным оказалось в Live-режиме запускать нужные приложения из пакетов AppImages. Они легко запускаются и интегрируются в меню. В файле Persistence сохраняются конфиги и результаты работы.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
Со значительными обновлениями состоялись последующие выпуски Ventoy, последний Ventoy 1.0.33 release от 21 января.
Некоторые пользователю задаются вопросом загрузки образов с карты из кардридера. Как правило, встроенные кардридеры подключаются по разъёму pci и предназначены для расширения дискового пространства компьютера. Загрузочная функция с таких кардридеров не предусматривалась изначально. В то же время с внешних кардридеров, подключённых в USB разъём, загрузка с карт происходит так же, как и с других загрузочных флешнакопителей.

Интереса ради установила Ventoy сначала на карту SD размером 64 ГБ и в процессе записи были предупреждения об ошибках, несмотря на успешное завершение операции.
Установка Ventoy с ошибками
sudo sh Ventoy2Disk.sh -i /dev/sdb
[sudo] пароль для vita:
**********************************************
      Ventoy: 1.0.33  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************
Disk : /dev/sdb
Size : 62 GB
Style: MBR
Attention:
You will install Ventoy to /dev/sdb.
All the data on the disk /dev/sdb will be lost!!!
Continue? (y/n) y
All the data on the disk /dev/sdb will be lost!!!
Double-check. Continue? (y/n) y
Create partitions on /dev/sdb by parted in MBR style ...
Done
mkfs on disk partitions ...
create efi fat fs /dev/sdb2 ...
mkfs.fat 4.1 (2017-01-24)
success
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
writing data to disk ...
sync data ...
esp partition processing ...
mount: /home/vita/ventoy-1.0.33/tmp_mnt: wrong fs type, bad option, bad superblock on /dev/sdb2, missing codepage or helper program, or other error.
mount: /home/vita/ventoy-1.0.33/tmp_mnt: wrong fs type, bad option, bad superblock on /dev/sdb2, missing codepage or helper program, or other error.
mount: /home/vita/ventoy-1.0.33/tmp_mnt: wrong fs type, bad option, bad superblock on /dev/sdb2, missing codepage or helper program, or other error.
mv: не удалось выполнить stat для './tmp_mnt/EFI/BOOT/grubx64_real.efi': Нет такого файла или каталога
mv: не удалось выполнить stat для './tmp_mnt/EFI/BOOT/grubia32_real.efi': Нет такого файла или каталога
umount: ./tmp_mnt: not mounted.
umount: ./tmp_mnt: not mounted.
umount: ./tmp_mnt: not mounted.
Install Ventoy to /dev/sdb successfully finished.

В связи с ошибкой при создании загрузочного раздела компьютер с UEFI не увидел эту карту, а с BIOS нормально загрузил записанный образ. Эта ошибка была вызвана некачественной картой, приобретённой на Aliexpress.

При записи Ventoy на качественную карту не было уведомлений об ошибках.
Безошибочная инсталляция Ventoy
sudo sh Ventoy2Disk.sh -i /dev/sdb
[sudo] пароль для vita:
**********************************************
      Ventoy: 1.0.33  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************
Disk : /dev/sdb
Size : 29 GB
Style: MBR
Attention:
You will install Ventoy to /dev/sdb.
All the data on the disk /dev/sdb will be lost!!!
Continue? (y/n) y
All the data on the disk /dev/sdb will be lost!!!
Double-check. Continue? (y/n) y
Create partitions on /dev/sdb by parted in MBR style ...
Done
mkfs on disk partitions ...
create efi fat fs /dev/sdb2 ...
mkfs.fat 4.1 (2017-01-24)
success
mkexfatfs 1.3.0
Creating... done.
Flushing... done.
File system created successfully.
writing data to disk ...
sync data ...
esp partition processing ...
Install Ventoy to /dev/sdb successfully finished.
Образы с этой карты успешно загрузились на компьютере с UEFI.
Флешка с ранее установленным Ventoy 1.0.29 штатно обновилась до последней версии
Обновление Ventoy на ранее созданном флешнакопителе
sudo sh Ventoy2Disk.sh -u /dev/sdb
[sudo] пароль для vita:
**********************************************
      Ventoy: 1.0.33  x86_64
      longpanda admin@ventoy.net
      https://www.ventoy.net
**********************************************
Upgrade operation is safe, all the data in the 1st partition (iso files and other) will be unchanged!
Update Ventoy  1.0.29 ===> 1.0.33   Continue? (y/n)y
Update Ventoy to /dev/sdb successfully finished.

Такое развёрнутое сообщение создано для конкретного представления о происходящих процессах работы Ventoy с флешнакопителями.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3071
  • Что бы ни случилось, всё будет хорошо!
Нынче во время празднования Нового китайского года разработчик программы выпустил именную версию Ventoy 1.0.35 release (Happy Spring Festival) в переводе Фестиваль Счастливой Весны.
Изменений не так много, но программа как и прежде работает стабильно.

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4803
  • Да будет свет!
...программа как и прежде работает стабильно.
Моя загрузочная флешка с Ventoy 1.0.35 при загрузке Matuntu-F неожиданно выдала такой результат  :o

Обновила её до Ventoy 1.0.37 и проблема с загрузкой этой же сборки полностью исчезла.
Структура распакованного каталога значительно изменилась расширением содержимого

Все изменения указаны на домашней странице проекта.
Делай с нами, делай как мы, делай лучше нас!

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 3071
  • Что бы ни случилось, всё будет хорошо!
Пропущен релиз Ventoy 1.0.36 release,с которого появился Экспериментальный графический интерфейс Linux на основе веб-браузера. Макет и использование пользовательского интерфейса не отличаются от Ventoy2Disk.exe в Windows. Он облегчает выбрать необходимые параметры для загрузочной флешки.
Как и прежде в распакованном каталоге на примере Ventoy 1.0.36 в Matuntu-F открыл терминал и выполнил команду: sudo sh VentoyWeb.sh
вывод после введения пароля суперпользователя
===============================================================
  Ventoy Server 1.0.36 is running ...
  Please open your browser and visit http://127.0.0.1:24680
===============================================================

################## Press Ctrl + C to exit #####################
Скопировав полученный адрес в моём случае http://127.0.0.1:24680 , вставил его в адресную строку веб-браузера и открылась вкладка с графическим интерфейсом Ventoy, из выпадающего меню Languages выбрал русский язык.

Флешка с Ventoy 1.0.33 автоматически определилась как устройство и в результате быстро её обновил до 1.0.36.
Процесс обновления

В настройках подготовки флешки доступны опции:
  • Поддержка Secure Boot
  • Стиль разметки разделов
  • Дополнительный раздел
  • Удалить Ventoy
  • Показать все устройства

По окончании работы с флешкой нужно закрыть вкладку Ventoy, завершить процесс в открытом терминале Ctrl+C и закрыть терминал.
Аналогично обновил флешку до последней версии 1.0.37.