Rorschachs Tagebuch

Multiboot-CDs mit multicd.sh erstellen März 12, 2010

Filed under: Linux,OpenSource,Softwarevorstellung — Rorschach @ 15:57
Tags: , , ,

Ich will euch hier mal kurz multicd.sh vorstellen. Dies ist ein Bash-Skript, welches unterschiedliche Live-CDs mit Hilfe von Plugins und isolinux zu einer CD zusammen baut. Es erstellt also eine Multiboot-CD .

Rescue-CD Screenshot
Welche Distributionen im Moment von multicd.sh unterstützt werden kann man auf der Webseite nachlesen.

Installation

Die Installation ist ziemlich einfach. Man lädt sich einfach das Skript herunter und legt es an einen Ort seiner Wahl, zum Beispiel /opt/multicd, wo man es dann entpackt:

$ tar zxvf multicd-5.2-nosyslinuxincluded.tar.gz

Zusätzlich muss man entweder genisoimage oder mkisofs installiert haben. isolinux (und Memtest86+) lädt das Skript automatisch aus dem Internet herunter bzw. kann man auf der Webseite auch direkt eine Version mit isolinux zusammen herunterladen.

Archlinux Nutzer können alternativ auch das Paket aus dem AUR installieren: klick .

Benutzung

Man lädt sich jetzt einfach die Isos der Distributionen, die man zusammenbacken möchte, in den Ordner in dem auch das Skript liegt herunter und benennt die Isos so um, wie auf der Webseite genannt. Hat man dies getan muss man einfach nur das Skript mit Root-Rechten ausführen:

$ sudo ./multicd.sh

und der Rest funktioniert von alleine.

Kommandozeilen-Optionen

Auch wenn nicht dokumentiert, besitzt multicd.sh ein paar Kommandozeilen-Optionen die man anhängen kann:

--m Memtest86+ wird nicht automatisch hinzugefügt.
--v Aktiviert den Verbose-Modus.
--modules Startet einen Dialog in der Konsole mit einer Auswahl für einzelne Slax-Module (Macht natürlich nur Sinn, wenn man Slax mit einbindet). Die Anwendung dialog muss dazu installiert sein.
--md5 multicd erstellt eine Liste mit Checksummen der einzelnen Dateien, der Iso die es erstellt.


Reihenfolge der Einträge im Bootmenü ändern

Um die Reihenfolge der Einträge der einzelnen Distributionen im Boot-Menü zu ändern muss man die Plugins im plugins Ordner nennen. In der Reihenfolge, in welcher die Skripte gefunden werden, werden auch die Einträge gemacht. Will man also eine CD mit DSL und Archlinux erstellen und haben, dass die DSL Einträge vor den Archlinux einträgen erscheinen, nennt man die Plugins zum Beispiel so um:

$ cd /opt/multicd/plugins
$ mv dsl.sh 01-dsl.sh
$ mv arch.sh 02-arch.sh


Bootmenü Überschrift ändern

Das Bootmenü der erstellten CD hat automatisch die Überschrift „Welcome to GNU/Linux!„. Will man dies ändern, muss man einfach nur das Skript mit einem Texteditor seiner Wahl öffnen und die Zeile:

menu title Welcome to GNU/Linux!

nach seinem gefallen ändern, zum Beispiel:

menu title Rescue-CD


eigene Plugins entwickeln

Ein eigenes Plugin zu entwickeln ist ziemlich einfach, da sie ebenfalls nur Shell-Skripte sind. Ich hab mir auch direkt eines für Finnix gemacht gehabt, welches wunderbar funktioniert (Download: finnix.sh). Am besten schaut man sich dazu einfach die vorhandenen Plugins an und liest sich den How it works Artikel auf der Webseite von multicd.sh durch.

Achja auf meiner Rescue-CD die ich mit multicd.sh erstellt habe und die man auf dem Screenshot oben sieht befinden sich übrigens: Finnix, Damn Small Linux, Ultimate Boot CD, GParted Live, Parted Magic, Balder(FreeDos) und Memtest86+.

 

SYSLINUX unter Ubuntu Intrepid Ibex (8.10) kompilieren Oktober 9, 2008

Filed under: Linux,OpenSource,Ubuntu — Rorschach @ 11:41
Tags: , , , ,

Wenn man SYSLINUX unter Ubuntu Intrepid Ibex (8.10) von Hand kompilieren möchte bekommt man folgende Fehlermeldungen:
[…]
cc1: warnings being treated as errors
drivers/net/3c595.c: In function ‘vxgetlink’:
drivers/net/3c595.c:366: error: format not a string literal and no format arguments
make[2]: *** [bin/3c595.o] Fehler 1
make[2]: Verlasse Verzeichnis ‚/working-directory/gpxe/src‘
make[1]: *** [src/bin/undionly.kpxe] Fehler 2
make[1]: Verlasse Verzeichnis ‚/working-directory/gpxe‘
make: *** [all] Fehler 2
[…]
cc1: warnings being treated as errors
drivers/net/forcedeth.c: In function ‘reg_delay’:
drivers/net/forcedeth.c:455: error: format not a string literal and no format arguments
make[2]: *** [bin/forcedeth.o] Fehler 1
make[2]: Verlasse Verzeichnis ‚/working-directory/gpxe/src‘
make[1]: *** [src/bin/undionly.kpxe] Fehler 2
make[1]: Verlasse Verzeichnis ‚/working-directory/gpxe‘
make: *** [all] Fehler 2
[…]
cc1: warnings being treated as errors
drivers/net/via-rhine.c: In function ‘rhine_probe1’:
drivers/net/via-rhine.c:1011: error: format not a string literal and no format arguments
make[2]: *** [bin/via-rhine.o] Fehler 1
make[2]: Verlasse Verzeichnis ‚/working-directory/gpxe/src‘
make[1]: *** [src/bin/undionly.kpxe] Fehler 2
make[1]: Verlasse Verzeichnis ‚/working-directory/gpxe‘
make: *** [all] Fehler 2
[…]

Unter Intrepid werden von GCC also manche schlechte Programmierangewohnheiten, welche Fehler verursachen können (hier zB eine potentielle format string vuln.) nichtmehr nur als Warnungen sondern als richtige Fehler interpretiert.

Um SYSLINUX und ISOLINUX erfolgreich zu kompilieren muss man zuerst diesen Patch den ich geschrieben habe anwenden der die Fehler fixt: http://paste.ubuntuusers.de/392326/ .