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

Оффлайн vita

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

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

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3800
  • Да будет свет!
Для создания файла образа нужно запустить скрипт 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

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

Оффлайн ivm

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

Оффлайн vita

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

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

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3800
  • Да будет свет!
На сайте проекта приводится разъяснение о создании 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

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

Оффлайн vita

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

Оффлайн vita

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