As a complement to installing GRUB on an USB stick and installing bootable ISO images as plain files on it, I have tried to configure the boot of Debian Live directly from the global GRUB menu instead of invoking its own GRUB menu, and to enable persistence. I have been successful for the first part:
menuentry "Debian GNU/Linux Live (kernel 5.10.0-3-amd64)" {
iso_path=/boot/debian-live-testing-20210215-amd64-kde+nonfree.iso
export iso_path
loopback loop $iso_path
set root=(loop)
set loopback="findiso=${iso_path}"
export loopback
linux /live/vmlinuz-5.10.0-3-amd64 boot=live components \
locales=fr_FR.UTF-8 keyboard-model=pc105 keyboard-layouts=fr \
persistence persistence-path=/boot \
splash quiet "${loopback}"
initrd /live/initrd.img-5.10.0-3-amd64
}
My attempt for persistence involved creating en ext4 filesystem in a file boot/persistence with a single file persistence.conf containing “/ union”, but it had no effect, I could not find useful diagnostic information and I do not have time to investigate right now.