- Ey, geil, die bau'n mein Notebook!
- -- SvOlli, nach dem Lesen des ersten Berichts über den Eee PC
Beim Eee PC wird eine DVD für die Systemwiederherstellung mit ausgeliefert. Nur verfügt der Eee PC ja über kein optisches Laufwerk. Entweder besorgt man sich nun ein USB-DVD-Laufwerk, oder aber man baut sich eine selbst eine SD-Karte zur Systemwiederherstellung. Alternativ kann man auch einen USB-Speicherstick dafür verwenden. Im Folgenden gibt es nun die Anleitung, wie ich es hinbekommen habe. Voraussetzung dafür ist ein Linuxsystem, wenn kein installiertes vorhanden ist, tut es zum Beispiel auch ein
Knoppix.
Man benötigt eine SD-Karte oder einen USB-Speicherstick mit einer Kapazität von mindestens 2GB (beim 701 kann auch man mit einer Karte mit 1GB Speicherplatz auch geradeso eben noch hinkommen.) Ich verwende im Folgenden den Begriff SD-Karte, die Vorgehensweise ist aber bei einem USB-Stick genauso. Die Karte sollte vorzugsweise frisch formatiert sein, entweder mit FAT/FAT32 oder ext2/ext3. Es ist außerdem sehr geschickt, wenn man ihr bei diesem Vorgang einen gut indentifizierbaren Namen gibt (ich habe "SD4GB" gewählt).
Als erstes muss die Karte natürlich eingelegt und vom System erkannt werden, damit man herausbekommen können, wie die Notation der Partition unter GRUB sein wird. Dazu gibt man den Befehl "mount -l" (kleines "L") ein. Dann kommt eine Ausgabe wie diese hier:
/home/user> mount -l
rootfs on / type rootfs (rw)
/dev/sda1 on / type ext2 (ro) [SYSTEM]
none on / type aufs (rw,xino=/.aufs.xino,br:/=rw:/=ro)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw)
tmpfs on /dev/shm type tmpfs (rw)
tmpfs on /tmp type tmpfs (rw)
/dev/sdb1 on /home type ext3 (rw,noatime,data=ordered) [HOME]
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /ro type ext2 (ro) [SYSTEM]
/dev/sdc1 on /media/D: type vfat (rw,nosuid,nodev,noexec) [SD4GB]
Die Faustregel für das "Umrechnen" von Linux-Partitionen in die GRUB-Schreibweise ist folgende:
- Den Anfang ("/dev/sd" oder "/dev/hd" bei älteren Systemen) kann man vergessen.
- Der letzte Buchstabe wird als Zahl umgerechnet, nach dem Schema: a=0, b=1, c=2, ...
- Von der Zahl wird eins abgezogen.
- Und das ganze wird dann in eine Maske "(hd<Zahl von 2.>,<Zahl von 3.>)" eingetragen.
Daraus ergibt sich dann für meinen Fall (hd2,0). Jetzt müssen die Karte noch vorbereitet werden. Dazu wird der Inhalt des Verzeichnisses "/boot/grub" an die selbe Stelle auf die Karte kopiert:
/home/user> cd /media/D:
/media/D:> mkdir boot
/media/D:> cp -r /boot/grub boot
cp: cannot create symbolic link `boot/grub/grub.conf': Operation not permitted
/media/D:> cp /vmlinuz boot/kernel.test
Die Warnung kann ignoriert werden. Der Linux Kernel, der kopiert wurde, ist für einen Sicherheitstest. Das kann ein beliebiger Kernel sein. Wichtig ist nur, dass er unter dem Namen "kernel.test" in das "boot"-Verzeichnis auf der SD-Karte kopiert wurde. Nun wird es Zeit, GRUB zu starten, dies geht natürlich nur als root.
/home/user> sudo grub
[ Minimal BASH-like line editing is supported. For
the first word, TAB lists possible command
completions. Anywhere else TAB lists the possible
completions of a device/filename. ]
grub> root (hd1,0)
grub> testload /boot/kernel.test
Error 15: File not found
grub> root (hd2,0)
grub> testload /boot/kernel.test
[...viel, viel output...]
Warum habe ich jetzt erst eine falsche Partition angegeben? Um zu zeigen, wie man sich davor schützen kann, wenn die Faustformel von oben nicht passt. Darum wurde auch "kernel.test" auf die Speicherkarte kopiert, um sie für diesen Test zu laden. Wenn es mal nicht passen sollte ist meistens die erste der beiden Zahlen falsch, da lohnt sich dann probieren, es sollte eigentlich eine Zahl zwischen 1 und 10 sein. Ansonsten mal die Suchemaschine des eigenen Vertrauens fragen, was man in einem solchen Fall noch machen kann. So, nun wurde die Partition eindeutig identifiziert, jetzt muss nur noch den Bootloader auf die Karte geschrieben werden. Diesmal wird als Laufwerk "(hd2)", also ohne das ",0" angegeben, damit der Bootloader in den Bootsector der SD-Karte geschrieben wird und nicht in den Bootsector des Dateisystems.
grub> setup (hd2)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/fat_stage1_5" exists... yes
Running "embed /boot/grub/fat_stage1_5 (hd2)"... 15 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd2) (hd2)1+15 p (hd2,0)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.
grub> quit
Schritt eins ist somit fertig, der Bootloader "GRUB" wurde auf die SD-Karte geschrieben. Damit haben wir auch schon das Schwierigste unseres Vorhabens geschafft.
Nun brauchen wir noch die Software für das Schreiben die Systemwiederherstellung auf der Karte. Diese kann man jetzt von der Installations-DVD kopieren, aber ich verwende eine Reimplementierung, welche man auf SourceForge unter
http://sourceforge.net/project/showfiles.php?group_id=215613&package_id=273358 finden kann. Dort lädt man dann die Dateien "restore.img" und "vmlinuz" runter, und kopiert diese dann in das "boot"-Verzeichnis auf der SD-Karte, der "kernel.test" kann dabei auch gleich entsorgt werden. Damit ist auch schon Schritt zwei erledigt.
Als letztes muss nun der Bootloader wissen, wie er denn den Kernel von der SD-Karte booten soll. Dazu wird dann die Datei "boot/grub/menu.lst" auf der SD-Karte angepasst, dass sie so aussieht:
default=0
timeout=5
title Update Eee PC from SD/USB
root (hd0,0)
kernel /boot/vmlinuz quiet rw vga=normal irqpoll root=/dev/ram0
initrd /boot/restore.img
Und der krönende Abschluss ist das Kopieren der Dateien "P701L.gz", "user_start.dat", "blockcount.dat" und die Datei, deren Name mit ".bld" endet, in das Hauptverzeichnis der Karte. Wenn jetzt von der Karte gebootet wird, kommt ein kurzes Menu mit dem Eintrag "Update Eee PC from SD/USB", nach fünf Sekunden startet dann automatisch die Software für die Systemwiederherstellung. Dort muss man dann noch bestätigen, dass man sich seiner Sache auch wirklich sicher ist, und circa zehn Minuten später hat man dann ein absolut jungfräuliches System. (Bei einem System mit zwei SSDs wird die "/home"-Platte aber nicht angetastet.)
P.S.: Diese Anleitung darf gerne kopiert und woanders veröffentlicht werden, allerdings dann bitte auch mit einem Link auf diese Seite. Danke.
Kommentare
http://www.heise.de/ct/08/22/links/202.shtml
Ein Partitionieren des Festplatte oder SSD ist nicht oder nur mit heftigen Klimmzügen möglich, die Daten müssen für die Installation nochmal vom USB-Stick auf Festplatte kopiert werden, OEM-Erweiterungen funktionieren teilweise nicht so, wie von CD. Alles in allem nicht so zuverlässig, wie die Installation von CD.