LINUX.ORG.RU

История изменений

Исправление andytux, (текущая версия) :

Заодно, решил посмотреть debian-live-11.5.0-amd64-lxde.iso.

Ближе к параметрам. Этот исо-образ «loopback-bootable». Эту технику придумали для упрощения загрузки из исо-образа. Суть в том, что в образе есть файл loopback.cfg. Это конфиг для загрузки именно из исо-образа. Собственно, груб передает управление этому файлу. Если нужны параметры, то смотри в этом файле. Например, никаких «iso-path/filename=», используется «findiso=».

Код нашел этот файл, показал меню. Выбрал запуск «живой системы» - система загрузилась. Выбрал «Graphical Debian Installer». Установщик не смог найти «установчный диск», как и в случае с образом «нет-инсталл».

Распаковал содержимое образа в каталог /opt/debian, чтобы проверить загрузку из «набора файлов». По опыту, сразу заменил инитрд в каталоге d-i файлом из «нет-инсталл hdmedia».

«Живая система» не запустилась, застопорилась на каком-то баге в i915, намекал на фирмварь, не стал углубляться.

Из «набора файлов» выбрал загрузку «Debian Installer». Система запустилась, инсталлер нашел «установочный диск», продолжил задавать вопросы, на этом установку прервал.

Основное следствие. Дебиановский образ, расчитанный на загрузку из исо-образа, использующий конфиг из этого самого образа не смог найти «установочный диск».

Исходная версия andytux, :

Заодно, решил посмотреть debian-live-11.5.0-amd64-lxde.iso.

Теперь код такой:

  submenu 'Debian live (login/pass: user/live)' {
	src='/opt'; key="boot=live noprompt quiet --"
	iso_path="${src}/kali-linux-2021.2-live-amd64.iso"
	iso_path='debian-live-500-i386-standard.iso'; version='1'
	iso_path='debian-live-6.0.10-i386-lxde-desktop.iso'
	iso_path="${src}/debian-live-7.11.0-i386-lxde-desktop.iso"; version='1'
	iso_path="${src}/debian-live-8.11.0-i386-lxde-desktop.iso"; version='1'
	iso_path="${src}/debian-live-9.0.0-i386-lxde.iso"; version='-4.9.0-3-686'
	iso_path="${src}/debian-live-9.12.0-i386-lxde.iso"; version='-4.9.0-12-686'
	iso_path="${src}/debian-live-10.4.0-i386-lxde.iso"; version='-4.19.0-9-686'
	iso_path="${src}/debian-live-11.5.0-i386-standard.iso"; version='-5.10.0-18-686'
	iso_path="${src}/debian-live-11.5.0-amd64-lxde.iso"; version='-5.10.0-18-amd64'
	iso_path="${src}/debian-11.5.0-amd64-netinst.iso"; version=''
	#version='1'
	#insmod regexp; insmod part_gpt
	root='x'; search --no-floppy --set --file "${iso_path}"
	if [ "${root}" = 'x' ]
	  then	src="${src}/debian"
		if regexp "amd64-netinst" "${iso_path}"; then search -n -s -f "${src}/install.amd/vmlinuz${version}"; fi
		if regexp "an-live-" "${iso_path}"; then search -n -s -f "${src}/live/vmlinuz${version}"; fi
		if [ "${root}" = 'x' ]
		  then	src='Debian live'
		  else	if [ -e "${src}/live-rw" ]; then key="persistent persistent-path=${src} ${key}"; fi
			key="elevator=noop ignore_uuid live-media-path=${src} ${key}"
			if regexp "amd64-netinst" "${iso_path}"; then src="${src}/install.amd"; fi
			if regexp "an-live-" "${iso_path}"; then src="${src}/live"; fi
			if regexp "bian-live-1[01]" "${iso_path}"; then key="components ${key}"; fi
			if regexp "bian-live-[89]" "${iso_path}"; then key="components ${key}"; fi
			if regexp "bian-live-[67]" "${iso_path}"; then key="config ${key}"; fi
			if regexp "bian-live-5" "${iso_path}"; then key="union=aufs ${key}"; fi
			if regexp "kali-linux-2016" "${iso_path}"; then key="hostname=kali live-media=removable-usb noconfig=sudo username=root ${key}"; fi
			if regexp "amd64-net" "${iso_path}"
			  then if [ -e "${src}/initrd.img${version}" ]; then avinit="initrd ${src}/initrd.img${version}"; else avinit="initrd ${src}/initrd${version}.gz"; fi
			  else if [ -e "${src}/initrd.img${version}" ]; then avinit="initrd ${src}/initrd.img${version}"; else avinit="initrd ${src}/initrd${version}.img"; fi
			fi
			avload='linux'; src="${src}/vmlinuz${version} ${key}"
		fi
	  else	msg="Load $iso_path from $root"
		export iso_path; loopback loop ${iso_path}
		root=(loop)
		if regexp "amd64-netinst" "${iso_path}"; then src='/boot/grub/grub.cfg'; fi
		if regexp "an-live-" "${iso_path}"; then src='/boot/grub/loopback.cfg'; fi
		if [ -e "${src}" ]
		  then	avload='configfile'
			if regexp "debian-live-9.[09]" "${iso_path}"; then src='/boot/grub/grub.cfg'; fi
		  else	key="findiso=${iso_path} ${key}"; src='/live'
			if regexp "amd64-netinst" "${iso_path}"; then src='/install.amd'; fi
			if regexp "debian-live-1[01]" "${iso_path}"; then key="components ${key}"; fi
			if regexp "debian-live-[89]" "${iso_path}"; then key="components ${key}"; fi
			if regexp "debian-live-[67]" "${iso_path}"; then key="config ${key}"; fi
			if [ -e "${src}/initrd.img${version}" ]; then avinit="initrd ${src}/initrd.img${version}"; else avinit="initrd ${src}/initrd.gz"; fi
			avload='linux'; src="${src}/vmlinuz${version} ${key}"
		fi
	fi
	avboot 4
  }

Ближе к параметрам. Этот исо-образ «loopback-bootable». Эту технику придумали для упрощения загрузки из исо-образа. Суть в том, что в образе есть файл loopback.cfg. Это конфиг для загрузки именно из исо-образа. Собственно, груб передает управление этому файлу. Если нужны параметры, то смотри в этом файле. Например, никаких «iso-path/filename=», используется «findiso=».

Код нашел этот файл, показал меню. Выбрал запуск «живой системы» - система загрузилась. Выбрал «Graphical Debian Installer». Установщик не смог найти «установчный диск», как и в случае с образом «нет-инсталл».

Распаковал содержимое образа в каталог /opt/debian, чтобы проверить загрузку из «набора файлов». По опыту, сразу заменил инитрд в каталоге d-i файлом из «нет-инсталл hdmedia».

«Живая система» не запустилась, застопорилась на каком-то баге в i915, намекал на фирмварь, не стал углубляться.

Из «набора файлов» выбрал загрузку «Debian Installer». Система запустилась, инсталлер нашел «установочный диск», продолжил задавать вопросы, на этом установку прервал.

Основное следствие. Дебиановский образ, расчитанный на загрузку из исо-образа, использующий конфиг из этого самого образа не смог найти «установочный диск».