Verschieben von `/ boot` und` / `(root) Partitionen auf einem GPT / UEFI-Volume


0

Ich arbeite unter Linux mit einem 500 GB GPT-internen Speichergerät, das partitioniert /bootist /(root) /varund /homesich auf separaten ext4Volumes befindet. Aus historischen Gründen (es handelte sich früher um ein duales Linux-Linux-Mount-System) verfügt das Gerät nun über viel Platz zwischen den derzeit verwendeten gemounteten Volumes. Dieser Speicherplatz wird (von früher) zugewiesen und enthält weiterhin eine /bootPartition, die zum zweiten, jetzt heruntergekommenen Lx-Betriebssystem gehört. Das Dual-Boot-Menü zeigt immer noch die Wahl zwischen zwei Systemen, aber eines davon ist von seiner /bootPartition weitestgehend entfernt . Ich halte diesen Platz für verschwendet und möchte ihn zurückfordern.

Unter disksLinux sieht die aktuelle Partitionierung folgendermaßen aus: Hier(Die bereitgestellten Elemente werden mit einem schwarzen Dreieck angezeigt.) Zusätzlich zu den oben bereits erwähnten Volumes und links im disksImage sehen Sie die EFI FAT-Partition (ganz links, wie Sie es sehen) würde erwarten), der Swap-Platz und viel zugeteilter, aber nie gemounteter Platz.

Alles bootet und funktioniert einwandfrei und ich habe eine Sicherungskopie meiner Daten und des gesamten Partitionslayouts, mit dem letzteres erhalten wurde # sfdisk -d /dev/nveme0n1 > partition-layout.dump.

Ich möchte sowohl den bereitgestellten /bootals auch den /(Stamm-) Bereich links vom Auslagerungsbereich verschieben und den nie bereitgestellten Bereich neu zuweisen varund /home... Ich habe nicht vor, GPT-Header des Geräts oder EFI zu berühren FAT Volumen für diese Angelegenheit.

Ich habe GParted zuvor auf MBR-Volumes mit Legacy-BIOS-Start verwendet, jedoch nie in EFI / GPT-Umgebungen. Könnte das Verschieben /bootdie Boot-Lade-Routine beeinträchtigen und mein Volume nicht mehr bootfähig machen? Wenn ja, was sollte ich tun, um den Bootloader neu zu erstellen, Partitionen neu zu indizieren, ... mehr, .. keine der oben genannten?

Wird GParted insbesondere dann den neuen Speicherort verfolgen und den Partitionsindex aktualisieren, damit der Bootloader nach der Neupartitionierung nicht erstickt?

Ich bin bereit dafür, aber ich möchte sichergehen, dass ich nichts wirklich Dummes mache, bevor ich einen Muskel bewege. Ein Stupser, Hilfe oder Rat wäre dankbar. Wenn ich vergessen habe, wichtige Aspekte des Kontexts einzubeziehen, werde ich Ihnen gerne weitere Einzelheiten mitteilen.

Prost.


Das Verschieben von Partitionen ist immer ein bisschen riskant. Seien Sie also vorsichtig und machen Sie von allem eine Sicherungskopie. Mit dieser Warnung aus dem Weg: Das Gute an UEFI und GPT ist, dass keine Festplattendaten (wie Bootloader und ähnliches) außerhalb von Partitionen in magischen Festplattensektoren versteckt sind. Die Firmware kann FAT verstehen, alles ist explizit in Dateien. Sie können Partitionen verschieben, solange die Partitionstabelle mit den tatsächlichen Positionen der Festplattenpartitionen synchronisiert ist.
Johan Myréen

1
Sie haben fälschlicherweise "unmounted space" und "unbenutzter space" in Konflikt gebracht . Ihre Partitionszuordnung zeigt an, dass der gesamte Speicherplatz zugewiesen wurde. Es gibt keinen "unbenutzten Platz" . Auch wenn ein Betriebssystem möglicherweise keine Partition verwendet, wird dieser Bereich der Festplatte weiterhin als reserviert und nicht als "ungenutzter Speicherplatz" betrachtet . Sie müssen nicht verwendete Partitionen löschen, um "nicht verwendeten Speicherplatz" zu erstellen .
Sägemehl

