Acabo de hacer esto de una manera más fácil:
# sfdisk -d /dev/sdb > sdb.bkp
deja una copia por seguridad
# cp sdb.bkp sdb.new
ahora edite sdb.new cambiando SOLO el orden de las líneas y los números de partición, como en mi caso:
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
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
luego devolverlo a la tabla de particiones del disco?
# sfdisk /dev/sdb < sdb.new
Mi secuencia de numeración se alteró después de que reduje y desplacé a la derecha la única partición (sdb1) para agregar dos particiones más pequeñas al comienzo del disco usando gparted
.
Si el último comando no funciona, como en mi caso, cámbialo por:
# sfdisk --no-reread -f /dev/sdb < sdb.new
FYI, es una mala idea y puedes perderlo todo. Si todavía quieres hacerlo, estos son los pasos:
- No hazlo. Si esto no ayuda, entonces:
-
Usa el
sfdisk
herramienta:Primero, haga una copia de seguridad de la tabla de particiones usandosfdisk -d /dev/sda > sda.out
Entonces hazlo:
sfdisk /dev/sda -O sda-partition-sectors.save
Verás algo como esto
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 :
Ahora le pide que proporcione los nuevos detalles para la partición 'sda1'. Así que tienes que dar los números de sda2 aquí. Entonces, pongo '6 1012' aquí y presiono Enter:
/dev/sda1 :6 1012
/dev/sda1 6 1017 1012 3890128 83 Linux
/dev/sda2 :
Ahora revisa si los números impresos después de presionar Enter son exactamente los mismos que los impresos anteriormente para sda2. Si está bien, continúe dando los nuevos números para sda2:
/dev/sda2 :0
/dev/sda2 0+ 5 6- 23063+ 83 Linux
/dev/sda3 :
Esta vez fue suficiente ingresar "0" en mi caso, pero debe asegurarse de que los números no estén en mal estado en el suyo.
Luego, continúe con las otras particiones de la misma manera. Si ya llegaste al final del disco, basta con pulsar Enter. Finalmente, verifique nuevamente que todos los números estén bien y guarde la tabla de particiones (o no). Si estropeaste algo, echa un vistazo a man sfdisk
y las descripciones de las opciones '-d', '-O' y '-I'.
Tenga en cuenta también que una vez que haya realizado los cambios locos, es posible que deba ejecutar 'sincronizar' para que las particiones se vuelvan a leer antes de intentar montarlas.
Todas las soluciones existentes parecen muy seguras, pero como resultado bastante complicadas.
Quería reordenar todos mis particiones para que estén en orden.
Si tiene más experiencia, tiene datos no esenciales o respaldados y está feliz de solucionar cualquier problema como resultado, puede iniciar desde un Live CD y hacerlo de esta manera:
sudo fdisk /dev/sdX
entonces:
x
para ingresar al Modo Expertof
para corregir el orden de conducción (posiblementei
para ignorar cualquier advertencia si es necesario)r
para volver al modo normalw
para escribir cambios en el disco y salir
Adicional
No recuerdo los siguientes pasos exactos ya que solo lo hice una vez y no volví a probar, pero como también estaba moviendo la instalación, también monté las particiones y copié todos los archivos:
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
Y luego obtuve las identificaciones de partición:
sudo blkid
y actualizó lo siguiente para reflejar los nuevos valores de UUID de las particiones:
/mnt/sda5/boot/grub/grub.cfg
/mnt/sda5/etc/fstab
Luego actualicé GRUB2:
sudo grub-install --root-directory=/mnt/sda5 /dev/sda