Самое главное, чтобы она не грузила весь ISO в память. А то это во первых долго, а во вторых памяти в итоге может и не хватить, если машина слабая.
Стартеркиты в режиме загрузки через MBR, с опцией без сохранения сессии, по-умолчанию не грузят образ в память, используя параметр lowmem. Но и в режиме с сохранением сессии, ничто не мешает добавить lowmem в параметры загрузки.
такие решения отталкивают именно из за добавления еще одной прослойки виртуализации.
Образ в памяти не виртуализация.
Теоретически, после загрузки лайва с образом в памяти, должна использоваться не система с флешки, а система в памяти. Скорость доступа и скорость выполнения быстрее если доступ к файлам системы идёт не к накопителю по usb, а к памяти. Оперативная память, самый быстрый "накопитель".
Такое решение конечно проще, но меня такие решения отталкивают именно из за добавления еще одной прослойки виртуализации. У нас и так загрузчик, initrd и сама файловая система - это три уровня виртуализации.
initrd не виртуализация. Это то же самое что и ram-диск в *dos. Но с другим наполнением и другим целевым назначением.
На AT286 например, рам-диск иногда содержал минимально необходимый набор приложений и утилит, который на мелких файлах, с математическим сопроцессором, по скорости выполнения может и сегодня поспорить с современной системой на ssd.
initrd, это ram-disk инициализирующий загрузку основной системы, - init(ialization)-r(am)-d(isk).
Например на загрузке системы xfce-sysv, в которой нет плимута, сплешей и все сообщения начиная с рам-диска доступны в tty1 для полного контроля загрузки системы, сообщение "INIT: Running init (/sbin/init)" пишет не основная система, а рам-диск инициализации, передавая управление загрузкой основной системе:
# tail -n 4 /tmp/initrd/etc/rc.d/rc.sysexec
msg "INIT: Running init ($INIT)"
# Run system init with arguments. Goodbye!
exec runas /sbin/init /bin/environ -cf /.initrd/kernenv /sbin/switch_root "$rootmnt" "$INIT" "$@"
/sbin/init в свою очередь, может быть или файлом (в системах на sysvinit) или симлинком (в системах на systemd):
# file /sbin/init
/sbin/init: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
# ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 сен 3 16:38 /proc/1/exe -> /sbin/init
В системах на systemd, /proc/1/exe указывал бы на /lib/systemd/systemd.
В зависимости от того, что такое /sbin/init, файл или симлинк, им и передаёт управление загрузкой рам-диск инициализации.
Это же и объясняет, почему init в системе, это PID 1.