**XANDROS auf SD installieren**

Damit kann man dann Xandros beibehalten und je nach belieben von SD-Karte booten.. beispielsweise für das schnelle und sichere surfen. Xandros verhält sich dabei wie das normale Betriebssystem, dass Ihr schon kennt. Ihr könnt auch weitere Programme nachinstallieren und das ganze so nutzen, wie Ihr wollt.. einzige Beschränkung: Die Größe der verwendeten SD-Karte.. klar.

Ich schreibe diese Kiste hier aus der Sicht derjenigen, die XANDROS noch auf dem Eee haben und noch VOR dem Schritt stehen, das niedliche Eee-Linux mit XP zu plätten.. für die Windows-User ist das hier nix. In dem Fall braucht Ihr ein Live-Linux, welches Ihr vor diesen Schritten auf dem Eee startet.

Benötigt werden:

- EeePC mit Xandros (damit habe ichs gemacht) oder einer anderen Linux-Distri als Betriebssystem - ASUS-RecoveryDVD (im Lieferumfang) - SD(HC)-Karte als Systemträger (mindestens 4GB!) - externer DVD-Brenner oder USB-Stick - permanente Stromversorgung (safety first!) - dieses Tutorial

Vorbemerkungen:

Alle Angaben in den Codefenstern hinter den # sind KEIN Codebestandteil, sondern nur Erläuterungen für Euch! NICHT mitschreiben, wenn Ihr den Code in der Konsole oder Kwrite eingebt!

Wir benötigen einige Sonderzeichen für die Konsoleneingaben.. unter anderem die Zeichen

und </ >

Die Zeichen findet Ihr auf der Y-Taste Eures Eee. Das | gebt Ihr via Fn+AltGr+Y oder Fn+AltGr+Shift+Y ein, da bin ich mir gerade nicht sicher.. einfach ausprobieren (schreibe das hier von meinem Thinkpad aus.. ist einfach auf Dauer bequemer). Die Größer-/ Kleiner-Zeichen sind ebenfalls auf der Y-Taste und via Fn+Y rsp. Fn+Shift+Y zu schreiben. Bitte beachtet das, damit alles auch gut funktioniert..

Gebt die Programmschritte EINZELN und exakt so ein, wie sie in den Reihen stehen! Sobald die Befehlssyntax falsch ist, gibt es vom System eine Fehlermeldung. Ihr könnt in die Konsole keine Befehle kopieren, die müsst Ihr also schon von Hand eingeben.. dass ist leider der Nachteil an dieser Sache, das Ergebnis lohnt sich aber.

BITTE VOR DURCHFÜHRUNG DIESES TUTORIAL EINMAL KOMPLETT DURCHLESEN, BEVOR IHR ANFANGT!

Das sollte Verständnisprobleme beseitigen.. es nützt Euch nichts, wenn Ihr Euch hier Schritt für Schritt durchhangelt und anschließend in einer Nachbemerkung oder einige Zeilen weiter unten den Hinweis findet, dass Eure Eingabe nur für bestimmte Zwecke sinnvoll und in Eurem Fall sinnlos war.. deswegen bitte einmal komplett durchbeißen und anschließend dann Schritt für Schritt durchführen.

**Schritt für Schritt:**

Vorbereitend externes LW anschließen und die RecoveryDVD einlegen, das ganze im Dateimanager öffnen. (für die USB-Sticker: Ihr müsst die unter 2. beschriebene Datei nur auf den Stick kopieren und dann analog alle anderen Schritte so ausführen wie beschrieben.)

Konsole mit Strg+Alt+T öffnen.

1) Wir werden alle Schritte als ROOT ausführen.. also machen wir uns zum Admin mit der Eingabe:

sudo bash

2) Auf der RecoveryDVD findet Ihr die Datei P701L.gz, die wir mittels Dateimanager auf den Desktop (eigener Home-Ordner) kopieren. Diese Datei extrahieren wir dann auf die SD-Karte, die natürlich jetzt eingesteckt sein sollte. Alle auf der SD-Karte vorhandenen Daten werden bei dieser Aktion ÜBERSCHRIEBEN.

umount /dev/sdb1
gunzip -c /home/user/P701L.gz | dd of=/dev/sdb

Der Master Boot Record von Xandros und die Systempartition werden jetzt auf die SD-Karte (als sdb1) geschrieben.. das kann je nach Geschwindigkeit der SD-Karte echt ne Zeit dauern.. besorgt Euch Kaffee!

3) FDisk ausführen, damit wir eine zweite Partition (sdb2) auf der SD-Karte schreiben können.. hier wird das User-Verzeichnis gespeichert. Wenn Ihr die kleinstmögliche SD-Kartengröße von 4GB gewählt habt, ist danach kein Platz mehr auf der SD.. alle, die eine größere gewählt haben, können später noch eine dritte Partition mit FAT32 erstellen, die dann auch von Win-Systemen auf der SD-Karte erkannt wird und beschreibbar bleibt. Die 4GB-Karte wird von Windows NACH unserer Bearbeitung nicht mehr erkannt.. liegt am Ext3-Dateisystem.

