Kann man initrd mit syslinux und linuxrc von der Festplatte booten?
Hallo, ich beschäftige mich mit der Entwicklung einer Live-CD für Skolelinux. Die erste Vorab-Version läuft bereits. Einzelheiten habe ich auf user@skolelinux gepostet. Der Entwicklungsprozeß wird wesentlich erschwert, solange jede Änderung an der Live-CD erst getestet werden kann, sobald die Live-CD erneut gebrannt worden ist. Das Problem liegt im dem Komprimieren des Life-Filesystems, bevor es gebrannt wird. Das Komprimieren dauert auf dem Entwicklungsrechner rund 1 Stunde. Das Komprimieren ist notwendig, um 1,1 GB auf 450 MB zu verdichten. Sonst reicht der Platz der CD nicht. Es gilt, den Vorgang des Komprimierens zu vermeiden, indem das Life-Filesystem von der Festplatte gebootet wird. Denn auf der Festplatte ist massig Platz vorhanden, die begrenzte Kapazität der CD spielt keine Rolle. Beim Booten der Live-CD kommt ein besonderes linuxrc zum Zuge, welches eine Reihe von Vorbereitungen für das Mounten des Life-Filesystemes macht. Um Bedingungen zu schaffen, die ein sinnvolles Testen ermöglichen, müßte diese linuxrc auch beim Booten von der Festplatte zum Zuge kommen. Die Lösung müßte vermutlich so aussehen, das Boot-Image der Live-CD auf der Festplatte mit diesem linuxrc mounten zu können. Weitere Einzelheiten zum Problem sind in der nachstehenden Email zu finden. Weiß jemand Rat? Grüße Peter Voigt Re: Skolelinux-Live-CD - 1. Vorab-Version läuft From: "Peter Voigt" <Peter.Voigt1@gmx.net> To: user@skolelinux.de Date: Today 19:40:43 Hallo Andreas, hier nähere Erläuterungen zu dem Problem, den Entwicklungsprozeß der Live-CD beschleunigen zu können. Die Life-CD bootet wie folgt: - Das Bios lädt laut El Torrito Standard ein Boot-Image von der CD in den Speicher. - Das Bios startet die ersten 512 Byte so, als ob sie aus dem MBR der Festplatte stammen. - In den ersten 512 Byte befindet sich syslinux. - Syslinux lädt den Kernel und Initrd. - Der Kernel startet linuxrc. - Linuxrc mountet das Life-Filesystem. Das Life-Filesystem entspricht dem Schnappschuß eines laufenden Linux-Filesystems. Es ist auf der CD nur in Form eines komprimierten Iso-Abbildes als einzelne Datei vorhanden. Es wird als loop-device (genauer gesagt cloop-device, 'c' steht für 'compressed') gemountet. Dieser Bootprozeß bestimmt indirekt den Entwicklungsprozeß: 1. Das Life-Filesystem wird von den restlichen Dateien isoliert, entpackt und auf der Festplatte gespeichert. Das genaue Verfahren wird auf den einschlägigen Knoppix-Seiten beschrieben (Stichwort Knoppix Remastering). 2. Das entpackte Filesystem wird per chroot aktiviert. 3. Die gewünschten Änderungen im Life-Filesystem werden vorgenommen. Ab hier kehrt sich der Prozeß wieder um. 4. Das geänderte Life-Filesystem wird mit mkisofs wieder in ein Iso-Abbild überführt. 5. Das Iso-Image wird mit create_compressed_fs (entstammt Knoppix) wieder gepackt. Aus (derzeit) 1,1 GB werden 450 MB. 6. Das gepackte Filesystem wird wieder mit dem Boot-Image, dem Kernel und der Initrd zusammen gelegt. 8. Mit mkisofs wird ein Iso-Image über alles erzeugt. 9. Das letzte Image stellt die Live-CD dar und kann auf CD gebrannt werden. Das Komprimieren laut Schritt 5 benötigt die meiste Zeit, auf dem Entwicklungsrechner etwa eine Stunde. Diesen Schritt gilt es zu umspielen. Ad hoc bietet sich an, das bootimage der Live-CD so auf der Festplatte zu speichern, dass der darauf befindliche Bootlaoder (syslinux) gestartet werden kann, z.B. über lilo aus einer anderen Linuxpartition. Laut syslinux-Dokumentation ist das Booten von Festplatte möglich. Zum Laufen bringen konnte ich das bisher nicht :-(. In linuxrc habe ich bereits die Stelle lokalisert, an welcher das komprimierte Life-Filesystem von der CD gemountet wird. Das kann geändert werden, um das nicht gepackte Life-System der Festplatte zu mounten. Im Ergebnis hätte man ein Booten von der Festplatte, das dem Booten von CD entspricht, ohne das zeitaufwendige Komprimieren zu benötigen. Grüße Peter Voigt
Teilnehmer (2)
-
Jan-Benedict Glaw
-
Peter Voigt