Heim | eMail | Michael Dominok

XP-Installation "gabeln"

Version de0.92 2005-01-24
www.dominok.net/de/it/de.it.klonexp.html

0 Inhalt

0 - Inhalt
1 - Intro
2 - Startszenario
3 - XP Vorbereiten
4 - Debian installieren
5 - ntfsclone
6 - NTFS-Bootsektor anpassen
7 - Bootmanager grub einrichten
8 - BOOT.INIs anpassen
9 - Letzte Schritte

1 Intro

Zurück zum Inhalt

Das angestrebte Ergebnis ist eine frische XP-Installation - mittels ntfsclone - in zwei weitere Partitionen auf derselben Platte zu klonen und diese Installationen dann auf spezielle Aufgaben (z.B. eine zum Daddeln und eine für technische Spielereien) zu auszurichten. Von diesen können dann - im sauberen Urzustand - Images gesichert werden die dann - bei späterem Bedarf - bequem über "verschmutzte" XPs drübergebügelt werden können. Da ich selbst keine komplette Doku dazu finden konnte fasse ich hier kurz, die Schritte für dieses spezifisches Vorhaben zusammen. Beim zusammensuchen der Informationen haben mir Anton Altaparmakov im Forum von linux-ntfs.org, sowie Dan Goodell mit seinem ausgezeichneten Text Understanding Multibooting geholfen.


2 Startszenario

Zurück zum Inhalt

In diesem Szenario wird von einem System mit nur einer Festplatte ausgegangen in deren erster Partition (hier 20GB groß) ein WinXP installiert wurde. Das schränkt automatisch die Anzahl der möglichen Klone auf 2 ein, da XP darauf besteht in einer primären Partition zu residieren. Die letzte der vier möglichen Primären wird hier für eine erweiterte Partition verwendet in der ein kleines Helfer-Linux untergebracht wird. Hier ist es mit 30GB allerdings nicht soo klein soll aber später auch als Lagerstätte für die gesicherten Images der XPen dienen. Den Rest-Platz kann man dann für Datenpartitionen oder andere Betriebssystem verwenden die weniger allürenhafte Ansprüche haben als XP.


3 XP Vorbereiten

Zurück zum Inhalt

Eine weitere "Nickeligkeit" mit der XP aufwartet ist das es sich die seine "Umgebung" "merkt". Damit ist nicht nur die ungefähre Hardwareausstattung des jeweiligen Rechners gemeint sonder auch dessen Konfiguration. Im Registry-Key HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices werden die Partitionen gespeichert die in XPs Nachbarschaft "rumliegen". Dabei werden auch versteckte Partitionen registriert! Klont man nun einfach XP und bootet das so erstellte System findet dieses in seiner Registry eine Umgebungsbeschreibung vor die mit der tatsächlichen nicht übereinstimmt. Darauf reagiert XP verstimmt und gibt sich "verwirrt". Auf meinem System konnte man sich zwar anmelden wurde von XP aber statt mit dem Desktop mit der Abmeldungs-Meldung belohnt. Anschließen fror das System ein.
Aber dies kann man leicht umgehen indem man regedit an wirft und die Werte im entsprechendem Registry-Key HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices kurzerhand löscht. Beim nächsten Reboot wird sich XP dann erneut "umsehen" und seine Registry dann,an die inzwischen von uns veränderten, Gegebenheiten anpassen.


4 Debian Installieren

Zurück zum Inhalt

Als Helfer-Linux, mit dem XP bearbeitet werden wird, soll hier Debian zum Einsatz kommen. Es gibt sicherlich noch jede Menge anderer Lösungen. Zum Beispiel mit proprietärer Software oder anderen Linuxen. Debian bietet sich zum einem an weil es flux und einfach installiert ist und zum anderen meine Lieblingsdistribution ist. Also gilt es sich die Installer-CD - z.B. die Netinst-Version - zu besorgen, diese zu Booten und bis zur Partitionierung standardmäßig vorzugehen. Dabei wird man wohl auch ohne die Debian-Installationsanleitung auskommen können.
Bei der Partitionierung angelangt werden zwei primäre für die Klone angelegt und im Debian-Menü mit "Nicht verwenden" markiert. Es macht natürlich Sinn die Partitionen in einer Größe anzulegen, die dazu geeignet ist, die zu klonenden Installation auch aufzunehmen! Die tatsächich benötigte Größe hängt vom verwendeten Platz auf der Original-Partition ab. Wenn man die neuen Partitionen mit der selben Größe anlegt wie die alte ist man auf der sicheren Seite. Den Rest der Platte kann/muß man dann für logische Partitionen verwenden. Eine wird direkt für Debian verbraucht. Bei der Paketauswahl kann natürlich auf unnötigen Schnick-Schnack, wie z.B. eine grafische Benutzerschnittstelle, verzichtet werden.


5 ntfsclone

Zurück zum Inhalt

