Aktionen

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


Kommentare

Loading comments...