Ich habe es einfach einfacher gemacht:
# sfdisk -d /dev/sdb > sdb.bkp
hinterlassen Sie zur Sicherheit eine Kopie
# cp sdb.bkp sdb.new
Bearbeiten Sie jetzt sdb.new und ändern Sie NUR die Zeilenreihenfolge und die Partitionsnummern, wie in meinem Fall:
von
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 1026048, size=975747120, Id=83
/dev/sdb2 : start= 2048, size= 204800, Id=83
/dev/sdb3 : start= 206848, size= 819200, Id= b
/dev/sdb4 : start= 0, size= 0, Id= 0
zu
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 2048, size= 204800, Id=83
/dev/sdb2 : start= 206848, size= 819200, Id= b
/dev/sdb3 : start= 1026048, size=975747120, Id=83
/dev/sdb4 : start= 0, size= 0, Id= 0
dann zurück in die Festplattenpartitionstabelle werfen?
# sfdisk /dev/sdb < sdb.new
Meine Nummerierungssequenz wurde verstümmelt, nachdem ich die einzige Partition (sdb1) verkleinert und nach rechts verschoben hatte, um zwei kleinere Partitionen am Anfang der Festplatte mit gparted
hinzuzufügen .
Wenn der letzte Befehl nicht funktioniert, wie in meinem Fall, ändern Sie ihn in:
# sfdisk --no-reread -f /dev/sdb < sdb.new
FYI, es ist eine schlechte Idee und du kannst alles verlieren. Wenn Sie es trotzdem tun möchten, hier sind die Schritte:
- Nicht Tu es. Wenn dies nicht hilft, dann:
-
Verwenden Sie die
sfdisk
tool:Erstellen Sie zuerst eine Sicherungskopie der Partitionstabelle mitsfdisk -d /dev/sda > sda.out
Dann los:
sfdisk /dev/sda -O sda-partition-sectors.save
Sie werden so etwas sehen
Checking that no-one is using this disk right now ... OK Disk /dev/sda: 1018 cylinders, 124 heads, 62 sectors/track Old situation: Units = cylinders of 3936256 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 0+ 5 6- 23063+ 83 Linux /dev/sda2 6 1017 1012 3890128 83 Linux /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sda1 :
Jetzt werden Sie aufgefordert, die neuen Details für die Partition „sda1“ anzugeben. Sie müssen hier also die Nummern von sda2 angeben. Also gebe ich hier '6 1012' ein und drücke die Eingabetaste:
/dev/sda1 :6 1012
/dev/sda1 6 1017 1012 3890128 83 Linux
/dev/sda2 :
Jetzt überprüfen wenn die nach dem Drücken der Eingabetaste ausgegebenen Zahlen genau sind die gleichen wie die, die zuvor für sda2 gedruckt wurden. Wenn es in Ordnung ist, fahren Sie mit der Angabe der neuen Nummern für sda2 fort:
/dev/sda2 :0
/dev/sda2 0+ 5 6- 23063+ 83 Linux
/dev/sda3 :
Diesmal hat es in meinem Fall gereicht, "0" einzugeben - aber Sie müssen aufpassen, dass die Zahlen in Ihrem nicht durcheinander gebracht werden.
Fahren Sie anschließend mit den anderen Partitionen auf die gleiche Weise fort. Wenn Sie bereits das Ende der Diskette erreicht haben, genügt es, die Eingabetaste zu drücken. Überprüfen Sie abschließend noch einmal, ob alle Zahlen in Ordnung sind, und speichern Sie die Partitionstabelle (oder nicht). Wenn Sie etwas vermasselt haben, werfen Sie einen Blick auf man sfdisk
und die Beschreibungen der Optionen '-d', '-O' und '-I'.
Beachten Sie auch, dass Sie, nachdem Sie die verrückten Änderungen vorgenommen haben, möglicherweise 'sync' ausführen müssen, damit die Partitionen erneut gelesen werden, bevor Sie versuchen, sie einzuhängen.
Alle existierenden Lösungen sehen sehr sicher aus, sind aber dadurch ziemlich kompliziert.
Ich wollte alle neu anordnen meine Partitionen, damit sie in Ordnung sind.
Wenn Sie erfahrener sind, über unwesentliche oder gesicherte Daten verfügen und gerne alle daraus resultierenden Probleme beheben, können Sie von einer Live-CD booten und dies folgendermaßen tun:
sudo fdisk /dev/sdX
dann:
x
um in den Expertenmodus zu wechselnf
um die Laufwerksreihenfolge zu fixieren (evtl.i
eventuelle Warnungen zu ignorieren)r
um zum normalen Modus zurückzukehrenw
um Änderungen auf die Festplatte zu schreiben und zu beenden
Zusätzlich
Ich erinnere mich nicht an die genauen nächsten Schritte, da ich es nur einmal gemacht und nicht erneut getestet habe, aber da ich auch die Installation verschoben habe, habe ich auch die Partitionen gemountet und alle Dateien kopiert:
sudo mkdir /mnt/sda4
sudo mount /dev/sda4 /mnt/sda4
sudo mkdir /mnt/sda5
sudo mount /dev/sda5 /mnt/sda5
date;cp -a /mnt/sda4/* /mnt/sda5;date
Und bekam dann die Partitions-IDs:
sudo blkid
und Folgendes aktualisiert, um die UUID-Werte der neuen Partitionen widerzuspiegeln:
/mnt/sda5/boot/grub/grub.cfg
/mnt/sda5/etc/fstab
Ich habe dann GRUB2 aktualisiert:
sudo grub-install --root-directory=/mnt/sda5 /dev/sda