ISOLINUX Live Boot Disk - Ausführen von Skripten über das Menü

ISOLINUX Live Boot Disk - Ausführen von Skripten über das Menü

Ich versuche, eine Linux-Bootdiskette zu erstellen (ich habe Fennix aufgrund der geringen Größe und der reinen Terminalschnittstelle gewählt). Jetzt funktioniert die Bootdiskette, sie lädt mich in Linux und ich kann die interne Festplatte mounten usw., also alles gut soweit. Allerdings funktioniert das Menü bei mir über ISOLINUX.CFG, ich möchte jedoch an jede Menüauswahl ein Skript anhängen. Das Skript kopiert 2 Dateien von der Live-Diskette auf die Festplatte. Ich habe Probleme, das Menü dazu zu bringen, die Skripte mit init= zu starten, da es die Skriptdateien scheinbar nie auf der Festplatte findet (ich bin nicht sicher, wo ich sie ablegen muss, um darauf zugreifen zu können, habe es in mehreren Verzeichnissen versucht).

Beispiel einer Menüoption unten

LABEL finnix

MENU LABEL Update installieren

TEXTHILFE

Kopiert die 2 ini-Dateien auf Ihre Festplatte

ENDETEXT

KERNEL boot/x86/linux init=copy1.bs

ANHÄNGEN initrd=boot/x86/initrd.xz vga=791 nomodeset quiet

Kann mir jemand sagen, wie ich nach dem Booten auf die Dateien der Live-CD zugreifen kann und wie das Menü aktualisiert werden kann, um nach einer Auswahl auf diese Skriptdateien zuzugreifen?

Hoffe, das oben Gesagte macht Sinn,

Danke!

Antwort1

In isolinux.cfgwerden die Boot-Optionen in die Zeile APPEND und nicht in die Zeile KERNEL verschoben. Sie init=copy1.bssollten also stattdessen in die Zeile APPEND wechseln.

Und wenn Sie die init=Option verwenden, bedeutet dies, dass Ihr Shell-Skript als Prozess Nr. 1 ausgeführt wird: Anstatt die normale Umgebung mit z. B. mehreren virtuellen Konsolen einzurichten, wird nur dieses eine Skript ausgeführt ... und wenn dieses Skript beendet wird, gerät der Kernel in Panik (= stürzt ab), da Prozess Nr. 1 beendet wurde.

Abhängig davon, wie genau die Finnix-Initrd-Datei aufgebaut ist, init=kann die Verwendung dieser Option Ihre Skripte möglicherweise auch in einer Situation starten, in der sie einige oder alle Funktionen der Finnix-Startskripte duplizieren müssen, bevor sie tatsächlich etwas Nützliches tun können.

Vielleicht möchten Sie stattdessen Ihren eigenen benutzerdefinierten Startparameter erfinden. Die Startparameter werden in angezeigt, /proc/cmdlineauch wenn sie dem Kernel unbekannt sind, und Sie können einfach ein Startskript erstellen, das liest /proc/cmdline, Ihren benutzerdefinierten Parameterwert von dort auswählt und ihn dann verwendet, um ein anderes Skript an einem Ort Ihrer Wahl auszuführen. Dieser Ansatz ist möglicherweise einfacher zu debuggen als die Verwendung des Standardparameters init=.

Das Finnix-Root-Dateisystem scheint sich in der finnix/arch/x86/root.imgDatei zu befinden. Ich habe im Moment nicht die Zeit, es vollständig zu analysieren, aber ich vermute, dass es initrd.xzeine RAM-Disk einrichtet und den Inhalt root.imgdort hineinlädt, sodass die CD während der Verwendung von Finnix ausgeworfen werden kann.

Um Ihre Skripte in die root.imgDatei zu bekommen, mounten Sie die Image-Datei (es ist ein Squashfs-Dateisystem-Image), kopieren den Inhalt in ein anderes Verzeichnis, fügen Ihre eigenen Dateien hinzu und verwenden dann den mksquashfsBefehl (im squashfs-toolsPaket), um eine neue Image-Datei zu erstellen.

verwandte Informationen