GEOM_PART: Partition 1 on ... is not aligned on 4096 bytes

cabriofahrer

Well-Known Member
Nachdem ich jetzt die neue Festplatte gekauft habe und einbauen will, um das alte System zu klonen, bin ich nochmal meinen eigenen alten Thread durchgegangen (https://www.bsdforen.de/threads/hauptplatte-am-einfachsten-klonen.34061/).

Zunächst wollte ich die swap Partition entfernen wie in Kap. 17.3 beschrieben. Also gelöscht und ein growfs von ada0p2 gemacht, um jetzt mit dd klonen zu können, wie damals. Sicherheitshalber habe ich noch mal einen Reboot gemacht, um zu sehen, dass alles OK ist vor dem Klonen. Beim Booten ist mir allerdings folgendes aufgefallen, was nicht heißt, dass das neu ist und etwas mit dem Entfernen von der swap Partition und dem growfs (Kap. 17.3) zu tun hat, vielleicht ist es mir nur vorher nicht aufgefallen, ich weiß es eben nicht:

dmesg -a:

Code:
/dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS
/dev/ada0p2: clean, 10947896 free (307120 frags, 1330097 blocks, 0.5% fragmentation)
GEOM_PART: partition 1 on (diskid/DISK-WD-WXR1E62MVLM3, GPT) is not aligned on 4096 bytes
GEOM_PART: partition 2 on (diskid/DISK-WD-WXR1E62MVLM3, GPT) is not aligned on 4096 bytes

Spielt das eine Rolle und stellt das ein Problem dar? Und wenn ich jetzt klone, werde ich dann auf der neuen Festplatte die gleiche Meldung haben?
 
Ich würde nicht mit dd klonen, sondern einfach das gewünschte Partitionslayout auf die neue Platte schreiben und dann einfach die Dateien kopieren. Im Anschluss muss nur noch der Bootblock neu geschrieben werden, fertig.

Damit umgehst du die Altlasten der alten Partitionierung (z.B. falsches Alignment).

Rob
 
Etwas genauer bitte, wenn gpart show:

Code:
$ gpart show
=>       34  488397094  ada0  GPT  (233G)
         34        128     1  freebsd-boot  (64K)
        162  488396966     2  freebsd-ufs  (233G)

Es sind hier also 2 Partitionen vorhanden, ada0p1 und ada0p2, die jeweils gesondert wohl mit dump kopiert werden müssen?
Und geht das direkt aus dem System oder sollte man das (wie bei dd) von einer Live-CD aus machen?

Ohne schrittgenaue Anleitung mit einzelnen Kommandos komme ich nicht weiter.
 
Ohne schrittgenaue Anleitung mit einzelnen Kommandos komme ich nicht weiter.
Das ist schlecht, denn das getraue ich mich nun nicht. Die man-page von gpart zeigt doch schöne Beispiele, die man einfach umsetzen kann.
Die neue Platte mit gpart partitionieren und labeln, Bootcode schreiben, Dateisysteme festlegen, mounten und kopieren. Geht im laufenden Betrieb, wenn du auf beide Platte zugreifen kannst.
 
Mir ist insbesondere das Kopieren nicht ganz klar. Das geht nicht mit gpart, soweit ich das richtig verstehe. Habe noch das hier gefunden, ist aber veraltet und verstehe ich nicht ganz:

http://www.wonkity.com/~wblock/docs/html/backup.html

und

https://www.freebsd.org/doc/en_US.ISO8859-1/books/faq/disks.html#NEW-HUGE-DISK

Ich würde es lieber mit dd machen, wenn ich nicht haargenau weiß, wie es mit der anderen Methode geht und es mir keiner ganz genau aufzeigen kann.

Kann mir jemand erklären, wie ich den alignement-Fehler wegkriegen kann? Ich frage nochmal, spielt der überhaupt eine Rolle oder fällt der irgendwie ins Gewicht? Büße ich Performance ein oder wirkt sich der irgendwie anders negativ aus?
 
und ein growfs von ada0p2
du kannst ein growfs ja nur machen, wenn du schon Partitionen/Dateisysteme hast. Wo kommen die denn her, wenn du noch nicht mit dd die alte Platte geklont hast?
dd geht nur von außen. Du kannst nicht deine laufende Systemplatte mit einem dd auf eine andere Platte übertragen.
Im laufenden Betrieb braucht man einen Snapshot, man muss den Systemzustand quasi technisch einfrieren und kann dann dies übertragen. So etwas macht dump|restore. Dazu muss dein Ziel aber erst eingerichtet werden.
Mit dd übernimmst du komplett die alte Platte, also inklusive Sektorgröße und allignement. Wenn deine neue Platte verschieden ist, solltest du das lieber nicht machen sondern sie erst manuell einrichten.
Lies die man page zu gpart. die ist gut und verständlich und zeigt viele Beispiele.
Und du wendest Befehle ja nur auf die neue Platte an, so what? Wenn es schief geht, ist ja nichts verloren. Üb halt so lange, bis du sie passend hast. Denk an den Bootcode.
 
du kannst ein growfs ja nur machen, wenn du schon Partitionen/Dateisysteme hast. Wo kommen die denn her, wenn du noch nicht mit dd die alte Platte geklont hast?

Die alte Platte ist schon selbst ein Klon von damals (alter vorhin erwähnter Thread)...^^.

Jetzt habe ich bereits gestern nochmal geklont und die neue Platten soeben als Hauptplatte angeschlossen, funktioniert ganz normal.
Nun stehe ich gerade vor dem Schritt, ein growfs zu machen. Kann ich JETZT das Alignment-Problem durch den richtigen Parameter -a korrigieren? Was sollte ich nun besser machen,

gpart resize -i 2 -s 47G -a 4k ada0

oder

gpart resize -i 2 -s 47G -a 1M ada0

?

Übrigens: Ich hatte gestern nach dem Löschen der swap (Partition 3) ein gpart resize -i 2 ada0 gemacht, also ohne den Parameter -a. Vielleicht ist das Problem deswegen aufgetreten?

Lies die man page zu gpart. die ist gut und verständlich und zeigt viele Beispiele.

Damit habe ich keine Probleme, was ich nicht ganz verstehe ist, wie man dann konkret mit dump/restore umgeht, um die Partitionen dann auf die neu eingerichtete Platte zu kopieren.
 
was ich nicht ganz verstehe ist, wie man dann konkret mit dump/restore umgeht, um die Partitionen dann auf die neu eingerichtete Platte zu kopieren.

Ich würde rsync nutzen, nicht dump/restore. Dienste, die Daten im Arbeitsspeicher sammeln (z.B. ein Datenbanksystem) vorher stoppen, damit die zugrundeliegenden Dateien in einem konsistenten Zustand sind.

Rob
 
Die alte Platte ist schon selbst ein Klon von damals
ich glaube, wir haben hier ein Missverständnis.
Auf der alten Platte brauchst du gar kein grofs zu machen, zumindest sehe ich nicht den Grund dafür. Ich unterscheide jetzt alte Platte und neue Platte und meine mit alter Platte jene, die nun auf eine neue kopiert werden soll.
Du hast auf der ersten Platte aus dem verlinkten Beitrag von früher mal gehabt:
Code:
$ gpart show
=>       34  312581741  ada0  GPT  (149G)
         34        128     1  freebsd-boot  (64K)
        162  308281216     2  freebsd-ufs  (147G)
  308281378    4298752     3  freebsd-swap  (2.0G)
  312580130       1645        - free -  (823K)
Mit dd kannst du das exakt klonen und auf eine neue Platte schieben, die wenigstens gleich groß ist.
Du wolltest das damals auf eine Platte schieben, die deutlich größer war und du wolltest nicht einfach nur klonen, sondern anschließend den verfügbaren Platz auch nutzen. Dazu brauchst du dann auf der neuen Platte ein grofs. Dies gelingt aber nicht, wenn der SWAP dies verhindert! Du kannst ja nicht am SWAP vorbei vergrößern.
Deshalb solltest du vor dem Klonen den SWAP auf der alten Platte löschen, weil er hinter deiner Systempartition liegt. Dann erscheint der nicht im Klon. Du kannst dann ein grofs machen und SWAP neu einrichten, nachdem du mit dd geklont hast.
Nun ist der Klon von damals deine alte Platte und du hast wieder SWAP am Ende liegen.
Deshalb solltest du den entfernen, befor du einen Klon mittels dd anfertigst. Nur dann könnte ein grofs auf der neuen Platte anschließend funktionieren.

Nun haben wir uns darüber unterhalten, dass dd bei neuen Platten mit 4K nicht unbedingt gut ist. Funktionieren wird es trotzdem. Ob es Fehlermeldungen gibt, glaube ich eigentlich nicht. Du vergibst nur die Chance auf 4K mit passendem Allignement, würdest aber ein funktionierendes System mit mehr Platz erhalten.

Die vorgeschlagenen Alternativen zur dd-Methode bedeuten ja, eine Platte neu zu Partitionieren und zu formatieren. Das machst du mit gpart mit dem du auch den Bootloader schreiben kannst.
Wenn die Platte neu eingerichtet wird, kannst du gleich alles richtig machen, du willst ja dann nicht klonen, also einen dd-Klon erstellen. Du baust dir manuell eine Platte so auf, dass sie als Container passend für dein System parat ist und dann schiebst du nur die Daten von alt nach neu.

Kann ich JETZT das Alignment-Problem durch den richtigen Parameter -a korrigieren?
Tut mir leid, ich kenne die man auch nicht auswendig und habe resize noch nie verwendet. Ich weiß das nicht. Es sieht aber so aus. Probier es einfach.
 
Deshalb solltest du vor dem Klonen den SWAP auf der alten Platte löschen, weil er hinter deiner Systempartition liegt. Dann erscheint der nicht im Klon. Du kannst dann ein grofs machen und SWAP neu einrichten, nachdem du mit dd geklont hast.

Habe ich auch getan, ich meine, vorher swap entfernt. Der Fehler, den ich dieses Mal gemacht habe, war eben danach noch auf der alten Platte ein growfs zu machen und ohne den Parameter -a 4k. Das war offensichtlich unnötig. Danach hatte ich die Fehlermeldung.

Letztendlich habe ich das das Tool clonehdd genutzt. Dieses geht tatsächlich nach dem hier vorgeschlagenen Schema vor, zuerst die neue Platte einzurichten und dann mit dump/restore alles rüberzukopieren. Allerdings verwendet es das alte Partitionsschema mit mbr und bsdlabel und nicht gpt. clonehdd verlangt auch zwingend nach der Angabe der Größe der gewünschten swap. Das muss mich aber, glaube ich, nicht weiter stören. Meine neue Platte sieht jetzt folgendermaßen aus und es scheint alles korrekt zu funktionieren:

Code:
$ gpart show
=>        63  1953525105  ada0  MBR  (932G)
          63  1953525105     1  freebsd  [active]  (932G)

=>         0  1953525105  ada0s1  BSD  (932G)
           0     8388608       2  freebsd-swap  (4.0G)
     8388608  1945136497       1  freebsd-ufs  (928G)

$

Ich nehme mal an, wenn ich kein growfs auf der alten Platte vorgenommen hätte, wäre mit dd alles glatt verlaufen. Ich möchte Euch trotzdem allen für Eure Hilfe danken, auch wenn die Frage mit dump/restore oder auch der Konkrete Umgang mit rsync offengeblieben sind.
Es wäre wünschenswert, wenn die verschiedenen Vorgehensweisen im WIKI ausführlich aufgezeigt werden könnten. Das Austauschen einer Festplatte (z.B. auch wegen Wechsel von hdd auf ssd) und das damit fast notwendigerweise verbundene Klonen (wenn man nicht alles neu installieren will) ist sicherlich nichts alltägliches, aber durchaus wichtig, wenn man es mal braucht.
 
Das Austauschen einer Festplatte (z.B. auch wegen Wechsel von hdd auf ssd) und das damit fast notwendigerweise verbundene Klonen (wenn man nicht alles neu installieren will) ist sicherlich nichts alltägliches, aber durchaus wichtig, wenn man es mal braucht.
So gefühlt ist es tatsächlich eines der Dinge, die sehr häufig vorkommen. Ich kann nur sagen, mit ZFS geht das alles ratz fatz und sehr einfach, sodass man frühere Methoden beinahe vergessen könnte.
dump/restore ist meines Wissens nach ein FreeBSD-Tool, dass es sonstwo nicht gibt.
dd (ddrescue) gibt es auch in GNU/Linux und diversen Rettungssystemen. Ich habe mich an Knoppix gewöhnt.
Mit dd kannst du quasi immer einen Klon deiner aktuellen Platte auf eine neue Platte zaubern. Die neue muss gleich groß oder größer sein und sie erscheint anschließend identisch zu der alten Platte, also nicht größer, obwohl die neue Platte vielleicht größer ist. Auf diese Weise kann man Systeme retten, bei denen die HW anfängt zu sterben und wo man keinen internen Zugriff auf entsprechende Routinen hat. Ich habe das etwa mehrfach bei alten Venix-Rechnern angewendet, einem alten Unix-Klon. Für diese rechner hatten wir keine SW, wir konnten die also im Zweifel nicht neu installieren. Deshalb zog ich mittels ddrescue images der Platten und wenn diese einmal starben, konnte ich die mit neuen Platten wieder herstellen und weiter fahren.
In deinem Fall wolltest du das ja nicht, sondern du wolltest die Vorteile der neuen Platte auch nutzen.
Deshalb empfiehlt es sich, dieses nicht nach dem Klonen der alten Platte auf die neue zu tun, sondern die neue Platte unabhängig davon passend einzurichten. Ist sie passend eingerichtet, kann das alte System live und online auf das neue übertragen werden, indem dump und restore eingesetzt werden.
Ich habe das einmal gemacht und bin von dem Tool überzeugt. Ich habe aber keine Erfahrung damit gesammelt und müsste die man-Pages nun auch wieder studieren. Will ich aber nicht, weil ZFS-gläubig geworden bin.
rsync funktioniert auch von einem ZFS zum anderen, aber hier gibt es auch ZFS eigene Tools.
Man sollte nie ein System mittels rsync live übertragen, weil sich ja im laufenden Betrieb Dateien ändern und das zu Fehlern führen könnte. Desto weniger das System mit Daten anstellt, desto geringer die Probleme. Sich ist, rsync von außen zu starten, also in einem Live-System, dass dann aber auch das Dateisystem kennen muss. Hier bietet sich nomad-bsd an.
Naja, dann die Partitionen mounten rsync -auv /mount/zu/Quelle/ /mount/zu/Ziel/ und laufen lassen. Da braucht man eigentlich kein Wiki.

Ich denke sogar, dass man das per drag_n_drop aus nomad erledigen könnte, habe das aber nie probiert.
 
Man sollte nie ein System mittels rsync live übertragen, weil sich ja im laufenden Betrieb Dateien ändern und das zu Fehlern führen könnte.
Das geht schon, ich musste letztens für nen großen Kunden ein Repository von SPARC nach x86 migrieren. Natürlich gab es so gut wie keine Wartungsfenster. Also habe ich mir die Daten nachts im Betrieb gezogen, hat wegen eines sehr schmalen VPN ewig gedauert, dann am nächsten Tag das Repository auf unserer Seite in die Instanz eingebunden. Funktionierte recht gut, es gab zwar ein paar kleinigkeiten, die ich mit nem zweiten rsync-Lauf holen musste, aber es ging.
Die zweite Variante wäre ein rsync-Lauf im Betrieb, dann alles auf der Live-Seite deaktivieren und nun noch einen wesentlich kürzeren rsync-Lauf mit der Option --delete durchlaufen lassen.
 
Also. Mit gpart resize kommt man hier natürlich nicht weiter. Das Alignement ergibt sich aus dem Beginn der Partition (Die Partition beginnt bei Sektor 63, das ist kein Vielfaches von 8), gpart resoze verändert die Länge, also das Ende der Partition. gpart recover repariert kaputte GPT-Tabellen, GPT ist hier aber gar nicht im Spiel. Wenn man es korrekt machen will, muss die Partitionen einen Sektor nach hinten. Dafür gibts zwei Möglichkeiten:
  • Daten runter, Platte löschen, neu partitionieren und Daten wieder rauf. Recht aufwändig und man braucht genügend Speicherplatz auf einem anderen Medium um eine Komplettkopie vorzuhalten.
  • Die Partition um einen Sektor verkleinern, dann nach hinten verschieben. Braucht etwas Geduld. Ich glaube die gparted Live-CD kann das. Sollte man nur machen, wenn man ein Backup hat.
Aber wir reden hier von 'Rotating Rust' an einem recht langsamen System, ohne RAID und ähnliches. Der Geschwindigkeitsverlust durch das inkorrekte Alignement dürfte damit sehr überschaubar sein. ich würde mir daher den Aufwand sparen und damit leben wie es nun ist.
 
Vielen Dank nochmal auch für die letzten erleuchtenden Beiträge. Und wie gesagt, ich habe wie oben schon erwähnt letztendlich das Tool verwendet und lebe jetzt mit dem alten Partitionsschema auf der neuen Platte.
 
Zurück
Oben