XP-Stick

Transcrição

XP-Stick
ct.0206.188-193
21.12.2005
17:26 Uhr ©Seite 188
Praxis | Windows XP
Axel Vahldiek
XP-Stick
Windows XP von USB-Laufwerken booten
Seit USB-Sticks ausreichend groß und USB-Festplatten
ausreichend preiswert sind, wächst der Wunsch,
Windows XP von solchen Laufwerken zu booten. Das
hat Microsoft zwar nicht vorgesehen, doch mit den
richtigen Handgriffen lässt sich der Wunsch erfüllen.
D
as eigene Windows XP
auf einem USB-Laufwerk
mit sich herumtragen
und an jedem beliebigen Rechner booten können – ein verbreiteter Wunsch. Doch der Umsetzung liegen Stolpersteine im
Weg: Erstens vermögen ohnehin
nur moderne Rechner von USBSpeichermedien zu booten und
zweitens hat Microsoft das Booten von USB bei Windows XP
nicht vorgesehen. Das Nachfolgende beschreibt, wie sich überprüfen lässt, ob ein PC überhaupt zum Booten von USB in
der Lage ist sowie die nötigen
Handgriffe, damit Windows XP
das an eben diesem Rechner
macht. Abschließend beschreiben wir, wie das auf dem USBLaufwerk installierte XP dazu zu
überreden ist, auch von anderen
188
Rechnern zu booten als von
dem, auf dem es eingerichtet
wurde. Idee und wertvolle Hinweise zu diesem Artikel lieferten
übrigens unabhängig voneinander unsere Leser Dietmar Stölting und Christian Kauffmann, an
beide vielen Dank dafür!
Platte machen
Um herauszufinden, ob ein PC
überhaupt von USB booten
kann, muss zuerst ein passend
vorbereitetes USB-Laufwerk her.
Wichtigstes Merkmal: Dessen
Größe, denn selbst ein abgespecktes Notfall-XP braucht mindestens 1 GByte Platz, sollen
auch noch Programme dazu, belegt XP schnell ein Vielfaches an
Platz. Windows und BIOS behandeln übrigens USB-Sticks und
Festplatte völlig gleich. Für erste
Gehversuche ist es daher im
Grunde egal, womit Sie anfangen. Allerdings spricht einiges
dafür, auf Dauer besser eine
USB-Festplatte zu verwenden
(siehe Kasten auf Seite 190). Für
das Booten ist jedoch nur wichtig, dass das Laufwerk wie eine
IDE-Festplatte eingerichtet ist,
also unter anderem über einen
Master Boot Record (MBR) sowie
eine Partitionstabelle verfügt.
Bei USB-Festplatten ist das normalerweise von vornherein so.
Viele USB-Sticks allerdings sind
stattdessen als Superfloppy formatiert, also wie eine große Diskette ohne Partitionstabelle. Der
Kasten auf Seite 189 schildert,
wie Sie das ändern.
USB-Festplatten können Sie
einfach mit der XP-eigenen
Computerverwaltung partitionieren und formatieren: einfach
die enthaltenen Partitionen löschen und eine neue primäre
NTFS-Partition einrichten. Dabei
schreibt XP auch den später benötigten Bootcode auf die Platte. Achten Sie anschließend darauf, dass diese Partition aktiv ist
(einzurichten im Kontext-Menü
der Partition). Vergeben Sie
einen aussagekräftigen Namen
wie XPBOOT. Es dürfte kein Problem darstellen, wenn auf der
USB-Platte weitere Partitionen
liegen, erfahrungsgemäß sollten
das aber keinesfalls weitere primäre sein.
Anschließend sind noch einige Dateien in die frisch erstellte
Partition auf dem USB-Laufwerk
zu kopieren, die auf Laufwerk C:
der internen Festplatte zu finden
sind. Schicken Sie einfach alle
dort liegenden Dateien (nicht
die Ordner) am bequemsten via
„Senden an …“ zum USB-Laufwerk. Damit kommen Sie beim
Testen immerhin bis zum XPBootmenü, was für eine sichere
Beurteilung der Boot-Fähigkeiten des PC ausreicht [1].
Damit das Bootmenü auch
wirklich erscheint, müssen in der
Boot.ini auf dem USB-Laufwerk
nach „[operating systems]“ mindestens zwei Zeilen folgen. Existiert nur eine, können Sie die einfach duplizieren. Das ergibt zwar
keinen funktionsfähigen Aufruf
im XP-Bootmenü, doch macht
das nichts, denn Ziel ist ja erst
mal nur ein Test der Boot-Funktion. Außerdem empfiehlt es sich
schon hier, in einer der Zeilen
den zwischen den Anführungsstrichen stehenden Namen des
zu startenden Betriebssystems
zu ändern, zum Beispiel in „USBXP“, damit Sie später immer
sicher sein können, welchen
Eintrag Sie gerade testen.
Gefunden!
Nun kann der erste Versuch erfolgen, den Rechner vom angestöpselten USB-Laufwerk zu
starten. Am einfachsten geht das,
wenn das BIOS ein Bootmenü
anbietet. Das lässt sich üblicherweise durch das Drücken einer
bestimmten Taste erreichen,
welche genau, unterscheidet
sich je nach Rechner, oft Esc, F5,
F9 oder F12. Achten Sie auf die
Textausgabe des BIOS, die sich
üblicherweise durch das Drücken der Taste „Pause“ anhalten
lässt, falls der Text zu schnell
durchscrollt. Eventuell ist auch
zuvor noch ein Bootscreen des
BIOS oder die Option „Fast Boot“
zu deaktivieren.
Taucht im BIOS-Bootmenü
irgendwas mit „USB“ oder „Removable Devices“ auf, lohnt das
Ausprobieren. Existiert kein (passender) Eintrag, hilft vielleicht ein
Blick ins BIOS-Setup. Bei der Bootreihenfolge lässt sich hoffentlich
„USB-Festplatte“, „USB-HDD“ oder
Ähnliches einstellen, eventuell
taucht auch die Bezeichnung des
Datenträgers auf (die können Sie
im Gerätemanager unter „Laufwerke“ auslesen). Mitunter ist bei
der Bootreihenfolge nur allgemein „Festplatte“ oder „HDD“
einzustellen, dafür lässt sich dann
unter einem Extra-Menüpunkt
die Reihenfolge einstellen, in der
das BIOS die vorhandenen Festplatten nach bootfähigen Systemen durchsucht. Und hier taucht
hoffentlich das vor dem Einschalten des PC eingestöpselte USBLaufwerk auf.
Eher unwahrscheinlich, doch
nicht unmöglich ist, dass der PC
vom USB-Gerät bootet, wenn in
der Boot-Reihenfolge USB-Floppy, -CD oder -ZIP-Laufwerk an
erster Stelle steht.
Hilft auch das nicht, bleibt nur
die Suche nach einem BIOS-Update. Scheuen Sie sich nicht, den
Hersteller explizit darum zu bitten. Doch wenn selbst das nichts
bringt, klappt das Booten von
USB an diesem Rechner schlicht
nicht.
Falls der Rechner tatsächlich
von USB startet, sollte nach kurzer Zeit das XP-Bootmenü auftauchen, inklusive des Eintrags
„USB-Laufwerk“. Nach dreißig
c’t 2006, Heft 2
©
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.
ct.0206.188-193
21.12.2005
17:26 Uhr ©Seite 189
Praxis | Windows XP
Sekunden verschwindet das XPBootmenü wieder und der Rechner dürfte mit einer Fehlermeldung stehen bleiben, weil er
kein Betriebssystem findet – wie
auch, es ist ja noch keines auf
dem USB-Laufwerk.
XP vorbereiten
Um XP auf das USB-Laufwerk zu
bekommen, ist glücklicherweise
keine Neuinstallation nötig. Kopieren Sie stattdessen alle Ordner des auf der internen Festplatte installierten XP auf das
USB-Laufwerk. Dazu gehören
außer dem Windows-Ordner
selbst zumindest die Verzeichnisse „Programme“ und „Dokumente und Einstellungen“. Falls
der Platz auf dem USB-Laufwerk
keine Komplett-Kopie der Ordner erlaubt, können Sie sie vorher abspecken, etwa mit der
Datenträgerbereinigung (weitere
Diät-Tipps für Windows finden
Sie in [2]).
Auf welcher Partition das XP
auf der internen Platte liegt, ist
egal, dazu später mehr. Vor dem
Kopieren sollten Sie in der Systemsteuerung unter „System/Erweitert/Einstellungen von Starten und Wiederherstellen“ noch
das Häkchen vor „Automatisch
Neustart durchführen“ entfernen. Möglicherweise geht ja
beim Booten von USB etwas
schief, und dann produziert XP
einen Bluescreen mit nützlichen
Informationen. Da XP im Grundzustand aber sofort den Rechner
neu startet, bleibt Ihnen keine
Zeit zur Beweisaufnahme.
Windows XP lässt sich im laufenden Betrieb nicht komplett
kopieren, denn es verweigert
unter anderem das Vervielfältigen der geöffneten Registry. Abhilfe schafft das Starten eines
parallel installierten Betriebssystems oder das Booten eines
von CD laufenden Systems wie
Barts PE (zuletzt auf der CD der
c’t 23/05). Von dort aus lässt sich
bequem der Inhalt der WindowsPartition auf das USB-Laufwerk
kopieren.
Nun ist noch auf dem
USB-Laufwerk erneut die Boot.ini
anzupassen. Unterhalb von
„[operating systems]“ muss folgende Zeile stehen:
multi(0)disk(0)rdisk(0)partition(1)\WINDO
WS="USB-XP"
Das einzige, was Sie anpassen
dürfen, ist wieder der Text in Anführungsstrichen, den Sie frei
wählen können. Unter diesem
taucht das zu bootende XP später im Bootmenü auf, sofern
unter „[operating systems]“ noch
weitere Zeilen stehen (sonst
startet XP sofort durch).
Treiberscherereien
Eigentlich könnte XP nun von
USB booten – doch wer es
versucht, bekommt zwar kurz
das XP-Startlogo zu sehen, dann
jedoch spuckt XP einen Bluescreen mit der Fehlernummer
0x0000007B aus. Während des
Bootvorgangs nutzt XP zuerst
die BIOS-Funktionen für den Zugriff auf die Laufwerke, schaltet
aber später auf die eigenen Treiber um, in diesem Fall eben die
USB-Treiber. Die sind jedoch
noch gar nicht geladen, was XP
mit dem Bluescreen quittiert.
Also muss man Windows anweisen, die Treiber früher zu laden.
Wann Windows welche Treiber lädt, legen einige Parameter
in der Registry fest. Das Ändern
dieser Reihenfolge ist allerdings
nicht ganz trivial, denn es gilt,
die Registry von einem anderen
Windows aus zu ändern. Starten
Sie das XP von der internen Festplatte und darunter Regedit, wo
der Wurzelschlüssel „HKEY_
LOCAL_MACHINE“ (HKLM) zu
markieren ist. Klicken Sie anschließend in der Menüleiste
unter Datei auf „Struktur laden …“. Sollte der Menüpunkt
ausgegraut sein, ist HKLM nicht
markiert. In dem sich öffnenden
Fenster wechseln Sie zum USBLaufwerk und hangeln sich dort
zu Windows\System32\Config
durch und öffnen die Datei „System“ (die Datei ohne Endung).
Nun fordert Regedit auf, einen
Schlüsselnamen zu vergeben.
Der ist eigentlich beliebig, doch
der Übersichtlichkeit halber
empfiehlt sich auch hier etwas
wie „USB-Platte“.
Zu ändern sind einige Einträge
unter HKLM\USB-Platte\ControlSet001\Services (eventuell auch
unter ControlSet002 oder einem
anderen ControlSet: Welche
Nummer zu setzen ist, regelt der
DWORD „Default“ unter HKLM\
USB-Platte\Select [3]). Dort finden
sich fünf Schlüssel, die sämtliche
Parameter für den Start von USBTreibern enthalten, die für den
Einsatz von USB-Geräten erforderlich sind. Einer der beiden
Schlüssel usbuhci und usbohci
enthält die Parameter für die
USB-Host-Controller. Allerdings
gibt es immer nur einen davon
auf einem System: Entweder usbuhci, falls ein „Universal Host
Controller“ installiert ist, oder usbohci bei einem „Open Host Controller“. Zusätzlich zu diesem gibt
es einen „Enhanced Host Controller“ (usbehci), der die USB-Anschlüsse auf das HiSpeed-Tempo
von USB 2.0 bringt. Wann XP die
Treiber für die USB-Root-Hubs
lädt, hängt von den Parametern
unter usbhub ab, und usbstor
schließlich ist für die USB-Massenspeicher zuständig.
In jedem der maximal fünf
Schlüssel existiert ein DWORD
namens „Start“ mit dem Wert
„3“, der in allen Fällen auf „0“ zu
ändern ist. Das weist Windows
an, die USB-Treiber bereits beim
Booten zu laden und nicht erst
später im laufenden Betrieb
(weitere Infos enthält Artikel
103000 der Microsoft Knowledge-Base [4]).
Das reicht jedoch leider noch
nicht. XP teilt alle Treiber zusätzlich in Gruppen ein und lädt die
Gruppen der Reihe nach. Die
USB-Treiber stecken normalerweise in einer Gruppe namens
„Base“, die XP für unsere Zwecke
zu spät lädt. In welcher Gruppe
ein Treiber steckt, regelt der
Wert der Zeichenfolge „Group“,
die ebenfalls in den fünf Schlüsseln zu finden ist. Auch sie ist anzupassen: Ersetzen Sie „Base“
durch „System Reserved“ – den
Namen der zuerst geladenen
Gruppe. Abschließend können
Sie den Schlüssel HKLM\USBPlatte markieren und unter Datei
die „Struktur entfernen“.
Vorsicht, Falle
Windows XP bootet jetzt vom
USB-Laufwerk – aber nur genau
einmal, denn nach dem ersten
Start läuft einmalig eine erneute
Hardware-Erkennung und währenddessen erkennt XP unter
anderem die USB-Festplatte als
neue Hardware. Die Folge: Es
richtet den Treiber neu ein und
verbiegt gerade mühsam veränderte Einträge teilweise wieder
zurück, was beim nächsten Start
prompt wieder zu einem Bluescreen führt. Vermeiden lässt sich
das leider nicht. Selbst wenn Sie
dem System den Schreibzugriff
auf die entsprechenden Schlüssel verweigern, ändert es die Einträge.
Da bleibt nichts übrig, als geduldig erneut die fünf oben genannten Schlüssel gleich nach
dem allerersten Start des USB-XP
komplett durchzusehen und gegebenenfalls erneut anzupassen.
Dazu brauchen Sie immerhin
keine Struktur zu laden, sondern
können die Registry direkt unter
dem vom USB-Gerät gestarteten
XP bearbeiten. Anschließend
startet es ohne neue HardwareErkennung, sodass diese Anpassung bei weiteren Starts an diesem PC nicht mehr anfällt.
USB-Sticks ins HDD-Format umwandeln
Statt extra mit Linux nachzuprüfen, ob ein USB-Stick wie
fürs Booten von XP erforderlich
wie eine Festplatte und nicht
als Superfloppy formatiert
ist [9], können Sie das kostenlose Tool Hpusbfw.exe von HP
bemühen. Das HP-Tool erfordert eine Installation und zum
Formatieren des Laufwerks Administrator-Rechte. Nach dem
Start zeigt es die angestöpselten USB-Laufwerke an. Wählen
Sie als Dateisystem NTFS und
vergeben Sie als „Volume
label“ einen aussagekräftigen
Namen. Beim Formatieren richtet das Programm automatisch
alles Nötige ein.
Sollte Hpusbfw.exe beim Formatieren scheitern, hilft üblicherweise das Überschreiben
des ersten Sektors des USBSticks mit Nullen, etwa mit dem
kostenlosen Tiny Hexer von der
Heft-CD der c’t 23/05. Wählen
Sie bei dem unter „Datei/Datenträger/Datenträger Öffnen“
das USB-Laufwerk aus, das üblicherweise als letztes „\\.\PhysicaldriveX“ auftaucht – beim
Identifizieren hilft der Listeneintrag darunter, der direkt nach
dem „\\.\“ den Laufwerksbuchstaben enthält. Beim Öffnen
können Sie die Vorgaben so lassen, dann öffnet der Tiny Hexer
automatisch den richtigen Sektor. Am einfachsten überschreiben Sie nun den kompletten
Sektor durch Gedrückthalten
der Taste mit der Ziffer 0. Nun
noch „Datei/Datenträger/Änderungen schreiben“ aufrufen
und das Programm beenden.
c’t 2006, Heft 2
©
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.
189
ct.0206.188-193
21.12.2005
17:26 Uhr ©Seite 190
Praxis | Windows XP
Eventuell spuckt Windows
allerdings noch eine Fehlermeldung aus, weil es Probleme mit
dem Auffinden seiner Auslagerungsdatei auf der internen Platte hat. Damit Ihr USB-XP später
autark laufen kann, sollten Sie in
der Systemsteuerung unter „System/Erweitert/SystemleistungEinstellungen/Erweitert/Ändern“
die Auslagerungsdatei auf das
USB-Medium verschieben. Sämtliche Änderungen übernimmt
XP an dieser Stelle übrigens
nicht durch Klick auf „OK“. Stattdessen ist jede einzeln via „Festlegen“ zu bestätigen.
Wo bin ich?
Für den korrekten Betrieb des
von USB gestarteten XP ist es
erforderlich, dass das USB-Laufwerk nach dem Booten denselben Laufwerksbuchstaben erhält, den auch das von der internen Platte gebootete XP hat.
Doch wenn beispielsweise das
interne XP auf E: lag und dort
eine USB-Platte unter G: zu finden war, dann ist das von USB
startende XP später auch erst
mal unter G: zu finden. Deshalb
zeigen sämtliche Verknüpfungen dieses XP etwa im Startmenü auf die falsche Partition. Es
gilt also, den Laufwerksbuchstaben dieses XP nachträglich anzupassen. Je nachdem, auf welcher
Partition das Quell-XP liegt, führen unterschiedliche Methoden
zur Lösung des Problems.
Lag das Quell-XP auf C:, ist die
Sache recht einfach: Starten Sie
unter dem USB-XP Regedit und
löschen Sie den Schlüssel HLKM\
SYSTEM\MountedDevices komplett. Nach einem Neustart sortiert XP alle Laufwerke neu, und
das USB-Laufwerk bekommt als
Boot-Platte eben den ersten
Laufwerksbuchstaben C:.
Wenn das Quell-XP weiter
hinten lag, ist der Ansatzpunkt
zwar der gleiche Schlüssel, allerdings darf er dann nicht gelöscht
Stick kontra Festplatte
Festplatten speichern Informationen auf rotierenden Magnetscheiben. Zum Auslesen der
einzelnen Bits messen hochempfindliche Schreib-/LeseKöpfe die magnetische Polarisierung winziger, genau definierter „Domänen“. Indem sie
diese magnetischen Bereiche
umpolen, schreiben die Köpfe
Daten auf die Scheibe(n). Die
Polarisierung der magnetischen
Domänen ist grundsätzlich beliebig oft umkehrbar. Die Lebensdauer von Festplatten ist
dennoch begrenzt: Staub oder
Abrieb schädigen die magnetische Oberfläche und die Lager
des Plattenstapels verschleißen.
Stöße, starke Vibrationen und
hohe Temperaturen beschleunigen diese Vorgänge.
USB-Speicherstäbchen kommen
ohne bewegte Teile aus und
nutzen statt magnetischer Felder elektrische Ladungen zur
Datenspeicherung: Die Transistoren der Flash-EEPROM-Chips
fangen sozusagen Elektronen
ein und sollen sie nach Angaben der Hersteller bis zu
zehn Jahre lang halten. In USBFlash-Devices (UFDs) stecken
üblicherweise Flash-Chips vom
NAND-Typ, die etwa auch in
CompactFlash-(CF-) oder Secure-Digital-(SD-)Karten für Kameras, in MP3-Spielern oder
Memory-Sticks zu finden sind.
Sie sind mechanisch robust, arbeiten geräuschlos und sparsamer als Festplatten und sind
länger lagerfähig als manche
optische Medien.
Zugriff!
Flash-Speicher wickeln außerdem bestimmte Lesezugriffe
schneller ab als Festplatten. Bei
typischen 3,5-Zoll-Laufwerken
190
mit EIDE- oder SATA-Schnittstelle für Desktop-Rechner treten zwischen dem Eintreffen
des Lese-Befehls und der Auslieferung der gewünschten Daten
Totzeiten von etwa 8 bis 20
Millisekunden auf; schließlich
muss die Festplatte ihre Leseköpfe zunächst über die richtige
Spur bugsieren und dann auch
noch abwarten, bis die gesuchten Daten vorbeisausen. Diese
Latenzzeiten bremsen vor allem
beim Zugriff auf viele kleine Datenblöcke, die auf den Magnetscheiben weit voneinander entfernt sind.
Zwar erlauben auch Flash-Chips
keinen verzögerungsfreien Zugriff auf die Speicherzellen,
beim Lesen ist die Wartezeit
vom Anlegen einer Adresse bis
zur Auslieferung der Daten dennoch ungefähr um den Faktor
1000 kürzer als bei Festplatten.
Dieser Vorteil lässt sich jedoch
meist nicht in voller Höhe nutzen, weil die (möglichst preiswerten) Controller-Chips, die die
eigentlichen Speicherbausteine
mit dem externen (USB-)Interface verbinden, zu langsam sind.
Aber dann …
Wenn die Übertragung erst
einmal begonnen hat und die
benötigten Daten unmittelbar
benachbart liegen, erreichen
moderne Festplatten sehr hohe
Datentransferraten: in den
schnellsten Zonen – den äußeren Spuren mit dem größten
Umfang – über 60 MByte pro
Sekunde. Sie lesen und schreiben Daten außerdem praktisch
gleich schnell. Ihre SteuerElektronik nutzt zusätzlichen
DRAM-Pufferspeicher (Cache),
um wiederkehrende Anfragen
schneller bedienen zu können.
UFDs und Flash-Speicherkarten
hingegen erreichen bei weitem
nicht die maximalen Datentransferraten aktueller Festplatten, die schnellsten Typen bringen es im USB-2.0-Modus unserer Erfahrung nach auf höchstens 25 MByte/s. Sehr preiswerte UFDs bleiben sogar unter
10 MByte/s.
Die größten Nachteile zeigen
Flash-Speichermedien beim
Schreibzugriff. Dabei lassen sich
einzelne Speicherzellen nicht
einfach überschreiben, sondern
es müssen zunächst ZellenGruppen (Blocks) gelöscht werden, was jeweils einige Millisekunden dauert. Erst dann erfolgt
der eigentliche Schreibvorgang,
der nur Millisekunden-Bruchteile in Anspruch nimmt. Insgesamt geht ein solcher EraseWrite-Zyklus zwar noch ein
Quentchen schneller als ein
Festplatten-Zugriff, doch auch
beim Schreiben bremst die niedrigere Dauertransferrate.
Haltbarkeit
Das gewichtigste Problem ist
aber die Lebensdauer der Chips,
denn die Zahl der Schreibvorgänge ist begrenzt: Gängige
Bausteine sind für 100ˇ000
Schreibzyklen ausgelegt, manche Hersteller sichern sogar nur
10ˇ000 zu. Selbstverständlich
sind damit Mittelwerte über
eine große Zahl von Chips gemeint, die für gewöhnlich auch
nicht schon nach exakt dieser
Zyklenzahl ausfallen. Und im
Vergleich zu wiederbeschreibbaren optischen Medien schneiden Flash-Karten und -Sticks
ebenfalls gut ab – sie sind eben
für den typischen Einsatzzweck
als Datenlager gedacht.
Zum dauerhaften Ersatz von
Festplatten, auf denen eine Betriebssystem-Partition liegt, eignen sich normale UFDs aber
ebenso wenig wie herkömmliche CF-Karten. Aktuelle Betriebssysteme (Windows, Linux)
mit virtueller Speicherverwaltung führen nämlich ständig
Schreibzugriffe auf die so genannten Swap-Files aus; viele
Anwendungen (Web-Browser)
puffern Daten in temporären
Dateien, Server-Dienste protokollieren ihre Arbeit in LogDateien. Unter Windows haben
wir die Zahl der Schreibzugriffe
bei typischem PC-Einsatz mit
dem MMC-Snap-In „Leistung“
(performance.msc) protokolliert:
Beim Tippen in der Textverarbeitung erfolgt alle zwei bis drei
Sekunden ein Schreibzugriff,
das Abspeichern einer Datei
oder das Öffnen einer Webseite
verursacht 20 bis über 100
Schreibvorgänge. Selbst bei nur
einem Schreibzugriff alle zwei
Sekunden ist der Grenzwert
eines typischen USB-Speicherstäbchens bei acht Stunden
täglicher Arbeit nach 55 Werktagen erreicht.
Mit Spezial-Controllern, die die
Zugriffe mit einer optimierten
Schreibstrategie auf unterschiedliche Flash-Zellen verteilen, wollen Firmen wie Bitmicro,
Memtech oder SanDisk mehrere Millionen zuverlässige
Schreibvorgänge auf ihren Solid
State Disks (SSDs) sicherstellen.
Unser Beispiel-PC erreicht aber
bei 200 jährlichen Arbeitstagen
schon nach zwei Jahren über
zehn Millionen Schreibzyklen –
damit sind selbst die vergleichsweise extrem teuren SpezialSSDs nicht für Standardanwendungen attraktiv.
(ciw)
c’t 2006, Heft 2
©
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.
ct.0206.188-193
21.12.2005
17:26 Uhr ©Seite 191
c’t 2006, Heft 2
©
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.
191
ct.0206.188-193
21.12.2005
17:26 Uhr ©Seite 192
Praxis | Windows XP
Nur wenn Sie die USBTreiber in die Gruppe „System
Reserved“ verschieben, startet
Windows XP sie früh genug,
um via USB booten zu können.
werden. Stattdessen gilt es,
einen oder mehrere darin enthaltene Binärwerte umzubenennen, konkret jene, die „\DosDevices\C:“ oder ähnlich heißen.
Wenn beispielsweise das QuellXP auf E: lag und dort das USBLaufwerk als G: eingebunden
war, dann markieren Sie den
Binärwert „\DosDevices\G:“ und
benennen ihn in „\DosDevices\
E:“ um. Das klappt aber nur, falls
nicht bereits ein gleichnamiger
Binärwert existiert. Falls doch,
benennen Sie diesen zuerst um
und ordnen ihm dabei einen beliebigen anderen noch freien
Laufwerksbuchstaben zu. Anschließend ist ein Neustart fällig.
Auch auf andere
Das so vorbereitete XP bootet
zwar von USB, aber nur an dem
Rechner, von dem das Quell-XP
stammt. Bei allen anderen (nicht
baugleichen) Rechnern scheitert
der Start mit dem bekannten
Bluescreen 0x0000007B. Wenn
Sie Pech haben, misslingt nach
einem solchen Versuch sogar
das Booten am Ursprungsrechner. Damit XP nicht nur am ersten, sondern auch an weiteren
Rechnern startet, sind einige
weitere Handgriffe erforderlich –
und zwar für jeden weiteren PC.
Es gelang uns nicht, das System
so vorzubereiten, dass es universell an jedem anderen Rechner
bootet – sollten Sie einen solchen Weg kennen, würden wir
uns über eine Mail freuen.
Unter anderem stolpert XP am
neuen PC über ihm unbekannte
IDE-Host-Controller, obwohl es
die zum Booten von USB gar
nicht braucht. Das lässt sich vergleichsweise einfach abstellen:
Ändern Sie nach dem Start des
USB-XP am Ursprungsrechner in
dessen Gerätemanager den Treiber für den (oder die) IDE-Controller. Markieren Sie dazu unter
„IDE ATA/ATAPI-Controller“ den
IDE-Controller und klicken in dessen Kontextmenü auf „Treiber
aktualisieren“. Lehnen Sie den
Wunsch nach dem Aufbau einer
192
Internet-Verbindung ab und
wählen dann „Software von einer
Liste oder bestimmten Quelle installieren“. Anschließend „Nicht
suchen, sondern den zu installierenden Treiber selbst wählen“,
und im nächsten Fenster den
„Standard-Zweikanal-PCI-IDE-Controller“ aussuchen. Mit dessen
Treiber kann XP alle IDE-HostController ansprechen, sodass
zumindest diese Ursache für
einen Bluescreen beseitigt ist.
Die Einträge „Primärer IDE-Kanal“
und „Sekundärer IDE-Kanal“ müssen Sie nicht ändern.
Reinfrickeln
Noch gravierender ist, dass XP
die USB-Hardware des neuen PC
nicht kennt. Denn wie erwähnt
wechselt XP während des Hochfahrens zu eigenen Treibern, die
es startet, sobald es bestimmte
Geräte erkennt. Dummerweise
kennt das USB-XP aber sämtliche
für das Booten notwendige USBHardware des neuen PC noch
nicht, und es kann sie auch erst
nach dem Booten kennen lernen. Die Folge ist wieder ein
Bluescreen.
Um Windows die USB-Hardware des neuen PC bekannt zu
machen, starten Sie zuerst das XP
von der internen Festplatte des
neuen PC, stöpseln anschließend
das USB-Laufwerk ein und starten Regedit, wobei Sie wieder die
Datei „System“ vom USB-Laufwerk als Struktur laden, am besten wieder unter „USB-Platte“.
Es folgt ein ziemliches Gefummel, das größte Aufmerksamkeit
erfordert. Es gilt, XP die Hardware-IDs der USB-Root-Hubs, der
PCI-to-USB-Host-Controller sowie gegebenenfalls des USBLaufwerks bekannt zu machen.
Zudem sind diese IDs mit den
richtigen Treibern zu verknüpfen. Alle notwendigen Informationen finden sich in der Registry
des neuen PC unter HKLM\System\CurrentControlSet\Enum in
den Unterschlüsseln „USB“,
„USBSTOR“ und „PCI“, und sie
sind nach HKLM\USB-Platte\
ControlSet001\Control\CriticalDeviceDatabase zu übertragen.
Widmen Sie sich zunächst den
IDs aus dem Unterschlüssel
„USB“. Dazu suchen Sie zuerst
den Quellschlüssel unter HKLM\
System\CurrentControlSet\Enum,
wo einige Unterschlüssel zu
finden sind. In jedem von ihnen
ist irgendwo in einem weiteren Unterschlüssel (etwa unter
„ROOT_HUB\4&3788cc09&0“) eine mehrteilige Zeichenfolge namens „HardwareID“ zu finden.
Deren Wert sieht ungefähr so aus:
USB\ROOT_HUB&VID8086&PID7112&REV0000
USB\ROOT_HUB&VID8086&PID7112
USB\ROOT_HUB
Sie benötigen davon nur die
erste Zeile. Kopieren Sie diese,
indem Sie den Eintrag doppelklicken, die erste Zeile des Wertes markieren, im Kontextmenü
auf „Kopieren“ und anschließend
auf „Abbrechen“ klicken.
Bewegen Sie sich nun zum
Zielschlüssel HKLM\USB-Platte\
ControlSet001\Control\CriticalDe
viceDatabase. Hier ist ein neuer
Unterschlüssel anzulegen, der als
Namen die soeben kopierte erste
Zeile erhält – allerdings ist vor
dem Bestätigen mit OK noch der
Austausch des Backslash „\“
gegen eine Raute „#“ erforderlich.
Dieser neue Schlüssel macht dem
USB-XP die Identifikationsnummer des USB-Gerätes bekannt.
Die ist noch mit dem Treiber zu
verknüpfen. Kopieren Sie dazu
aus jenem Unterschlüssel, in dem
Sie die Hardware-ID gefunden
haben, die Zeichenfolgen „ClassGUID“ und „Service“ mitsamt
ihren Werten in den frisch erstellten Unterschlüssel unter CriticalDeviceDatabase. Leider bietet der
bordeigene Registry-Editor keine
Funktion zum Kopieren von Einträgen, es gibt aber andere Programme, die das können, etwa
der „Registry-Explorer“ von der
Heft-CD der c’t 23/05. Alternativ
können Sie die Schlüssel auch
von Hand neu erstellen.
Dieses mühsame Vorgehen ist
leider bei jedem einzelnen
Unterschlüssel unter Enum\USB\
ROOT_HUB und Enum\USB\
ROOT_HUB20 fällig (insgesamt
zirka fünf oder noch mehr).
Zusätzlich müssen Sie unter
Enum\USBSTOR nach dem Eintrag für Ihr USB-XP-Laufwerk
suchen und diesen übertragen.
Schließlich sind auch die PCIto-USB-Host-Controller nach diesem Schema in die CriticalDeviceDatabase aufzunehmen. Sie finden deren Parameter in der Registry des auf der internen Festplatte installierten XP unter
HKLM\System\CurrentControlSet\
Enum\PCI. Immerhin müssen Sie
Ist das legal?
Ob Sie das in diesem Artikel beschriebene Booten von USB mit
Ihrem XP treiben dürfen, hängt
von der Ihnen zur Verfügung
stehenden Windows-Lizenz ab.
Üblicherweise erlaubt Microsoft
bei handelsüblichen Endanwenderversionen (System-Builder-Pakete) nur die Installation
auf einem einzigen Rechner.
Dass keine Parallelnutzung auf
mehreren PCs erfolgen darf, ist
klar. Alles Weitere ist juristisch
stark umstritten. Auf jeden Fall
stellt bereits das Kopieren von
Software in den Arbeitsspeicher
rechtlich gesehen eine Vervielfältigungshandlung dar, die
durch den bestimmungsgemäßen Gebrauch der erworbenen
Software abgedeckt sein muss,
um als legal gelten zu können.
Mit Hilfe einfallsreicher Speichermedien-Tricks kann man
das Urheberrecht also nicht umgehen.
Bei End-Anwender-Versionen
stoppt außerdem der Aktivierungszwang den Einsatz von XP
auf mehreren Rechnern: Das
Aktivieren ist nach jedem Andocken an neue Rechner erneut
erforderlich und anschließend
auch wieder am ursprünglich
eingesetzten PC.
Anders sieht es aus, wenn Sie
über eine Firmen-Lizenz verfügen, die den Einsatz des XP an
mehreren Rechnern erlaubt -dann dürfen Sie das USB-XP wie
beschrieben an verschiedenen
Rechnern nutzen und unterliegen auch nicht dem Aktivierungszwang.
(psz)
c’t 2006, Heft 2
©
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.
ct.0206.188-193
21.12.2005
17:26 Uhr ©Seite 193
Praxis | Windows XP
Damit XP auch von einem
anderen Rechner via USB
startet, muss man ihm dessen
USB-Hardware nahe bringen.
Übertragen Sie dazu die
jeweiligen Hardware-IDs mit
einigen Parametern aus der
Registry des auf der internen
Platte installierten XP in die
Registry des XP auf dem
USB-Laufwerk.
hier nicht alle Unterschlüssel
übertragen. Jeder Unterschlüssel
unterhalb von „PCI“ enthält
wiederum einen weiteren Schlüssel, in dem sich eine Zeichenfolge
namens „Class“ befindet. Enthält
die als Wert irgendwas mit „USB“,
sind die an gleicher Stelle liegende Hardware-ID, ClassGUID und
Service wie beschrieben zu überführen.
Einen hab ich noch …
Eventuell ist noch ein weiterer
Eingriff erforderlich. Wie oben
beschrieben, steckt in einem
Rechner entweder ein Universal
Host Controller oder eben ein
Open Host Controller. Soll das XP
auf einem weiteren Rechner starten, der die jeweils andere Controller-Sorte verwendet (nachzuprüfen im Gerätemanager unter
„USB-Controller“), muss der passende Treiber noch ins USB-XP
transferiert werden. Extrahieren
Sie dazu auf dem USB-Laufwerk
aus dem Archiv Sp2.cab, das
unter WINDOWS\Driver Cache\
i386 zu finden ist, die jeweils fehlende Datei usbohci.sys oder
usbuhci.sys in das Verzeichnis
Windows\System32\Drivers.
Dieser Treiber ist noch in der
Registry zu verankern. Erstellen
Sie dazu in der Registry des USBXP unter HKLM\System\CurrentControlSet001\Services einen
Unterschlüssel namens usbuhci
(oder usbohci) und darunter
eine Zeichenfolge namens
„Group“ mit dem Wert „System
Reserved“, einen DWORD namens „Start“ mit dem Wert „0“
sowie eine „erweiterbare Zeichenfolge“ namens „ImagePath“, die als Wert „System32\
Drivers\usbuhci.sys“ erhält (oder
eben „System32\Drivers\usbohci.sys“). Wenn alles endlich erledigt ist, können Sie die Struktur
„USB-Platte“ wieder entfernen.
Nun sollte XP an dem neuen
Rechner endlich via USB starten –
allerdings erneut nur einmal, da
die Hardwareerkennung wieder
einige USB-Geräte neu erkennt,
sodass wieder das oben beschriebene Ändern der Startreihenfolge
der USB-Treiber fällig ist. Jedoch
wiederum nur einmal, nach einer
erneuten Anpassung bleiben die
Einträge korrekt.
Oh, noch ein Bluescreen
Es besteht eine gewisse Wahrscheinlichkeit, dass das USB-XP
auf dem Rechner noch aus anderen Gründen einen Bluescreen
produziert. Schuld kann beispielsweise die Hardware sein,
die das USB-XP beim Hochfahren
neu erkennt. Das führt mitunter
zu seltsamen Phänomenen. So
hatten wir beim Testen den Fall,
dass ein USB-XP von einem
PC mit AMD-Prozessor stammte
und für das Booten auf einem PC
mit Intel-CPU vorbereitet wurde.
Das klappte auch tadellos, doch
anschließend erzeugte das USBXP auf dem AMD-System beim
Booten einen Bluescreen, zur
Abwechslung mit der Fehlernummer 0x0000007E. Der Grund
dafür war nicht etwa bei der
USB-Hardware zu suchen, sondern beim Energie-Management
der Intel-CPU. Dafür installiert XP
nämlich einen eigenen Treiber,
der beim Booten auf dem AMDSystem zum Absturz führt. Das
Deaktivieren des Treibers behob
das Problem, eine Anleitung
dazu steht im Artikel 888372 in
Microsofts Knowledge Base.
Auf einem anderen Rechner
bootete das USB-XP problemlos
und es ließ sich auch kurze Zeit
nutzen. Doch nach einigen Minuten kam dann doch wieder
das blaue Bild, Fehlernummer
diesmal 0x000000F4. Offenbar
war die im Hintergrund weiterlaufende Hardwareerkennung
irgendwann auf ein Problem gestoßen, das Windows für so gravierend hielt, dass es das System
lieber komplett stoppte. Eine
wirkliche Lösung dafür haben
wir nicht gefunden, doch als
Krücke half es, im USB-XP den
Dienst „Plug & Play“ zu deaktivieren und damit die komplette
Hardwareerkennung auszuhebeln. Microsoft hält so was allerdings für keine gute Idee
(wir normalerweise auch nicht,
siehe [5]) und hat deshalb eine
Hürde eingebaut: In der Computerverwaltung lässt sich „Plug &
Play“ nicht deaktivieren. Doch es
klappt mit Msconfig: Unter Dienste einfach das Häkchen entfernen und den Rechner neu starten, und Sie sind den Dienst los.
Es dürfte noch viele weitere
Fehler geben, die das Booten von
USB verhindern, bei unseren Tests
jedoch nicht aufgetreten sind.
Hilfe bei der Analyse der dabei
üblicherweise auftretenden Bluescreens bieten [6] und [7].
Fazit
Es ist schon erstaunlich, welche
Verrenkungen fällig sind, damit
XP von einem USB-Laufwerk
bootet. Sollte es bei Ihnen nicht
auf Anhieb klappen, gehen Sie
im Zweifel die Anleitung erneut
durch (und falls es Sie tröstet:
Auch wir brauchten bei manchen Rechnern mehrere Anläufe). Allerdings dürfte das zu-
gegebenermaßen auch keine
Garantie für einen Erfolg sein.
Ärgerlich ist vor allem, dass
diese Verrenkungen bei jedem
weiteren PC von neuem nötig
sind. Aber Besserung ist zumindest für künftige Windows-Versionen in Sicht: Mittlerweile hat
auch Microsoft erkannt, dass das
Booten von USB eine nützliche
Angelegenheit sein kann [8]. (axv)
Literatur
[1]ˇAxel Vahldiek, Starthilfe, Bootloader von Windows 2000 und XP
sichern, c’t 21/02, S. 248
[2]ˇAxel Vahldiek, Kleinkriegen, Windows im Mini-Format, c’t 6/03,
S. 260
[3]ˇAxel Vahldiek, Gerrit Grundwald,
Selbstheilungskräfte, Wie Windows 2000 und XP sich selbst
reparieren, c’t 26/03, S. 102
[4]ˇMicrosofts Knowledge-Base: http://
support.microsoft.com/search
[5]ˇAxel Vahldiek, Christoph Hoppe,
Mit erhöhter Schlagzahl, Tipps
und Tricks für Windows XP auf
dem Prüfstand, c’t 17/05, S. 102
[6]ˇHajo Schulz, Wenn Windows
blaumacht, Ursachen von Bluescreens aufspüren, c’t 10/04, S.110
[7]ˇhttp://msdn.microsoft.com/
library/en-us/DevTest_g/hh/Dev
Test_g/BCIntro_f55acfed-32964e84-8885-c3162fd0ddbf.xml.asp
[8]ˇMicrosoft über das Booten von
USB: www.microsoft.com/whdc/
device/storage/usb-boot.mspx
[9]ˇAxel Vahldiek, Jürgen Schmidt,
Hols vom Stöckchen, Notfall-System vom USB-Stick booten,
c’t 13/03, S. 208
Soft-Link 0602188
c’t 2006, Heft 2
©
Copyright by Heise Zeitschriften Verlag GmbH & Co. KG. Veröffentlichung und Vervielfältigung nur mit Genehmigung des Heise Zeitschriften Verlags.
c
193

Documentos relacionados