windows xp ist nicht unbedingt bekannt für seine hervorragende sicherheit. inwiefern ein statisches live-system nun wirklich die daten- und/oder betriebssicherheit verbessert — diese diskussion will ich gar nicht erst beginnen. fakt ist aber, dass ein system, dessen änderungen mit dem abschalten des computers den direkten weg gen nirvana nehmen, deutlich schwerer als “virenschleuder” zu missbrauchen sind als normal installierte.
abgesehen davon hat ein live-system auch andere praktische vorzüge, z.b. im hinblick auf die systemperformance: genügend arbeitsspeicher vorausgesetzt kann man den flaschenhals “festplatte” ab dem moment, in dem das system komplett in den ram geladen ist, vergessen. auch themen wie “fragmentierung” oder begrenzte schreibzyklen von flashdisks sind praktisch passé.
bei meinen recherchen zu dem thema stolperte ich immer wieder über “pe”-lösungen (windows pe, bart pe), die jedoch entscheidende nachteile gegenüber einer “echten installation” hatten und daher für mich nicht in frage kamen. mich störte vor allem die begrenzung der parallel ausführbaren prozesse und dass ich nur standard-hardware-unterstützung erwarten konnte.
dann stieß ich auf einen interessanten beitrag im “the cd forum” (sucht auf der seite nach dem beitrag von dennis123123 vom “Feb 15 2007, 02:38 PM”). der vorgang ist so simpel wie genial: eine “normale” windows installation wird so weit verschlankt, bis sie in die ramdisk des frei downloadbaren service packs des microsoft windows 2003 servers passt. ich habe dennis schritte ein wenig abgeändert, so dass ich ein für meinen eeepc 701 passendes live-windows schuf.
ich will noch darauf hinweisen, dass ich, wenn ich von “windows xp” rede, die professional-variante meine. das prozedere sollte jedoch auch problemlos auf “windows xp home” anwendbar sein. außerdem möchte ich festhalten, dass ich keine garantie geben kann, ob das ganze bei euch analog genauso funktionieren wird, denn die von mir besuchten foren sind voll von rückfragen weniger erfolgreicher user — man muss natürlich auch bedenken, dass man im erfolgsfall seltener ein feedback hinterlässt, als wenn etwas nicht funktioniert.
ok, los geht’s…
vor der installation…
…sollte windows xp zunächst auf eine für die eigenen zwecke passende größe zusammengestutzt werden. das kostenlose programm “nlite” wirft unnützen ballast von board, bindet bekannte windows-tweaks vorab in die installation ein und slipstream’t bei bedarf auch gleich das aktuelle windows service pack ins medium. wer später weitere updates einspielen will, sollte dabei nicht vergessen, dass das windows update ohne bestimmte softwarekomponenten (z.B. dem internet explorer) nicht funktionieren wird. die software “xp lite” wirft einem gegen investition von knapp 40 us-dollar anschließend auch diesen raus.
in meinem fall habe ich von vornherein auf den internet explorer verzichtet und die notwendigsten updates seit service pack 3 mit dem update pack von winfuture.de eingespielt. updates für den internet explorer habe ich dabei händisch abgewählt. treiber und systemdienste können mit nlite auf ein minimum reduziert werden, denn das ziel ist nicht größtmögliche kompatibilität sondern kleinstmöglicher platzverbrauch in der späteren ramdisk. die treiber des eeepc kommen später ohnehin von der treiber-cd oder der herstellerwebseite. ich möchte an dieser stelle keine ausdrückliche empfehlung geben, welche features ihr im detail deaktivieren sollt — bedenkt aber, dass die ramdisk unkomprimiert nicht größer als 512 mb sein darf. ich war ziemlich sparsam und schaffte es auf ein 206 mb kleines installationsmedium, nach komplett abgeschlossener treiberinstallation waren das am ende knapp unter 500 mb belegter festplattenspeicher.
nachdem das installationsmedium erfolgreich verkleinert wurde, stünde nun das brennen der cd an. da der eeepc jedoch kein cd-laufwerk hat bietet es sich an, den spaß einfach per usb-stick durchzuziehen. ich habe mich vor etwas mehr als einem jahr schon mal an anderer stelle damit beschäftigt, aber die erde hat sich weitergedreht: dank “winsetupfromusb” (hier beschrieben) ist das einrichten eines usb-installationssticks ein kinderspiel geworden. das programm bedient sich direkt der daten aus dem von nlite zusammengeschrumpften windows-cd-ordner.

