Wie kann eine Festplatte ohne Partition „partitioniert“ werden, ohne dass Daten verloren gehen?

Wie kann eine Festplatte ohne Partition „partitioniert“ werden, ohne dass Daten verloren gehen?

Ich habe eine tragbare 1-TB-Festplatte, die ich für Backups verwende. Das gesamte Laufwerk ( /dev/sdb) wurde als ext4Dateisystem formatiert.

btrfsIch habe über die Vorteile von für Backups (Prüfsummen, Selbstheilung usw.) gelesen und überlege, diese Festplatte von ext4auf zu konvertieren btrfs.

Ich bin ziemlich sicher, dass ich die Größe der Festplatte immer noch ändern kann ( e2fsck -f /dev/sdb && resize2fs /dev/sdb 500G && fdisk /dev/sdboder ungefähr). Ich bin mir jedoch nicht sicher, wie ich Partitionen in ein Gerät „einführen“ kann, das ursprünglich keine Partitionen hatte.

Ist dies möglich und wenn ja, wie?

(Beachten Sie, dass die Dateisysteme selbst – ext4, btrfs, usw. – ziemlich irrelevant sind. Bei der Frage geht es lediglich darum, ein Gerät zu partitionieren, das ursprünglich ohne Partition erstellt wurde, und dabei das vorhandene Dateisystem nicht zu verlieren.)

Antwort1

Partitionstabellen (zumindest im MBR- oder GPT-Stil) befinden sich am Anfang und/oder Ende der Festplatten, Sie können sie also einführen, wenn Sie den erforderlichen Speicherplatz freigeben können.

Wenn ich mit einer Terabyte-Festplatte arbeite, würde ich folgendermaßen vorgehen.

  1. Ändern Sie die Größe des ext4-Dateisystems auf 499 GB (um auf Nummer sicher zu gehen). Dadurch wird sichergestellt, dass alle Daten, die Dateisystemstruktur usw. in die ersten 499 GB großen Blöcke auf der Festplatte passen. Idealerweise sollten Sie das Dateisystem so weit wie möglich verkleinern, damit Sie in den folgenden Schritten weniger Daten kopieren müssen.
  2. ddKopieren Sie die Blöcke mit oder einem ähnlichen Tool auf die zweite Hälfte der Festplatte .
  3. Partitionieren Sie die Festplatte und erstellen Sie eine Partition, die etwas größer ist als das Dateisystem (500 GB). Verwenden Sie hierfür GPT. Sie überschreiben Blöcke am Anfang und Ende der Festplatte, sodass die Kopie des Dateisystems am Anfang der Festplatte hinüber ist.
  4. Kopieren Sie die Rohblöcke aus der zweiten Hälfte der Festplatte in die neu erstellte Partition, wieder mit ddoder etwas Ähnlichem. Sie müssen die Offsets und Größen basierend auf dem, was Sie in Schritt 2 getan haben, berechnen, aber das Ziel ist einfach ( /dev/sdX1).
  5. Passen Sie die Größe des Dateisystems erneut an, sodass es die gesamte Partition einnimmt.

Mit einem Werkzeug wieddrescuedie umgekehrt kopieren können, können Sie dies etwas vereinfachen:

  1. Passen Sie die Größe des Quelldateisystems so weit wie möglich an.
  2. Berechnen Sie, wo die erste Partition beginnen würde (ohne die Partitionstabelle tatsächlich zu erstellen).
  3. Verschieben Sie die Blöcke, aus denen das Quelldateisystem besteht, so dass sie dort beginnen, wo die erste Partition beginnen würde. (Hier müssen Sie am Ende mit dem Kopieren beginnen.)
  4. Partitionieren Sie die Festplatte.
  5. Ändern Sie die Größe des Dateisystems.

Angesichts der Menge an Kopiervorgängen wäre es einfacher, die Daten an einem anderen Ort zu sichern und wiederherzustellen! Sie könnten den Kopiervorgang einschränken, indem Sie den Anfang des ext4-Dateisystems speichern und diesen und anschließend die restlichen Daten wiederherstellen. Dies erfordert jedoch eine sorgfältigere Buchführung.

Antwort2

Ich habe ein 2-TB-Laufwerk erfolgreich und ohne Datenverlust neu partitioniert. Ich wollte Backups von einer GNU/Linux-Box und einer Windows-Box durchführen, also habe ich die EXT4-Partition auf 1 TB verkleinert und eine neue 1-TB-Partition erstellt, die ich als NTFS-Dateisystem formatiert habe.

Ich musste lediglich die GUI-Disks-App in Ubuntu verwenden. Andere Distributionen sollten eine ähnliche GUI-App zur Verwaltung von Partitionen haben. Ich kann mir vorstellen, dass die Verwendung von BTRFS anstelle von NTFS genauso gut funktionieren würde.

Natürlich sollte die Neupartitionierung auch vom Terminal aus möglich sein.

Antwort3

Ich bin verwirrt.

Sie sagten, die Festplatte sei als ext4 formatiert, alsohabeeine Partition. Vielleicht zeigt fdisk sie nicht an, weil die Partitionstabelle der Festplatte gpt ist und Ihr fdisk dies nicht unterstützt. In diesem Fall können Sie parted verwenden

sudo parted -l /dev/sdb

Außerdem können Sie ext4 in btrfs konvertierenwie in diesem Arch Linux-Handbuch beschrieben.

verwandte Informationen