Linux Ubuntu MBR Datenträger in GPT Datenträger umwandeln kein LVM
Aus znilwiki
Changelog:
- 18.06.2024 erste Version
Vorwort
In einigen meiner Anleitungen hier wird unter Linux ein 2. Datenträger eingebunden.
Dieser wird unter anderem mit dem Programm fdisk Partitioniert. Nun startet fdsik per Voreinstellung damit einen MBR Datenträger zur erstellen.
An sich kein Problem, außer die Festplatte soll später mal auf mehr als 2TiB vergrößert werden (was als VM ja jederzeit geht).
In meinen Anleitungen verwende ich immer kein LVM, daher kann man auch nicht einfach eine Festplatte / Partion dranhängen.
MBR Datenträger in GPT Datenträger umwandeln
Ein Snapshot der VM vorher schadet nicht!
In diesem Beispiel ist die Festplatte /dev/sdb1
unter
/var/www
gemountet und wird vom apache2 Webserver verwendet.
Eventuelle Zugriffe stoppen
Damit keiner die Festplatte benutzt stoppe ich in diesem Fall den Webserver:
systemctl stop apache2.service
Festplatte unmounten
Wir heben den Mount der Festplatte auf - wenn das nicht geht, greift noch etwas darauf zu. Das könnt auch ihr selbst sein falls ihr noch per cd
in dem Verzeichnis steht
umount /var/www
Auf GPT umstellen Versuch 1
Auf gpt umstellen:
gdisk /dev/sdb
Wenn da aber ganz unten eine Meldung steht wie
Warning! Secondary partition table overlaps the last partition by 33 blocks! You will need to delete this partition or resize it in another utility.
Dann brecht an dieser Stelle mit q ab! Dann geht es nicht, wir müssen erst die Partition verkleinern. Wenn da keine Warnung steht, dann
w
drücken und den nächsten Punkt mit dem Partition verkleinern überspringen
Partition verkleinern
Wir brauchen hinten 33 Blöcke, da könnten Daten stehen, also verkleinern wir die Partition vorher.
Ist die Partition z.B. 100GB groß, verkleinern wir diese um 1GB, setzen diese also auf 99GB.
Zuerst müssen wir die Partition einmal überprüfen, sonst ist das verkleinern nicht erlaubt:
e2fsck -f /dev/sdb1
Beispielausgabe:
e2fsck 1.47.0 (5-Feb-2023) Durchgang 1: Inodes, Blöcke und Größen werden geprüft Durchgang 2: Verzeichnisstruktur wird geprüft Durchgang 3: Verzeichnisverknüpfungen werden geprüft Durchgang 4: Referenzzähler werden überprüft Durchgang 5: Zusammengefasste Gruppeninformation wird geprüft /dev/sdb1: 837598/67108864 Dateien (0.5% nicht zusammenhängend), 72531101/268435200 Blöcke
Nun können wir verkleinern:
resize2fs /dev/sdb1 900G
Beispielausgabe:
resize2fs 1.47.0 (5-Feb-2023) Die Größe des Dateisystems auf /dev/sdb1 wird auf 235929600 (4k) Blöcke geändert. Das Dateisystem auf /dev/sdb1 is nun 235929600 (4k) Blöcke lang.
Jetzt wird es spooky, wir löschen die Partition und erstellen die verkleinert wieder neu.
Große Berechnungen spare ich mir, ich ziehe einfach ein paar Blöcke ab:
fdisk /dev/sdb
und dann
d
Ausgabe:
Partition 1 ausgewählt Partition 1 wurde gelöscht.
Dann
n p Erster Sektor mit Enter übernehmen Letzter Sektor von der vorgeschlagenen Zahl etwa 100.000 abziehen. 1 n
Ausgabe:
Partitionstyp p Primär (0 primär, 0 erweitert, 4 frei) e Erweitert (Container für logische Partitionen) Wählen (Vorgabe p): p Partitionsnummer (1-4, Vorgabe 1): 1 Erster Sektor (2048-2147483647, Vorgabe 2048): Letzter Sektor, +/-Sektoren oder +/-Größe{K,M,G,T,P} (2048-2147483647, Vorgabe 2147483647): 2147400000 Eine neue Partition 1 des Typs „Linux“ und der Größe 1024 GiB wurde erstellt. Partition #1 enthält eine ext4-Signatur. Wollen Sie die Signatur entfernen? [J]a/[N]ein: n
Damit haben wir die Partition gelöscht und wieder neu erstellt. Ich hatte die vorher Platte um 1G verkleinert, das wären bei 4K Sektoren 262.144 Stück. Mit den 100.000 die man abzieht ist mal also irgendwo dazwischen.
Ganz unten ist zu sehen das er schon erkannt das da schon was ist - und wir behalten diese Signatur!
Nun noch schreiben:
w
Jetzt können wir einen neuen Anlauf für die Umstellung auf GPT gehen, die Warnung unten sollte verschwunden sein:
gdisk /dev/sdb
Ausgabe:
GPT fdisk (gdisk) version 1.0.10 Partition table scan: MBR: MBR only BSD: not present APM: not present GPT: not present *************************************************************** Found invalid GPT and valid MBR; converting MBR to GPT format in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing 'q' if you don't want to convert your MBR partitions to GPT format! *************************************************************** Command (? for help):
Die Warnung mit den 33 Blöcken ist weg, Prima! Wir tippen
w Y
Ausgabe:
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): Y OK; writing new GUID partition table (GPT) to /dev/sdb. The operation has completed successfully.
Dem Betriebssystem mitteilen das sich da etwas geändert hat (sicherheitshalber):
partprobe /dev/sdb
und mit einem
mount -a
ist alles wieder gemountet.
Nun können wir die Partition noch wieder auf den gesamten Speicherplatz vergrößern:
growpart /dev/sdb 1 resize2fs /dev/sdb1
Ihr könnt die Dienste wieder starten oder das System einmal rebooten.
Die Inspiration kam aus dieser Quelle: https://www.ubuntubuzz.com/2023/05/safely-convert-hard-disk-to-gpt-without-data-loss.html