die installation…
…von windows xp ist relativ schnell erledigt. die windows-partition ist bei mir 1 gb groß, um genügend platz für zu entpackende updatepakete zu lassen. da windows schlussendlich in ein komprimiertes image kopiert wird, muss man an dieser stelle nicht knauserig sein. anschließend kommen dann noch die eeepc-treiber. bitte auch hier sparsam installieren: windows xp liefert z.b. den wlan-client mit … also reicht der atheros-wlan-treiber (ohne software!). hier fiel mir übrigens auf, dass die webcam des eeepc offenbar einen zuvor von mir (/nlite) entfernten treiber benötigt. aber was soll’s — ich wollte die kamera ohnehin nicht benutzen.
nach der installation von betriebssystem, gerätetreibern und systemupdates kommt das “cleanup”. es gibt eine menge kram, den wir später nicht brauchen werden, z.b. update-caches. also weg damit. beim aufräumen kamen mir das bereits genannte “xplite” in der trial-version, die “tune up utilities” und der “ccleaner” zu hilfe. wer andere “windows-puttspieler” vorzieht, möge diese benutzen.
vor dem freeze…
es gibt eine entscheidende sache, die man bei einem livesystem beachten sollte: das eingangs erwähnte “feature”, dass änderungen mit jedem abschalten geschichte werden, kann für eine sinnvolle arbeit auch ziemlich hinderlich werden … persönliche einstellungen und programme sind ebenfalls verloren.
ich habe mir hier etwas von den bekannten live-linuxen “knoppix” und “puppy linux” abgeschaut: beide bieten die möglichkeit, änderungen in einer separaten image-datei abzulegen. im falle eines groben fehlers können diese dateien gelöscht werden, was einem globalen zurücksetzen gleichkommt. zusätzlich zum betriebssystem-image gibt es also ein image mit dem userprofil und eines mit den programmen.
hierfür nutze ich “truecrypt” und das darauf auf aufsetzende “tcgina“. man könnte sicher auch mit einem konstrukt aus dem später genannten “filedisk” und ein paar batchfiles arbeiten, aber da “truecrypt” ohnehin auf mein system sollte und auch ein paar andere vorzüge im hinblick auf die sicherheit mitbringt, fiel meine wahl darauf. “tcgina” verschiebt ein benutzerprofil in einen verschlüsselten “truecrypt”-container und verbirgt es dabei vor neugierigen blicken. beim login des users wird dieser container eingebunden und das darin enthaltene profil geladen.
mein “tcgina”-container wurde in “d:\userprofil” angelegt, heißt “userprofil.tc” und hat eine statische größe von 128 mb. laufwerk “d” ist in meinem falle die sdhc-karte im kartenleser des eeepc. “tcgina” wurde angewiesen, den benutzeraccount des benutzers “user” zu verschlüsseln und auf dem laufwerksbuchstaben “u” zu mounten (achtung: es könnte zu einem konflikt mit dem usb-stick kommen, den “winsetupfromusb” ebenfalls auf “u” legt — ich habe den laufwerksbuchstaben des usb-sticks in der datenträgerverwaltung ändern müssen). das genaue prozedere der “tcgina”-konfiguration entnehmt ihr bitte dem wirklich gut geschriebenen pdf-handbuch im programmarchiv.
für die programme habe ich den 512 mb großen “d:\programme\programme.tc”-container angelegt und auf “p” eingebunden.
es ist wichtig, dass beide truecrypt-dateien auf “d” abgelegt werden! achtet darauf — nach dem ersten ramdisk-boot-werdet ihr wissen, warum.
da windows xp fortan im ramdisk-käfig arbeiten wird, gilt es jetzt, unbedingt benötigte anwendungen, die es nicht als portable-variante gibt, auf “p” zu installieren. das kann z.b. “7zip” sein, wenn es im kontextmenü des windows explorers eingebunden sein soll.
da “programme.tc” automatisch beim start gemountet werden soll, wird nun eine datei “autostarts.bat” unter “c:\dokumente und einstellungen\all users\startmenü\programme\autostart” angelegt, die folgenden inhalt hat:
@echo off
REM ========================
REM MOUNT PROGRAMME VOLUME
REM ========================
C:\Programme\TrueCrypt\TrueCrypt.exe /lp /q /s /a /c n /m rm /p "Programme" /v "D:\Programme\Programme.tc"
REM ========================
REM SLEEP FOR 10 SECONDS
REM ========================
C:\WINDOWS\unxutils\usr\local\wbin\sleep 10s
REM ========================
REM RUN AUTORUNS SCRIPT
REM ========================
P:\_autoruns\autoruns.bat
der erste aufruf nach “@echo off” (das lediglich die textanzeige in der eingabeaufforderung deaktiviert) bindet “programme.tc” auf dem laufwerksbuchstaben “p” ein. aufruf nummer zwei sorgt für eine minimale verschnaufpause, bevor aufruf drei die in “p:\_autoruns” befindliche batchdatei “autoruns.bat” ausführt, zu der ich gleich noch kommen werde.
der im zweiten aufruf benutzte befehl “sleep” bedingt, dass ihr die datei “sleep.exe” aus den “gnu utilities for win32” im programmpfad habt. kopiert euch also entweder “sleep.exe” nach “c:\windows\system32″ oder packt gleich das ganze paket irgendwo nach “c” und passt den pfad in den umgebungsvariablen von windows entsprechend an.nun wird auf “p” der ordner “_autoruns” angelegt und dort die batchdatei “autoruns.bat” angelegt. diese datei soll uns die möglichkeit geben, auch später noch automatisch startende funktionen einrichten zu können. zunächst benötigt diese datei keinen inhalt.
später könnte man dort z.b. die startmenü-shortcuts zu den portablen anwendungen ablegen: legt euch auf “p” einen ordner “_shortcuts” an und kopiert dort die programmverknüpfungen hin, die ihr sowohl als administrator als auch im user-account sehen wollt. mit folgenden zeilen werden diese verknüpfungen bei jedem windows-login benutzerübergreifend bereitgestellt:
mkdir "C:\DOKUME~1\ALLUSE~1\STARTM~1\PROGRA~1\_Apps"
copy /y "P:\_shortcuts\*.*" ""C:\DOKUME~1\ALLUSE~1\STARTM~1\PROGRA~1\_Apps\"
exit
abschließend prüft ihr nochmal, ob der inhalt von “c” wirklich kleiner als 512 mb ist. im notfall kann es sinnvoll sein, unnötige progrämmchen aus “c:\windows” und dessen unterordnern zu löschen bzw. nach “p” zu verschieben. aber vorsicht: nicht alles, was unnütz scheint, ist auch verzichtbar. wer auf nummer sicher gehen will, macht sich vorher ein backup der windows installation — es wäre schade, wenn man die bisherige arbeit mit falsch dosiertem übereifer zerstört.
nun wird’s kalt!
zunächst wird an einem zweiten pc ein linux-bootstick erstellt. am einfachsten passiert das mit “unetbootin“. ich arbeite derzeit vorwiegend mit der eeepc/netbook-distribution “cruncheee“, die auf ubuntu basiert und angenehm platz- und ressourcensparend ist. der linux-bootstick kann später noch zur parallelinstallation von linux genutzt werden.

