Windows8 mit Linux auf neue Harddisk migrieren…

p(abstract). Festplattenplatz hat die fiese Angewohnheit, einfach immer weniger zu werden, und dann komm irgendwann ein fieses Popup mit der Meldung: „Plattenplatz?!? Ist aus!“. In der Vergangenheit hatte man hier 2 Optionen nach dem Kauf einer größeren Platte: 1. Reinstall the OS, reinstall all applications. 2. Kostenpflichtige Programme wie Acronis, die in der Lage waren, alle fiesen versteckten stellen, an denen sich Windows die Hardware der Systemfestplatte merkt, umzukonfigurieren. Mit Windows8 scheint sich dieses Problem nach meinem gestrigen Experiment in Wohlgefallen aufgelöst zu haben.

h3. Disclaimer

Das hier ist keine Waschzettel-Anleitung die jeder Endnutzer durchführen kann. Ich gehe von soliden Linux-Kenntnissen aus. Wer den Vorgang anhand dieser Beschreibung nicht versteht, sollte das lassen und zu 1. oben im Abstract greifen. Daher gibt es auch keine Details.

h3. Voraussetzungen

* Das System bootet mit EFI. Ich habe keine Ahnung, wie sich ein System mit normalem MBR-Bootvorgang verhält.
* Die neue Platte ist selbstredend größer als die alte.

h3. Vorgehen

# Beschaffung einer beliebigen Linux-Distribution. In meinem Fall ein aktuelles Ubuntu CD-Image.
# Kopieren dieses Images auf einen USB-Stick
# Einbau der neuen Platte parallel zur alten (mein Notebook hat 2 Disk-Plätze, aber ein USB-Gehäuse tut’s natürlich auch.
# Booten der Live-Distro
# Kopieren des raw-Devices von alter auf neue Platte, incl. allen Partitionierungsinformationen mit dd.
# Verschieben und Vergrößern der existierenden Partitionen auf der neuen Platte nach Belieben. Benutzt habe ich hier gparted.
# Vergrößern des NTFS-Filesystems auf der vergrößerten Partition mit ntfsresize
# Fertig

h3. Ist-Stand der alten Platte:

* Plattengröße alt: 256GB SSD
* Plattengröße neu: 512GB SSD
* Div. Windows-Geraffel-Partitionen incl. EFI
* Meine Windows C: Partition von 100GB
* 1 Linux LVM PV von 120GB
* 1 Recovery-Partition vom Laptop-Hersteller für die Wiederherstellung von Windows8 im K-Fall

h3. Umsetzung

Im Ubuntu-Live-System fehlen ein paar Tools, die ich zuerst nachinstalliert habe. Dazu gehören:

* htop
* dstat
* gparted
* gfdisk (da bei modernen Systemen normalerweise GPT-Partitionen zum Einsatz kommen)
* Google-Chrome, damit ich bei der Warterei während des Kopierens NetFlix schauen konnte 🙂

Nachdem ich mir zur Live-Beobachtung des Kopiervorgangs 2 Fenster mit htop und dstat geöffnet hatte, habe ich in einem 3. Fenster den Klon-Job gestartet. Ein simples @dd if=/dev/sda of=/dev/sdb bs=4k@ war ausreichend.

Den Fortschritt kann man mit folgendem Einzeiler in einem weiteren Fenster beobachten:


(while [ 1 ]; do kill -USR1 ; sleep 1; done)

Oder man begnügt sich mit den @read@ und @write@ Werten von dstat.

Das klont die alte Platte auf die Neue, incl. aller Partitionsdaten.

Die gewünschten Partitionen kann man nach dem Kopiervorgang dann ganz einfach mit gparted anpassen. In meinem Fall habe ich

# Die Recovery-Partition an das Ende der Platte verschoben.
# Meine LVM PV auf 150GB vergrößert
# Dann die LVM PV direkt bis an die Recovery-Partition geschoben
# Anschliessend den gesamten freien Bereich der Windows C:-Platte zugewiesen.

*Achtung*: Ubuntu aktiviert die Volume-Group sobald gparted beim Start die neue Partitionstabelle der neuen Platte geladen hat. Die gefundenen LVs müssen also unmounted und deaktiviert werden, genau wie die VG. (@lvchange -a no @ und @vgchange -a n @).

Die LVM PV kann nicht in einem Batchlauf vergrößert und verschoben werden, daher muss dazwischen ein __Apply__ stattfinden.

Danach habe ich das System herunter gefahren, die alte Platte ausgebaut, die neue der Ordnung halber in den 1. Slot gesteckt, und das System probeweise in beiden Betriebssystemen erfolgreich gebootet.

Windows zeigte ein einziges Problem. In der Datenträgerverwaltung wurde die Partitionsgröße von C: korrekt angegeben, im Windows-Explorer stand noch die alte Größe. Mit dem Windows @diskpart@ ließ sich das Problem nicht beheben, es kam eine Fehlermeldung @unknown Parameter@ oder irgendein Blödsinn in dieser Art.

Nochmal unter Linux gebootet, konnte ich das NTFS-Volume dann aber mit @ntfsresize@ problemlos vergrößern, beim nächsten Windows-Boot zeigte auch der Explorer die korrekte Größe.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.