Je viens de le faire d'une manière plus simple :
# sfdisk -d /dev/sdb > sdb.bkp
laissez une copie par sécurité
# cp sdb.bkp sdb.new
maintenant éditez sdb.new en changeant UNIQUEMENT l'ordre des lignes et les numéros de partition, comme dans mon cas :
de
# 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
à
# 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
puis le renvoyer à la table de partition de disque ?
# sfdisk /dev/sdb < sdb.new
Ma séquence de numérotation a été mutilée après avoir rétréci et déplacé à droite la seule partition (sdb1) pour ajouter deux partitions plus petites au début du disque en utilisant gparted
.
Si la dernière commande ne fonctionne pas, comme dans mon cas, changez-la pour :
# sfdisk --no-reread -f /dev/sdb < sdb.new
Pour info, c'est une mauvaise idée et vous pouvez tout perdre. Si vous souhaitez toujours le faire, voici les étapes :
- Ne pas fais le. Si cela ne vous aide pas, alors :
-
Utilisez le
sfdisk
outil :Tout d'abord, effectuez une sauvegarde de la table de partition à l'aide desfdisk -d /dev/sda > sda.out
Alors allez-y :
sfdisk /dev/sda -O sda-partition-sectors.save
Vous verrez quelque chose comme ça
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 :
Maintenant, il vous demande de donner les nouveaux détails de la partition 'sda1'. Vous devez donc donner les numéros de sda2 ici. Donc, je mets '6 1012' ici et j'appuie sur Entrée :
/dev/sda1 :6 1012
/dev/sda1 6 1017 1012 3890128 83 Linux
/dev/sda2 :
Maintenant vérifiez si les chiffres imprimés après avoir appuyé sur Entrée sont exacts identiques à ceux imprimés précédemment pour sda2. Si tout va bien, continuez en donnant les nouveaux numéros pour sda2 :
/dev/sda2 :0
/dev/sda2 0+ 5 6- 23063+ 83 Linux
/dev/sda3 :
Cette fois, il suffisait d'entrer "0" dans mon cas - mais vous devez vous assurer que les chiffres ne sont pas foirés dans le vôtre.
Ensuite, continuez avec les autres partitions de la même manière. Si vous avez déjà atteint la fin du disque, appuyer sur Entrée suffit. Enfin, vérifiez à nouveau que tous les nombres sont corrects et enregistrez la table de partition (ou non). Si vous avez raté quelque chose, jetez un œil à man sfdisk
et les descriptions des options '-d', '-O' et '-I'.
Notez également qu'une fois que vous avez effectué les modifications les plus folles, vous devrez peut-être exécuter "sync" pour que les partitions soient relues avant d'essayer de les monter.
Toutes les solutions existantes semblent très sûres, mais par conséquent assez compliquées.
Je voulais commander à nouveau tous mes partitions pour qu'elles soient en ordre.
Si vous êtes plus expérimenté, que vous avez des données non essentielles ou sauvegardées et que vous êtes heureux de résoudre les problèmes qui en résultent, vous pouvez démarrer à partir d'un Live CD et procédez comme suit :
sudo fdisk /dev/sdX
puis :
x
pour entrer en mode expertf
pour fixer l'ordre des lecteurs (éventuellementi
pour ignorer les avertissements si nécessaire)r
pour revenir au mode normalw
pour écrire les modifications sur le disque et quitter
Supplémentaire
Je ne me souviens pas exactement des étapes suivantes car je ne l'ai fait qu'une seule fois et je n'ai pas retesté, mais comme je déplaçais également l'installation, j'ai également monté les partitions et copié tous les fichiers :
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
Et puis j'ai obtenu les identifiants de partition :
sudo blkid
et mis à jour les éléments suivants pour refléter les nouvelles valeurs UUID des partitions :
/mnt/sda5/boot/grub/grub.cfg
/mnt/sda5/etc/fstab
J'ai ensuite mis à jour GRUB2 :
sudo grub-install --root-directory=/mnt/sda5 /dev/sda