Cómo arreglar el número de particiones en el disco GPT (/dev/sdaX)

Cómo arreglar el número de particiones en el disco GPT (/dev/sdaX)

Utilicé Gparted para eliminar particiones EFI (/dev/sda1) y Ubuntu (/dev/sda2) en mi disco secundario. La tercera partición (/dev/sda3) es para datos, así que cambié su tamaño para usar todo el espacio no asignado que tengo al eliminar las dos primeras particiones. Ahora, al tener solo una partición única en el disco, me gustaría corregir su número para obtener /dev/sda1. ¿Cuál es la forma más sencilla de hacerlo que funcione con un disco que tenga una tabla de particiones GPT? ¡Gracias!

Respuesta1

Puede utilizar gdiskpara reescribir la tabla de particiones:

sudogdisk /dev/sda
p (el comando p imprime la tabla de particiones reciente en pantalla)
s (el comando s ordena las entradas de la tabla de particiones)
p (use el comando p nuevamente para ver el resultado en su pantalla)
w (escribe la tabla de particiones modificada en el disco)
q (salir de gdisk)

Encontrará la información más útil sobre gdiskenhttp://www.rodsbooks.com/gdisk/

Respuesta2

Intrigado por encontrar ese último enlace y ansioso por aprender algo nuevo, repetí la situación de la partición de Generoso en mi sistema usando una unidad USB de 32 GB. A continuación se muestran mis hallazgos, pero primero mi:

Conclusión: Como mi ejemplo está dirigido a 1 partición (final), cerca del final simplemente cambié su nombre. No toqué los sectores reales. En el enlace de mi comentario anterior, se muestra un ejemplo en el que se mueven los números de sector. ¡Seguí eso y cometí un error miserable y destruí el disco USB, demostrando lo peligroso que es realmente jugar con particiones!
Quizás mi escenario también funcione con múltiples particiones, no dudes en probarlo tú mismo. Te reto a que uses tu partición primaria para ello... jaja.
Ok, aquí están mis:

Hallazgos: Usando Gparted creé 3 particiones, cada una de 1 GB.

# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf33657fc

Device     Boot   Start     End Sectors Size Id Type
/dev/sdc1          2048 2099199 2097152   1G 83 Linux
/dev/sdc2       2099200 4196351 2097152   1G 83 Linux
/dev/sdc3       4196352 6293503 2097152   1G 83 Linux

Uso de discos para montar la partición 3.
Coloque manualmente un archivo en ella.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

Usar discos para desmontar la partición 3.
Usar Gparted para eliminar las particiones 1 y 2 y hacer crecer la partición 3 para usar todo el disco.

# fdisk -l /dev/sdc
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf33657fc

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc3        8192 62844671 62836480  30G 83 Linux

Uso de discos para montar la partición 3.
Verifique el archivo en la partición 3.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

Uso de discos para desmontar la partición 3.
Copie la tabla de particiones de la unidad.
Muestra la tabla de particiones.

# sfdisk -d /dev/sdc > sdc.tab
# cat sdc.tab
label: dos
label-id: 0xf33657fc
device: /dev/sdc
unit: sectors

/dev/sdc3 : start=        8192, size=    62836480, type=83

Usando vi sdc.tabpara cambiar sdc3 a sdc1.
Aplique la tabla de particiones modificada.

# sfdisk --no-reread -f /dev/sdc < sdc.tab
Disk /dev/sdc: 30 GiB, 32176472064 bytes, 62844672 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xf33657fc

Old situation:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc3        8192 62844671 62836480  30G 83 Linux

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xf33657fc.
Created a new partition 1 of type 'Linux' and of size 30 GiB.
/dev/sdc2: 
New situation:

Device     Boot Start      End  Sectors Size Id Type
/dev/sdc1        8192 62844671 62836480  30G 83 Linux

The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

Tan pronto como finalice el comando, la partición 1 se monta automáticamente.
Verifique el archivo.

# ls -l /media/willem/cd4746ac-6d9f-4057-9396-a593ce2f301d/
total 21436
drwx------ 2 root root    16384 May 27 00:12 lost+found
-rw-r--r-- 1 root root 21930117 May 27 00:14 SomeFile.txt

Uso de discos para desmontar la partición 1.
Listo.

PD. Lo hice cat SomeFile.txtsiempre, pero sentí que era innecesario incluir ese resultado.

Respuesta3

Debería haber cambiado el tamaño de /dev/sda1 para que sea mayor que /dev/sda3. Luego copie sda3 sobre sda1. Verifique el archivo sda1 y, si no hay problemas, elimine sda3 y cambie el tamaño de sda1 en consecuencia.

información relacionada