ISOLINUX Live Boot Disk — запуск скриптов из меню

ISOLINUX Live Boot Disk — запуск скриптов из меню

Я пытаюсь создать загрузочный диск Linux (я выбрал Fennix из-за его небольшого размера и интерфейса только для терминала). Теперь загрузочный диск работает, он загружает меня в Linux, и я могу монтировать внутренний жесткий диск и т. д., так что все хорошо. Однако у меня работает меню через ISOLINUX.CFG, но я хочу прикрепить скрипт к каждому выбору меню. Скрипт скопирует 2 файла на жесткий диск с Live-диска. Мне сложно заставить меню запускать скрипты с помощью init=, так как оно, похоже, никогда не находит файлы скриптов на диске (я не уверен, куда их поместить, чтобы получить к ним доступ, пробовал несколько каталогов).

Пример меню ниже

ЭТИКЕТКА финникс

МЕНЮ LABEL Установить обновление

ТЕКСТОВАЯ ПОМОЩЬ

Копирует 2 ini-файла на жесткий диск.

КОНЕЦТЕКСТА

ЯДРО boot/x86/linux init=copy1.bs

ДОБАВИТЬ initrd=boot/x86/initrd.xz vga=791 nomodeset quiet

Может ли кто-нибудь указать мне правильное направление, как получить доступ к файлам с LiveCD после загрузки и как можно обновить меню, чтобы получить доступ к этим файлам скриптов после того, как сделан выбор?

Надеюсь, вышеизложенное имеет смысл.

Спасибо!

решение1

В isolinux.cfg, параметры загрузки идут в строку APPEND, а не в строку KERNEL. Поэтому init=copy1.bsвместо этого вам следует идти в строку APPEND.

А если вы используете эту init=опцию, это означает запуск вашего скрипта оболочки как процесса №1: вместо настройки обычной среды, например, с несколькими виртуальными консолями, он запустит только этот один скрипт... и как только этот скрипт завершится, ядро ​​впадет в панику (= аварийно завершится), поскольку процесс №1 завершится.

В зависимости от того, как именно построен файл Finnix initrd, использование этой init=опции может также привести к запуску ваших скриптов в ситуации, когда им придется дублировать некоторые или все функции стартовых скриптов Finnix, прежде чем они смогут сделать что-то полезное.

Вместо этого вы можете придумать свой собственный параметр загрузки. Параметры загрузки появятся, /proc/cmdlineдаже если они неизвестны ядру, и вы можете просто создать сценарий запуска, который считывает /proc/cmdline, выбирает оттуда значение вашего пользовательского параметра, а затем использует его для выполнения другого сценария в выбранном вами месте. Такой подход может быть проще для отладки, чем использование стандартного init=параметра.

Корневая файловая система Finnix, похоже, находится внутри finnix/arch/x86/root.imgфайла. У меня нет времени полностью проанализировать ее прямо сейчас, но я предполагаю, что она initrd.xzнастраивает RAM-диск и загружает содержимое root.imgтуда, так что CD можно извлечь при использовании Finnix.

Чтобы поместить скрипты внутрь root.imgфайла, вам нужно смонтировать файл образа (это образ файловой системы squashfs), скопировать его содержимое в другой каталог, добавить в него свои файлы, а затем использовать команду mksquashfs(in squashfs-toolspackage) для создания нового файла образа.

Связанный контент