опция какая-то должна быть в загруженной наживую ?
При загрузке передается параметр ядра.
Автоматом при выключении сохраняются
Этот файл (casper-rw), с помошью оверлейной файловой системы, монтируется поверх корневой системы "живой *бунту".
В результате, все изменения попадают в этот файл сразу и постоянно. Если при перезагрузке будет найден и смонтирован этот файл, то получишь систему с изменеиями. Если этот файл удалить, то получишь обычную "живую *бунту."
Как это делает Унетботин, я не знаю. Я делаю так. Делаю только в случае загрузки из набора файлов, хотя нет никаких проблем, чтобы применить это при загрузке из исо-образа.
На разделе с ФС FAT32 (например на флешке) создаю каталог /opt/ub18. В него помещаю все, что нужно для этой версии "живой *бунту".
Копирую в него, например из образа, файлы casper/vmlinuz, casper/initrd, casper/filesystem.squashfs. Это все, что нужно для работы "живой системы".
Создаю файл casper-rw. Именно его ищет код из инитрд для подключения в качестве оверлейфс.
В файл grub.cfg добавляю код:
submenu '*buntu live' {
iso_path='/opt/rescatux-0.51b3.iso'
iso_path='/opt/super_grub2_disk_x86_64_efi_2.02s10.iso'
iso_path='/opt/runtu-lite-18.04.1-amd64_20180801.iso'
iso_path='/opt/ubuntu-10.04.4-desktop-i386.iso'
iso_path='/opt/ubuntu-16.04.4-desktop-amd64.iso'
iso_path='/opt/ubuntu-18.04-desktop-amd64.iso'
src='/opt/ub18'; key="boot=casper cdrom-detect/try-usb=true noprompt quiet --"
#version='.efi'
#insmod regexp; insmod part_gpt
root='x'; search -n -s -f "${iso_path}"
if [ "${root}" = 'x' ]
then if regexp "buntu-16.04.4" "${iso_path}"; then src='/opt/ub16'; fi
if regexp "buntu-10" "${iso_path}"; then src='/opt/ub10'; fi
search -n -s -f "${src}/casper/vmlinuz${version}"
if [ "${root}" = 'x' ]
then src='*buntu live'
else key="elevator=noop ignore_uuid live-media-path=${src}/casper ${key}"
if [ -e "${src}/casper-rw" ]; then key="persistent persistent-path=${src} ${key}"; fi
if regexp "buntu-18" "${iso_path}"; then key="--version=0 ${key}"; fi
if regexp "buntu-16" "${iso_path}"; then key="--version=016 ${key}"; fi
if regexp "buntu-10" "${iso_path}"; then key="--version=0 4 i915.modeset=1 ${key}"; fi
if [ -e "${src}/casper/initrd${version}" ]; then avinit="initrd ${src}/casper/initrd${version}"; else avinit="initrd ${src}/casper/initrd.lz"; fi
avload='linux'; src="${src}/casper/vmlinuz${version} ${key}"
fi
else msg="Load $iso_path from $root"
export iso_path; loopback loop ${iso_path}
root=(loop)
if [ -e "/boot/grub/loopback.cfg" ]
then avload='configfile'; src='/boot/grub/loopback.cfg'
else key="file=/cdrom/preseed/ubuntu.seed iso-scan/filename=${iso_path} ${key}"
if regexp "buntu-10" "${iso_path}"; then key="i915.modeset=1 ${key}"; fi
if [ -e "${src}/casper/initrd${version}" ]; then avinit="initrd ${src}/casper/initrd${version}"; else avinit="initrd ${src}/casper/initrd.lz"; fi
avload='linux'; src="${src}/casper/vmlinuz${version} ${key}"
fi
fi
if [ "${root}" = 'x' ]; then msg="$src not exist!"; else if [ -z "${msg}" ]; then msg="Load $src from $root"; fi; fi
echo "$msg"; sleep -v 4
if [ -n "${avload}" ]; then ${avload} ${src}; fi
if [ -n "${avinit}" ]; then ${avinit}; fi
}
Если есть исо-образ, то код запускает систему из исо-образа. Есди исо-образа нет, то запускается система из "набора файлов".
Вот эта строка проверяет наличие файла casper-rw:
if [ -e "${src}/casper-rw" ]; then key="persistent persistent-path=${src} ${key}"; fi
Если файл существует, то добавляет к параметрам ядра параметры, требующиеся для режима "persistent".