Tipp: Partitionstabellen kopieren mit sgdisk
Egal ob bei dem ersten Aufsetzen oder bei einem späteren Erweitern eines Software Raids unter Linux, es muss immer auf zusammengehörenden Festplatten die gleichen Daten in die Partitionstabelle eingetragen sein. Die meisten Administratoren lösen das Problem mittels eines manuellen Aufrufs und lassen sich zunächst die alte Partitionstabelle ausgeben und tragen die Daten dann auf der neuen Festplatte ein.
tux@linux ~ $ sudo gdisk -l /dev/sda
GPT fdisk (gdisk) version 0.8.10
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Disk /dev/sda: 5860533168 sectors, 2.7 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): 9E91EA64-7F47-4DE7-82E6-B162A0F22F83
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 5860533134
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)
Number Start (sector) End (sector) Size Code Name
1 264192 2361343 1024.0 MiB FD00 Linux RAID
2 2361344 5860533134 2.7 TiB FD00 Linux RAID
128 2048 264191 128.0 MiB EF02 BIOS boot partition
Diese Vorgehensweise lässt sich auf eine einzelne Festplatte ohne Probleme anwenden, birgt aber auch hier schon die Möglichkeit, dass sich der Administrator vertippt und falsche Daten eingibt.
Sinnvoller wäre es die Daten einfach zu kopieren, also die Struktur von der ersten Festplatte auf die nächste zu übertragen. In einigen Anleitungen im Internet findet man den Hinweis auf die Möglichkeit mit dem Befehl dd den MBR der Festplatte zu kopieren. Dies funktioniert aber nur bei identischen Festplatten und der Nutzung einer MBR – Partionierung ohne Erweiterte Partition. Sobald die „Guid Partition Table“ (GPT) im Einsatz ist befindet sich im MBR nur noch ein Hinweis auf die Nutzung von GPT und kein eigentlicher Eintrag mehr.
An dieser Stelle hilft der Befehl mit dem Namen sgdisk. Dieser mag dem einen oder anderen bekannt vorkommen auf Grund der Tatsache, dass es einen Befehl sdisk für die Manipulation von MBR Daten gibt.
Der Befehl sgdisk bietet ähnliche Funktionalitäten und die — für die wir uns interessieren — ermöglicht uns den Inhalt einer Partitionstabelle zu extrahieren und in eine neue Partitionstabelle zu schreiben.
tux@linux ~ $ sudo sgdisk -R=/dev/sda /dev/sdb
creating new GPT entries.
The operation has completed successfully.
Nach diesem Aufruf sind die beiden Partitionstabellen auf den Festplatten /dev/sda
und /dev/sdb
identisch. Dies sollte aber nicht so sein. Die GUIDs der Festplatte /dev/sdb
sollten andere als bei der ersten Festplatte sein.
Um dies zu reparieren kennt der Befehl sgdisk
den Parameter -G
. Dieser teilt der Festplatte und den darauf untergebrachten Partitionen eine neue GUID zu.
tux@linux ~ $ sudo sgdisk -G /dev/sdb
Creating new GPT entries.
The operation has completed successfully.
Wie zu sehen ist, sind die Ausgaben der beiden Befehlsaufrufe identisch, da bei beiden die Partitionstabelle neu generiert wird. Beim zweiten Aufruf wird sie aus den eigenen Daten generiert und neue, zufällige, GUIDs erzeugt.
Somit lassen sich auch für größere Software Raids oder bei Ausfall einer Festplatte die Partitionstabellen durch die beiden o. g. Aufrufe ohne die Chance als Administrator einen Zahlendreher zu produzieren klonen.