cfdisk /dev/sdb

Wählt in Fdisk mittels Pfeilen und der Return-Taste folgende Schritte in dieser Reihenfolge:

New > Primary > Enter > Write > "yes" > Quit

ALTERNATIVER Schritt 3 für SD-Karten ÜBER 4GB Größe)

Wir erstellen auf der SD-Karte eine zweite Partition für den Nutzer und eine dritte für die weitere Nutzung unter Windows-Systemen:

cfdisk /dev/sdb

In Fdisk die option FREE SPACE markieren und folgendes auswählen:

[New] > [Primary]

Gebt die gewünschte Größe für Eure User-Partition ein, die Statdardgröße wäre 1554.58. Wenn Ihr mehr wollt, könnt Ihr die auch vergrößern, um XANDROS mehr Raum zu geben. Wählt danach [Beginning] aus.. damit wird die zweite Partition direkt am Anfang des freien Speicherplatz geschrieben.

Jetzt bauen wir auf den noch freien verbleibenden Speicherplatz der SD-Karte eine FAT32-Partition für die Nutzung unter Windows:

Markiert „Free space“, wählt dann [New] > [Primary] > [Enter] aus. Fdisk wird jetzt den kompletten verbleibenden Speicherplatz in eine dritte Partition umschreiben.

Schaut Euch an, ob die Größen der Partitionen Euren Vorstellungen entspricht.

Wir müssen jetzt noch die dritte Partition fixieren. Markiert die Partition, wählt [Type] > dann Eingabe “0c“.

Jetzt [Write] > “yes” > [Quit] auswählen und da haben wirs!

4) Jetzt formatieren wir die neue Partition mit dem Ext3-Dateisystem:

mke2fs -c /dev/sdb2     # auf Ext2 formatieren
tune2fs -j /dev/sdb2      # auf Ext3 konvertieren
e2label /dev/sdb2 USER     # den Usernamen festlegen.. schreibt anstatt USER, was Ihr wollt.. Hauptsache ZUSAMMEN als ein Wort

ALTERNATIVER Schritt 4 für SD-Karten ÜBER 4GB Größe)

Wir formatieren jetzt die zweite Partition zu Ext3 und die dritte Partition zu FAT32

mke2fs -c /dev/sdb2     # auf Ext2 formatieren
tune2fs -j /dev/sdb2      # auf Ext3 konvertieren
e2label /dev/sdb2 USER     # den Usernamen festlegen.. schreibt anstatt USER, was Ihr wollt.. Hauptsache ZUSAMMEN als ein Wort
mkfs.vfat /dev/sdb3   # Jetzt wird unsere dritte Partition zu FAT32

Ihr könnt die dritte Partition nach Einstecken in ein Windows-System später noch einmal als FAT32 nachformatieren, um volle Kompatibilität zu gewährleisten.. das müsst Ihr selber wissen.

5) Jetzt mounten (aktivieren) wir die Systempartition und bereiten die veränderte Bootroutine für die SD-Karte vor.. hier wird auch das benötigte initramfs entpackt:

mkdir /mnt/sdb1
mount -t ext2 /dev/sdb1 /mnt/sdb1
cd /mnt/sdb1/boot
mkdir temp
cd temp
gunzip < ../initramfs-eeepc.img | cpio -i

6) Jetzt verändern wir die Systeminitialisierung, damit der Eee beim hochfahren auch die SD-Karte als bootbaren Datenträger erkennt:

kwrite init

Ganz oben ergänzt Ihr die bereits bestehenden Codereihen um diese hier (jetzt könnt Ihr die Anmerkungen hinter den # ruhig INKLUSIVE der # mit in die Datei schreiben, die helfen Euch später beim ändern der Datei als Marker und Erklärung der verwendeten Befehle) :

#!/bin/sh
mount -t proc proc /proc

#lade USB Module.. nur, wenn im Boot-Image vorhanden 

echo loading USB modules
insmod -f /modules/usbcore.ko
insmod -f /modules/ehci-hcd.ko
insmod -f /modules/uhci-hcd.ko
insmod -f /modules/libusual.ko
insmod -f /modules/usb-storage.ko

#warten.. registriere Pakete
sleep 6

Der Sleep-Index hängt von der Geschwindigkeit der SD-Karte ab.. erhaltet Ihr beim boot-up nachher eine Fehlermeldung oder der Bildschirm friert ein, ändert den Sleep-Index in der INIT einfach auf eine größere Zahl.

Die INIT bleibt auf und jetzt ändern wir noch jeden einzelnen Eintrag namens „sda1“ oder „sda2“ auf „sdb1“ und „sdb2“

Schließt den Kwriter mit einem einfachen Klick auf das X oben in der Ecke, zurück in die Konsole.

7) Jetzt kopieren wir alle benötigten USB-Module aus /lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/ in einen Ordner in unserem neuen temporären Verzeichnis. Ihr könnt zwar für diese Operation den FileManager verwenden (wird im englischen Tutorial empfohlen), ich halte aber die Bedienung des FileManagers im Adminstatus für shicegefährlich.. deswegen machen wir das mit Direktbefehlen:

