Собственно вариант с grub-ом:
Находим любую партицию со свободным местом под исошку на файловой системе не ntfs(для grub2 можно и ntfs) если есть opensuse, скорее всего /home отдельной партицией.
Монтируем ее если не примонтирована.
в корне подмонтированой партиции создаем директорию, допустим ${MOUNTPOINT}/cldg
копируем в нее нужный iso-образ.
Из образа из /boot вытаскиваем в ${MOUNTPOINT}/cldg/boot вытаскиваем vmlinuz и initrd
В grug:0 добавляем следующую запись
title calculate iso
root (hdX,Y)
## выше -^^ укажите реальный номер партиции
kernel /cldg/boot/vmlinuz root=/dev/ram0 init=/linuxrc looptype=squashfs unionfs
doload=squashfs,unionfs,isofs,<МОДУЛЬ_ДЛЯ_ФС_НА_КОТОРОЙ_iso-шка_К_ПРИМЕРУ_ext4>
loop=/livecd.squashfs nodevfs cdroot scandelay=3 scratch docache udev noresume doscsi
calculate=keymap:ru_RU,lang:ru_RU,timezone:Europe/Moscow
video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1 console=tty1
isoboot=/cldg/<НАЗВАНИЕ ИСОШКИ>
initrd /cldg/boot/initrd
В данном случае все параметры как обычно при загрузке из LiveCD. Лишь добавляется isoboot=/cldg/<НАЗВАНИЕ ИСОШКИ>
Для удобства прочтения я одну длинную строку разбил на множество подстрок заканчивающихся обратным слешем(\) поскольку такое возможно во многих конфигах. Не уверен насколько подобная форма записи корректна для grub.conf, так что - если что объедините это все в одну строку.
Если у вас не grub2, и вам не интересно как в нем можно было бы сделать проще - дальше можете не читать, остальным надеюсь будет интересно.
В grub:2 есть возможность монтировать файловую систему в файле. Слегка модифицировав приведу пример записи menuentry из своего grub.cfg на флешке. Не выкладываю весь grub.cfg, поскольку он у меня еще откровенно сырой. Но обо всем по порядку:
menuentry "boot ${calculate_iso}" --class calculate --class gnu-linux --class gnu --class os {
set calculate="calculate=keymap:ru_RU,lang:ru_RU,timezone:Europe/Moscow"
set calculate_iso=/clgd/<ИМЯisoШКИ>
echo "Set loopback device ${calculate_iso}"
loopback loop "${calculate_iso}"
echo 'Load kernel...'
linux (loop)/boot/vmlinuz "isoboot=${calculate_iso}" root=/dev/ram0 init=/linuxrc
looptype=squashfs unionfs doload=squashfs,unionfs,isofs,ext4 loop=/livecd.squashfs
nodevfs cdroot video=uvesafb:ywrap,1024x768-32@60,mtrr:3,splash=silent,theme:tty1
console=tty1 udev noresume doscsi scandelay=3 scratch docache ${calculate}
echo 'Load initrd'
initrd (loop)/boot/initrd
Весь конфиг не выкладываю, поскольку в нем есть мои попытки(пока безуспешные) создать подменю с выбором lang, keymap, timezone и video и самое главное - iso-шек из тех, что на данный момент находятся в нужной директории.