@ JohanMyréen: ja. Bedeutet das, dass das Verschieben mit GParted die Partitionstabelle auf dem neuesten Stand hält, ohne dass ich Partitionen neu indizieren muss? Das war die Richtung meiner Anfrage ...
Cbhihe

GParted ist nicht in der Lage „ zu bewegen“ eine Partition auf der anderen Seite von einer anderen Partition, wie Sie wollen. Um die vier Partitionen (5, 8, 9, 10) zu verschieben, müssten Sie zuerst die Partitionen 2,3,4,6,7 löschen. Anschließend können Sie die Auslagerungspartition neu erstellen, was zu Problemen führen kann, da die neue Auslagerungspartition möglicherweise andere Partitions- und UUID-Nummern hat.
Sägemehl

@sawdust: Effektiv ist GParted nicht für seine Fähigkeit zum Überspringen bekannt. Ich wollte den Swap inaktivieren, ihn löschen, Speicherplatz auf benachbarte ext4-Volumes umverteilen und /boot' and / `so weit nach links verschieben, wie es das EFI-FAT-Volume zulässt Erstellen Sie den Swap danach neu (mit neuer UUID), erweitern Sie ihn /homeund /varstarten Sie ihn ohne Swap neu. Korrigieren Sie schließlich den /etc/fstabEintrag für die neue UUID des Swaps. Vermisse ich etwas?
Cbhihe

Antworten:


1

[TLDR] (die Kurzversion)
Die spezielle Konfiguration der Partitionen, die in OP angezeigt wird, macht es unmöglich, den Bootloader nicht neu erstellen / wiederherstellen zu müssen, nachdem das Kopfende der /bootPartitionen verschoben wurde.

[Die ganze Geschichte]
Was ich getan habe:

  • Booten Sie unter Live-Linux mit einem bootfähigen USB-Laufwerk im UEFI-Modus. (Ich habe mich für Ubuntu 18.04 entschieden).
    Beachten Sie, dass Ubuntu und die moderne diskrete NVIDIA-Grafik überhaupt nicht miteinander auskommen. Wenn Sie eine aktuelle NVIDIA-Grafikkarte besitzen (Stand: ca. 2017), sparen Sie Zeit, wenn Sie tatsächlich ein Live-Betriebssystem ohne GUI über UEFI booten. Das bedeutet, die Neupartitionierung auf dem CLI und möglicherweise auch die anschließende Wiederherstellung des Bootloaders durchzuführen.

  • mit GParted Partition 2 und regenerieren MOVE Trennwand 3 (swap) verlassen, so wird es angrenzt Partition 1. Einfach "moving" es nicht die UUID der Partition ändern. Wenn Sie es löschen und an anderer Stelle neu erstellen (Ihren Anruf vollständig), müssen Sie später vi in ​​eingeben /etc/fstab, um die neue UUID des entsprechenden Swap-Eintrags zu ändern.

  • Bewegen Sie /boot(Partition 5) so weit wie nötig nach links. Um die Kopfstelle (dh die linke Grenze in der grafischen Darstellung von OP) dieser Partition zu verschieben, müssen Sie später den Bootloader wiederherstellen (in meinem Fall GRUB2). Andernfalls können Sie nicht booten. Wenn sich (root) /bootund /( im Gegensatz zum vorliegenden Fall ) auf derselben Partition befänden, /müsste zum Verschieben des Head-End von (root) auch der GRUB-Bootloader wiederhergestellt werden (da dies bedeuten würde, dass der Start der / boot / efi-Informationen in neu indiziert wird die Root-Partition).
  • bewege dich /(root) /varund /homenach Lust und Laune.

Das Obige ist die vollständige Antwort auf meine ursprüngliche Frage.


Das Wiederherstellen des Booloaders ist hier nicht mehr möglich, aber gut dokumentiert, jetzt auch für UEFI. Schlagen Sie dies und das nach, um detaillierte Hilfe zu erhalten. Ihr Kilometerstand kann je nach Distribution variieren, aber mein Rat ist: Verwenden Sie die allgemeinen CLI-Anweisungen so oft wie möglich. Sie lassen sich am besten dokumentieren, wie chrootdies beispielsweise bei Wrappern der Fall ist, während dies bei Wrappern chrootmöglicherweise nicht der Fall ist. Wieder Ihr Anruf.

HTH jemand mit ähnlichen Zweifeln wie ich hatte.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.