Для создания файла образа нужно запустить скрипт 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.