L'ho appena fatto in un modo più semplice:
# sfdisk -d /dev/sdb > sdb.bkp
lasciare una copia per sicurezza
# cp sdb.bkp sdb.new
ora modifica sdb.new cambiando SOLO l'ordine delle righe e i numeri di partizione, come nel mio caso:
da
# 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
a
# 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
quindi riportarlo alla tabella delle partizioni del disco?
# sfdisk /dev/sdb < sdb.new
La mia sequenza di numerazione è stata alterata dopo che ho ridotto e spostato a destra l'unica partizione (sdb1) per aggiungere due partizioni più piccole all'inizio del disco utilizzando gparted
.
Se l'ultimo comando non funziona, come nel mio caso, cambialo con:
# sfdisk --no-reread -f /dev/sdb < sdb.new
Cordiali saluti, è una cattiva idea e puoi perdere tutto. Se vuoi ancora farlo, ecco i passaggi:
- No fallo. Se questo non aiuta, allora:
-
Usa
sfdisk
tool:Per prima cosa, fai un backup della tabella delle partizioni usandosfdisk -d /dev/sda > sda.out
Allora fallo:
sfdisk /dev/sda -O sda-partition-sectors.save
Vedrai qualcosa di simile
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 :
Ora ti sta chiedendo di fornire i nuovi dettagli per la partizione 'sda1'. Quindi devi dare i numeri di sda2 qui. Quindi, metto qui '6 1012' e premo Invio:
/dev/sda1 :6 1012
/dev/sda1 6 1017 1012 3890128 83 Linux
/dev/sda2 :
Ora controlla se i numeri stampati dopo aver premuto Invio sono esatti gli stessi di quelli stampati in precedenza per sda2. Se va bene, continua dando i nuovi numeri per sda2:
/dev/sda2 :0
/dev/sda2 0+ 5 6- 23063+ 83 Linux
/dev/sda3 :
Questa volta è stato sufficiente inserire "0" nel mio caso, ma devi assicurarti che i numeri non siano incasinati nel tuo.
Quindi, continua con le altre partizioni allo stesso modo. Se hai già raggiunto la fine del disco, è sufficiente premere Invio. Infine, controlla di nuovo che tutti i numeri siano a posto e salva la tabella delle partizioni (o meno). Se hai sbagliato qualcosa, dai un'occhiata a man sfdisk
e le descrizioni delle opzioni '-d', '-O' e '-I'.
Nota anche che, una volta apportate modifiche folli, potresti dover eseguire "sync" in modo che le partizioni vengano rilette prima di provare a montarle.
Tutte le soluzioni esistenti sembrano molto sicure, ma di conseguenza piuttosto complicate.
Volevo riordinare tutto le mie partizioni in modo che fossero in ordine.
Se sei più esperto, disponi di dati non essenziali o di backup e sei felice di risolvere eventuali problemi, puoi eseguire l'avvio da un Live CD e farlo in questo modo:
sudo fdisk /dev/sdX
quindi:
x
per accedere alla Modalità espertof
per correggere l'ordine di guida (probabilmentei
per ignorare eventuali avvisi se necessario)r
per tornare alla modalità normalew
per scrivere le modifiche sul disco ed uscire
Ulteriori
Non ricordo i passaggi esatti successivi poiché l'ho fatto solo una volta e non ho ripetuto il test, ma poiché stavo anche spostando l'installazione, ho anche montato le partizioni e copiato tutti i file:
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
E poi ho ottenuto gli ID delle partizioni:
sudo blkid
e aggiornato quanto segue per riflettere i nuovi valori UUID delle partizioni:
/mnt/sda5/boot/grub/grub.cfg
/mnt/sda5/etc/fstab
Ho quindi aggiornato GRUB2:
sudo grub-install --root-directory=/mnt/sda5 /dev/sda