cd /mnt/sdb1/lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/core
copy usbcore.ko /mnt/sdb1/boot/temp/modules
cd /mnt/sdb1/lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/host
copy ehci-hcd.ko /mnt/sdb1/boot/temp/modules
copy uhci-hcd.ko /mnt/sdb1/boot/temp/modules
cd /mnt/sdb1/lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/storage
copy libusual.ko /mnt/sdb1/boot/temp/modules
copy usb-storage.ko /mnt/sdb1/boot/temp/modules

Jetzt schauen wir nach, ob die fünf kopierten Dateien auf Tatsache am Ziel angekommen sind:

 
cd /mnt/sdb1/boot/temp/modules
ls

Mit dem List-Befehl seht Ihr, welche Dateien in dem Verzeichnis sind. Wenn sie da nicht sein sollten, ist etwas schiefgelaufen.. aber eigentlich sollte alles geklappt haben!

8.) Wir bringen jetzt dem temporären Verzeichnis bei, dass wir insgesamt 2 Partitionen auf der SD bootbar machen möchten.. das ist wichtig für das später noch zu packende INIT-Script:

cd /mnt/sdb1/boot/temp/dev
mknod -m 644 sdb1 b 8 17
mknod -m 660 sdb2 b 8 18
mknod -m 644 sdc1 b 8 33
mknod -m 660 sdc2 b 8 34

Die zwei sdc-Eingaben sind für eventuell später zu bootende USB-Sticks.. wenn Euch das verwirrt, lasst es einfach weg und nehmt nur die ersten zwei Reihen.

9) Jetzt packen wir unser neues Initialisierungsskript für die SD:

cd /mnt/sdb1/boot/temp
find | cpio -H newc -o | gzip -9 > ../initramfs-usb-eeepc.img

10) Wir ändern das Skript scanuser.sh für den Gebrauch mit SD-Karten:

kwrite /mnt/sdb1/sbin/scanuser.sh

scanuser.sh bleibt offen und wir ändern ALLE Einträge “/dev/sda2“ auf “/dev/sdb2“

Kwrite schließen mittels Klick auf das X.

11) Dasselbe machen wir mit dem Skript formatuser.sh, ALLE Einträge mit „sda2“ auf „sdb2“ ändern:

kwrite /mnt/sdb1/sbin/formatuser.sh

12) Jetzt ändern wir das Skript services.sh, da dies ebenso wie unser Initialisierungsskript die USB-Module beim hochfahren lädt.. was ich als verlorene Zeit betrachte:

kwrite /mnt/sdb1/usr/sbin/services.sh

Wir setzen jetzt vor einige Zeilen ein führendes # und machen sie so zu Anmerkungen, sie werden also beim Start nicht ausgeführt. Die Zeilen sind schon vorhanden, Ihr müsst nur die # davorsetzen:

#modprobe uhci-hcd
#modprobe ehci-hcd
#modprobe usb-storage

13) Wir bringen jetzt unserem Bootmanager GRUB bei, das ROOT-Verzeichnis auf der Systempartition unserer SD zu suchen:

kwrite /mnt/sdb1/boot/grub/menu.lst

Ersetzt alle betroffenen Zeilen wie folgt (VORHER –> NACHHER):

root (0x80,0) --> root (hd0,0)
root=/dev/sda1 --> root=/dev/sdb1
initramfs-eeepc.img --> initramfs-usb-eeepc.img

14) Das wars beinahe! Jetzt führen wir noch einen Systemcheck durch. Muss zwar nicht sein.. gibt uns aber letzte Sicherheit. Wer diesen Check auslassen will, kann jetzt schon rebooten. Für alle anderen:

umount /dev/sdb1
fsck.ext2 /dev/sdb1
umount /dev/sdb2
fsck.ext3 /dev/sdb2

15) Konsole beenden durch zweifache Eingabe von „exit“:

exit
exit

Ein-/Ausknopf drücken, den Eee herunterfahren mittels ABSCHALTEN. Entfernt das DVD-Laufwerk/ den USB-Stick, den wir für P701L.gz verwendet haben. Schaltet den Eee wieder ein und drückt beim hochfahren die Esc-Taste, wenn unten die Aufförderung erscheint, F2 oder Alt zu drücken. Wählt im erscheinenden Fenster „USB: USB2.0 Card Reader SD0“ (zweiter Eintrag) als Bootquelle.

Ihr bootet jetzt, wenn alles richtig gelaufen ist, Xandros von SD-Karte und könnt Eure SSD mit XP oder was auch immer plätten! Ich drücke während boot-up übrigens immer Esc, wenn ich Xandros starten will.. man kann aber auch im Boot-Menü die Boot-Reihenfolge permament verändern und so die SD-Karte als erste Bootquelle angeben.. sollte dann keine bootbare SD im Gerät stecken, bootet er dann eben von SSD.

Cheers,

Jay Dumbo aka EeeFreeek