- "Your boss is quite a card player, Mr. Kelly; how does he do it?"
"He cheats." - -- Lonnegan & Hooker, "The Sting"
Hatte ich
beim letzten Mal erklärt, wie man sich einen Installations-USB-Stick oder -SD-Karte für den Eee PC selbst baut, will ich diesmal noch einen Schritt tiefer in die Materie einsteigen: diesmal geht es darum, wie man sich das Image für dieses Installationsmedium selbst bastelt. Warum sollte man das wollen? Dafür gibt es zwei wichtige Gründe: erstens will man die Änderungen nach einem "F9-Boot" (zurücksetzen auf den Auslieferungszustand) nicht immer wieder nachziehen, und zweitens spart man so Speicherplatz auf dem doch nicht sehr üppig bemessenen Festplattenersatz. Das geht sogar so weit, dass bei meinem Eee PC 901 es nicht möglich ist, das StarOffice 8 gegen OpenOffice 3 auszutauschen, weil dann der Platz schon verbraucht ist, bevor die Installation beendet wurde.
Baue ich mir schon seit Erscheinen des ersten Eee PCs Anfang des Jahres meine Installationsimages selbst, so habe ich doch erst mit meinem 901er es geschafft, einen Weg zu finden, den ich auch als effizient und zu empfehlen bezeichnen würde. Der Trick ist einfach und effektiv: ich arbeite, statt auf dem Gerät selbst, in einer Art "Laborumgebung". Ursprünglich hatte ich mir dafür eine virtuelle Maschine aufgesetzt, doch mittlerweile habe ich einen Weg gefunden, diesen Aufwand zu sparen. Ich habe mir einen vier Gigabyte großen USB-Stick gekauft. Dorthin habe ich dann das Image ausgepackt. Für die weiteren Beispiele gelten folgende Randbedingungen. Der USB-Stick wird als /dev/sdd erkannt, und unter /media/E: gemountet, die Datei "P701L.gz" befindet sich auf der SD-Karte, welche wiederum nach /media/D: gemountet wurde. Bevor man das Image auf den Stick auszupackt, stellt man zunächst sicher, dass er nicht mehr gemountet ist:
/home/user> sudo umount /dev/sdd1
/home/user> gzip -dc /media/D\:/P701L.gz | sudo dd bs=32k of=/dev/sdd
/home/user> sync
Der Befehl "dd" gibt nach getaner Arbeit aus, wie viele 32k-Blöcke auf den Stick geschrieben wurden. Diese Anzahl sollte mit dem Inhalt der Datei "blockcount.dat", welche sich in dem selben Verzeichnis wie "P701L.gz" befindet, identisch sein. Danach wird der Stick einmal entfernt und wieder aufgesteckt. Nun sollte ein "ls -l /media/E:" ungefähr das selbe wie "ls -l /" ausgeben. Jetzt kann man unter "/media/E:" schalten und walten, wie man es möchte, kein laufendes System kommt einem dabei in die Quere. Zu dem, was man denn so manchen kann kommt später noch etwas mehr. Nach vollendeter Bastelei sollte man das Dateisystem von Hand unmounten, und außerdem noch einen Filesystemcheck unterziehen:
/home/user> sudo umount /dev/sdd1
/home/user> sudo e2fsck -f /dev/sdd1
Um nun diese Bastelei auszuprobieren, muss man ein Rescue-System booten, zum Beispiel
Knoppix oder das
Restore EeePC System, dass ich schon beim letzten Beitrag empfohlen hatte. Mit dieser kopiert man dann das, was später das neue Installationsimage werden soll, in die Bootpartition:
# dd bs=32k if=/dev/sdd1 of=/dev/sda1
# reboot
Die Eingabeaufforderung bekommt man beim Restore EeePC System durch drücken von Alt und F2. Wenn das dann fertig ist, neu booten und dann mit F9 den Auslieferungszustand wiederherstellen, denn die gespeicherten Änderungen passen natürlich nicht mehr zu dem neuen System. Wenn nun beim Basteln etwas schief gegangen ist, dann hat man noch die "originale P701L.gz" Datei, und kann diese zum Wiederherstellen des Systems über den üblichen Weg (zum Beispiel Restore EeePC System) verwenden. Danach kann man nun entscheiden, ob man nun versucht den Fehler zu beheben, oder doch nochmal von vorne anfängt.
Hat man nun ein funktionierendes System geschaffen, möchte man es eventuell auch für eine spätere Wiederherstellung konservieren. Auch das ist nicht schwer und geschieht mit den folgenden Befehlen:
/home/user> cd /media/D\:
/media/D:> rm P701L.gz
/media/D:> dd bs=32k count=`cat blockcount.dat` if=/dev/sdd | gzip -c >P701L.gz
Das war schon die ganze "Magie", die in der Erstellung der Wiederherstellungsdatei liegt. Jetzt noch ein paar Tipps, wie man auf dem unter /media/E: gemounteten System am geschicktesten etwas ändert. Das wichtigste dürfte das Installieren von neuen Paketen sein. Im Gegensatz zu meinen sonstigen Gewohnheiten nehme ich kein "apt-get", sondern installiere die Pakete mit "dpkg". Dies hat zwar den Nachteil, dass man seine Pakete "handverlesen" aussuchen muss, aber man hat deutlich mehr Kontrolle, über das, was dort geschieht. Bevor man zur Installation schreiten kann, muss es habe auch noch unter /media/E:/proc sinnvolle Daten geben, da sonst einige Installationsroutinen fehlerhaft arbeiten. Dies erreicht man mit dem Befehl:
/home/user> sudo mount -t proc proc /media/E\:/proc
Natürlich darf man nicht vergessen, bevor man /media/E: unmountet, auch /media/E:/proc wieder zu unmounten:
/home/user> sudo umount /media/E\:/proc
Die Installation von .deb-Paketen findet dann mit dem folgenden Befehl statt:
/home/user> sudo dpkg --root=/media/E\: -i datei1.deb datei2.deb <...>
Deinstalliert werden Pakete mit dem Befehl:
/home/user> sudo dpkg --root=/media/E\: --purge paketname1 paketname2 <...>
Und wenn man wissen will, was eigentlich so alles auf dem Eee PC installiert ist, hilft einem der folgende Befehl weiter:
/home/user> sudo dpkg --root=/media/E\: --get-selections
Was man auch machen kann, ist die Größe der Partition ändern, so dass man dann zum Beispiel mehr Platz für die dynamischen Änderungen hat. Danach muss man aber die Dateien "blockcount.dat" und "user_start.dat" anpassen. In "user_start.dat" muss dann der Endtrack der ersten Parition plus eins stehen. "blockcount.dat" enthält die Größe der unkomprimierten Daten in Blöcken à 32 Kilobytes. Ermittelt wird dann diese Zahl durch folgende Faustformel:
/media/D:> echo $[`cat user_start.dat`*8225280/32768+1]
Und wie ich diese Anleitung zusammenschreibe fällt mir auf, das Asus da einen Fehler in deren Installationsdateien haben. zumindest auf meiner Recovery-DVD. Der letzte Track, also circa die letzten 8 Megabyte des P701L.gz Images fehlen. Glücklicherweise enthalten diese keine Daten, so dass es nicht auffällt.
Abschließend noch den Tipp, das Restore EeePC System gleich mit in das neue Image zu integrieren. Dazu braucht man einfach nur die "restore.img" Datei in das "/boot"-Verzeichnis zu kopieren und einen neuen Eintrag am Ende der Datei "/boot/grub/menu.lst" anfügen. Sogar den ohnehin schon vorhandenen Kernel kann man dann dafür "recyclen".
So, ich hoffe das reicht zunächst als Denkanstoß, wie man das System auf dem Eee PC nachhaltig modifiziert. Fragen und Anregungen können gerne in die Kommentare hier geschrieben werden. Alternativ gibt es auch im
Xandros-Forum von
www.eeepc.de genug Leute, die über ähnliche Themen diskutieren.
P.S.: Diese Anleitung darf gerne kopiert und woanders veröffentlicht werden, allerdings dann bitte auch mit einem Link auf diese Seite. Danke.
Kommentare
Wenn es sich um den 901GO mit Linux handelt, dann funkioniert der F9-Boot so, dass Du sofort nach dem Einschalten so lange immer wieder auf die F9-Taste drückst, bis das Bootmenü angezeigt wird. Dort kannst Du dann die Systemwiederherstellung aufrufen.
Aber das Linux darauf ist mittlerweile so stark veraltet, dass ich empfehlen würde Ubuntu 9.10 darauf zu installieren. Mit einem Tool namens "UnetBootIn" kann man den Inhalt des Ubuntu-CD-Images so auf einen USB-Stick bringen, dass man auch davon booten kann.