Ist die Installation abgeschlossen wird von der Konsole aus erst einmal das eigentliche Werkzeug - die ntfsprogs - sowie ein Hexadezimal-Editor an Bord geholt. Debian typisch, als root, mit apt-get install ntfsprogs hexedit Als nächstes kann man dann den Klonvorgang an werfen. Dabei sollte darauf geachtet werden das beim Aufruf von ntfsclone die Reihenfolge der Parameter beachtet wird! ntfsclone --overwrite /dev/ziel /dev/quelle In diesem Fall ntfsclone --overwrite /dev/hda2 /dev/hda1 und, "etwas" später ntfsclone --overwrite /dev/hda3 /dev/hda1


6 NTFS-Bootsektor anpassen

Zurück zum Inhalt

Nun müssen noch die NTFS-Bootsektoren der geklonten Partitionen modifiziert werden. Da XP gerne in der ersten Partition residiert müssen die vorausgehenden "Übersprungen", mit einem Offset maskiert werden. Dafür müssen wir erst feststellen wo diese beginnen. fdisk -ul /dev/hda gibt z.B.:

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1   *          63    40965749    20482843+   7  HPFS/NTFS
/dev/hda2        40965750    81979694    20506972+   7  HPFS/NTFS
/dev/hda3        81979695   122993639    20506972+   7  HPFS/NTFS
/dev/hda4       122993640   181582694    29294527+   5  Extended
/dev/hda5       122993703   181582694    29294496   83  Linux
Den Wert in der Start-Spalte der geklonten Partitionen muss noch ins Hexadezimalformat gewandelt werden. Das geschieht mit dem Kommando printf "0x%llx\n" 40965750 Als Ergebnis sollte 0x2711676 ausgegeben werden.
printf "%x" 40965750 tut's auch, sieht aber weniger schön aus.
Der hexadezimale Wert 2711676 muss nun noch weiter verarbeitet werden. Die einzelnen Ziffern müssen, nach dem Muster 0xABCDEFGH => GH EF CD AB paarweise "verdreht" werden
Für 2711676 ergibt dies 76167102
Wenn 4 paare verdreht werden sollen aber nur 7 Ziffern zu Verfügung stehen wird links um eine Null ergänzt die im hexadezimalen dort genauso wertneutral ist wie im vertrauterem dezimalen Zahlensystem.
Nun gilt es den so gewonnenen Wert noch in den Bootsektor der entsprechenden Partition - hier hda2 - zu schreiben. Dies geschieht mit hexedit /dev/hda2
Dort werden an der Position 0x1c die vier Ziffernpärchen 76 16 71 02 eingefügt und dann mit <STRG>-X Abgespeichert.
Für hda3 wird analog vorgegangen.


7 Bootmanager grub einrichten

Zurück zum Inhalt

In diesem Szenario soll die Ursprüngliche XP-Partition die anderen beiden sehen können. Dies ist, zumindest einmalig, sogar nötig.
Beim erstmaligen Starten der beiden geklonten XPs dürfen die anderen (XP-) Partitionen, nicht sichtbar sein da XP sonst bei der Vergabe der Laufwerksbuchstaben durcheinander kommt. Später, nachdem XP den entsprechenden Registry-Eintrag erstellt hat, können diese wieder sichtbar gemacht werden.
Das ist leicht durch das Anpassen von /boot/grub/menu.lst zu erreichen. Hier nur die XP-relevanten Einträge - für den Erststart - am Ende.

title         Master-XP auf hda1
unhide        (hd0,0)
unhide        (hd0,1)
unhide        (hd0,2)
root          (hd0,0) 
savedefault
makeactive
chainloader +1

title         Geklontes XP auf hda2
hide          (hd0,0)
unhide        (hd0,1)
hide          (hd0,2)
root          (hd0,1)
savedefault
makeactive
chainloader +1      
   
title         Geklontes XP auf hda3
hide          (hd0,0)
hide          (hd0,1)
unhide        (hd0,2)
root          (hd0,2)
savedefault
makeactive
chainloader +1


8 BOOT.INIs anpassen

Zurück zum Inhalt

Ein Letztes ist noch zu erledigen. In den BOOT.INIs der geklonten XPs wird noch immer die erste Partition als zu bootende angegeben. Das würde XP natürlich nicht akzeptieren und mit einer AUTOCHECK PROGRAMM NOT FOUND - SKIPPING AUTOCHECK-Fehlermeldung quittiert. Daher muss zunächst noch einmal das Ur-XP gebootet werden um von dort aus die BOOT.INIs der geklonten Partitionen zu bearbeiten. Dort muss die Partitionsnummer geändert werden. Für hda2 so:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="XP auf hda2" /fastdetect /NoExecute=OptIn


9 Letzte Schritte

Zurück zum Inhalt

Als abschließende Maßnahme können die beiden Klone gebootet werden damit die XPs ihre Registries aktualisieren können. Dann kann schon mit dem Zuschneiden auf die speziellen Aufgaben begonnen werden.