nach der fertigstellung des linux-bootsticks wird der eeepc mit “cruncheee” (oder der netbook-distribution eurer wahl) gestartet. als nächstes sollte z.b. mit dem partitionseditor “gparted” gecheckt werden, welche partitionsnummern in benutzung sind. windows xp sollte auf /dev/sda1 zu finden sein. als speicherort für das windows-image wählen wir die sdhc-karte, die unter /media/SDHC zu finden sein sollte (meine sdhc-karte hat die datenträgerbezeichnung “sdhc”).
nun benötigen wir ein terminalfenster und legen los…
zunächst benötigen wir root-rechte:
sudo -s
nun sichern wir den master boot record der windows-installation:
dd if=/dev/sda of=/media/sdhc/windows-mbr.img bs=512 count=1
nun kommt die komplette windows-partition:
dd if=/dev/sda1 of=/media/sdhc/windows-image.img bs=1024
im grunde sind wir damit schon fertig. “cruncheee” kann wieder herunter gefahren werden und die sdhc-karte kann im zweiten pc gelesen werden.
auf diesem pc benötigen wir das programm “filedisk”, das man hier herunterladen kann. um es benutzen zu können, muss die im programmarchiv enthaltene treiberdatei “filedisk.sys” nach “c:\windiows\system32″ kopiert und “filedisk.reg” per rechtsklick — zusammenführen in die registry aufgenommen werden. nun öffnet man ein kommandozeilenfenster, wechselt in den filedisk-dateiordner und erstellt zunächst das ziel-image:
filedisk /mount 0 c:\win.img 384M q:
dennis empfahl in seinem forenbeitrag eine imagegröße von 256 mb. bei mir passten die im übernächsten schritt kopierten dateien aber nicht in ein so kleines image — daher 384 mb. nun wird laufwerk “q” im windows explorer ausgewählt und formatiert. das dateisystem woll “ntfs” sein und die dateikompression wird aktiviert.
als nächstes muss das windows-image von der sdhc-karte nach “c” des zweiten pcs kopiert und mit folgendem befehl eingebunden werden:
filedisk /mount 1 c:\windows-image.img v:
nun wollen wir den inhalt von “v” nach “q” übertragen. dennis nutzte hierfür “roadkil’s unstoppable copier“, andere user bevorzugen microsofts “robocopy”. ich war mit dennis empfehlung zufrieden.
anschließend kann “v” mit dem befehl…
filedisk /umount v:
…entfernt werden.
die ramdisk-komponenten sind wie gesagt bestandteil des windows 2003 servers. microsoft bieten alles notwendige auf ihrer webseite zum freien download an, und zwar in form des “windows server 2003 service packs 2″ (hier oder nach “KB914961″ googlen). der 376 mb große download wird dekomprimiert (z.b. mit “7zip”) und die darin enthaltenen dateien “ramdisk.sy_” und “ntldr” in einem temporären ordner zwischengespeichert. “ramdisk.sy_” muss abermals mit “7zip” entpackt werden. kopiert nun die datei “ramdisk.sys” nach “q:\windows\system32\drivers\” sowie “ntldr” nach “q:\” (ziel überschreiben).
als nächstes muss ein registry-patch angewandt werden. öffnet hierfür den registry-editor (start > ausführen > “regedit” eingeben > ok). wechselt in den schlüssel “hkey_local_machine” und wählt aus dem menü “datei” den punkt “struktur laden”. navigiert nun nach “q:\windows\system32\config”, wählt “system” und klickt “öffnen”. als schlüsselnamen nehmt ihr “sys”. der registry patch wird heruntergeladen, in “regpatch.reg” umbenannt und mittels rechtsklick — zusammenführen auf die “sys”-struktur angewandt. danach markiert ihr “sys” im registry editor und wählt im menü “datei” den punkt “struktur entfernen”.
das ramdisk-image kann nun mit dem befehl…
filedisk /umount q:
…ausgehängt und zurück nach “c” (oder /dev/sda1) auf den eeepc kopiert werden. am einfachsten geht das wieder unter zuhilfenahme des linux-bootsticks. ebenfalls nach “c” des eeepc gehört ein exemplar der “ntldr” aus dem windows server 2003 service pack 2 sowie die ordner “programme” und “userprofile” samt inhalt von der sdhc-karte.
da “c” nur 1 gb groß ist, müssen alle ordner (”dokumente und einstellungen”, “programme”, “windows”) zuvor gelöscht werden. alternativ vergrößert ihr die partition zuvor mit “gparted”. als letzten schritt müsst ihr nun noch das boot-menü (boot.ini) auf “c” wie folgt ändern: ersetzt die zeilen…
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
…durch…
default=ramdisk(0)\WINDOWS
…und…
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
…durch…
ramdisk(0)\WINDOWS="RAM Boot XP" /rdpath=\win.img /fastdetect /SOS /BOOTLOG
beim nächsten reboot kommt die stunde der wahrheit … und voílà: windows xp bootet in den arbeitsspeicher des eeepc!
falls ihr eine fehlermeldung bekommt, könnt ihr das ursprüngliche windows-image (= “windows-image.img”), das sich wohlmöglich noch auf der sdhc-karte befindet mit “dd” zurückspielen und die schritte erneut durchgehen. der häufigste fehler wird sein, dass nicht alle dateien aus dem windows- (”v”) ins ntfs-komprimierte ramdisk-image (”q”) kopiert wurden. so war es zumindest bei mir. ein nachträgliches entfernen von komponenten und erneutes kopieren löste bei mir das problem. wie gesagt: das ramdisk-größenlimit liegt bei 512 mb. die 512 mb gelten jedoch für den dateninhalt im nicht-ntfs-komprimierten zustand!