GNU/Linux >> Tutoriales Linux >  >> Linux

Copiar la estructura de partición del disco duro

¿Hay alguna forma de cambiar el nombre de sda5 a sda4?

Sí {y es por eso que existe una respuesta larga debajo de esta pregunta}

Estoy tomando mi pendrive USB /dev/sdc como ejemplo. Modifique para su caso de acuerdo

Primero conozca su unidad:{Solo para comprobar que está utilizando el disco deseado

sudo fdisk -l /dev/sdc

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
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: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc2        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc3       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc4       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

sudo sfdisk -d /dev/sdc

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc1 : start=        2048, size=     3424256, type=83
/dev/sdc2 : start=     3426304, size=     9472000, type=83
/dev/sdc3 : start=    12898304, size=     7229440, type=b
/dev/sdc4 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

sudo parted -l /dev/sdc

Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdc: 15.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  1754MB  1753MB  primary   ext4
 2      1754MB  6604MB  4850MB  primary   btrfs
 3      6604MB  10.3GB  3701MB  primary   fat32
 4      10.3GB  14.0GB  3712MB  extended
 5      10.3GB  11.4GB  1077MB  logical   ext2

Nota

  • Asegúrese de que todas las particiones estén desmontadas durante el proceso de edición de la tabla de particiones.
  • No hay aplicaciones que accedan al disco o modifiquen su contenido.

Conozca su herramienta de trabajo - sfdisk

Desde la página de manual

sfdisk es una herramienta orientada a secuencias de comandos para particionar cualquier dispositivo de bloque.

¿Quieres más detalles?

Ejecutar:man sfdisk

Pruebe la herramienta en la unidad deseada

sfdisk -d /dev/sdc

Si /dev/sdc es el disco de destino;

Primero haga una copia de seguridad de la tabla de particiones sdc.bak

sfdisk -d /dev/sdc > sdc.bak

Obtenga una copia de trabajo:sdc.new

cp sdc.bak sdc.new

Ensúciate las manos

Abrir sdc.new en tu editor favorito

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc1 : start=        2048, size=     3424256, type=83
/dev/sdc2 : start=     3426304, size=     9472000, type=83
/dev/sdc3 : start=    12898304, size=     7229440, type=b
/dev/sdc4 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

Tenga en cuenta la secuencia de partición

/dev/sdc1
/dev/sdc2
/dev/sdc3
/dev/sdc4
/dev/sdc5

Ahora quiero que la secuencia de partición sea así

/dev/sdc3
/dev/sdc4
/dev/sdc1
/dev/sdc2
/dev/sdc5

En resumen, mis cambios necesarios:

/dev/sdc1 ------------> /dev/sdc3
/dev/sdc2 ------------> /dev/sdc4
/dev/sdc3 ------------> /dev/sdc1
/dev/sdc4 ------------> /dev/sdc2
/dev/sdc5 ------------> /dev/sdc5

Editar sdc.new en consecuencia

Nota-

  • No cambie ningún número excepto los números de partición. Estoy seguro de que sabes por qué.

sdc.nuevo

label: dos
label-id: 0xba104c33
device: /dev/sdc
unit: sectors
sector-size: 512

/dev/sdc3 : start=        2048, size=     3424256, type=83
/dev/sdc4 : start=     3426304, size=     9472000, type=83
/dev/sdc1 : start=    12898304, size=     7229440, type=b
/dev/sdc2 : start=    20127744, size=     7249920, type=5
/dev/sdc5 : start=    20129792, size=     2103296, type=83

Vuelva a escribir la tabla de particiones

sfdisk /dev/sdc < sdc.new

Salida de muestra:

Checking that no-one is using this disk right now ... OK

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
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: 0xba104c33

Old situation:

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc2        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc3       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc4       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Script header accepted.
>>> Created a new DOS disklabel with disk identifier 0xba104c33.
/dev/sdc1: Created a new partition 3 of type 'Linux' and of size 1.6 GiB.
Partition #3 contains a ext4 signature.
/dev/sdc4: Created a new partition 4 of type 'Linux' and of size 4.5 GiB.
Partition #4 contains a btrfs signature.
/dev/sdc5: Created a new partition 1 of type 'W95 FAT32' and of size 3.4 GiB.
Partition #1 contains a vfat signature.
/dev/sdc2: Created a new partition 2 of type 'Extended' and of size 3.5 GiB.
/dev/sdc3: Created a new partition 5 of type 'Linux' and of size 1 GiB.
Partition #5 contains a ext2 signature.
/dev/sdc6: Done.

New situation:
Disklabel type: dos
Disk identifier: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc2       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc3           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc4        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

Partition table entries are not in disk order.

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

Hora de cotejar

sudo fdisk -l /dev/sdc

Disk /dev/sdc: 14.32 GiB, 15376318464 bytes, 30031872 sectors
Disk model: Cruzer Blade    
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: 0xba104c33

Device     Boot    Start      End Sectors  Size Id Type
/dev/sdc1       12898304 20127743 7229440  3.4G  b W95 FAT32
/dev/sdc2       20127744 27377663 7249920  3.5G  5 Extended
/dev/sdc3           2048  3426303 3424256  1.6G 83 Linux
/dev/sdc4        3426304 12898303 9472000  4.5G 83 Linux
/dev/sdc5       20129792 22233087 2103296    1G 83 Linux

Partition table entries are not in disk order.

sudo parted -l /dev/sdc

Model: SanDisk Cruzer Blade (scsi)
Disk /dev/sdc: 15.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
 3      1049kB  1754MB  1753MB  primary   ext4
 4      1754MB  6604MB  4850MB  primary   btrfs
 1      6604MB  10.3GB  3701MB  primary   fat32
 2      10.3GB  14.0GB  3712MB  extended
 5      10.3GB  11.4GB  1077MB  logical   ext2

En caso de que las cosas se estropeen, restaure desde la tabla de particiones de copia de seguridad sdc.bak -

sfdisk /dev/sdc < sdc.bak

Puedo ayudar con partes de esto.

Si el disco usa una tabla de particiones MBR, entonces tiene que usar una partición extendida como sospechaba porque el MBR solo puede admitir cuatro particiones primarias. Esta es una de las razones por las que se prefieren las tablas de particiones GPT. No tienen esa limitación. También admiten particiones más grandes.

Cuando Linux mira una unidad de disco, asigna dispositivos a cada partición que encuentra secuencialmente en la unidad. Si esa unidad es la primera unidad que ve, la llamará /dev/sda y las particiones en ella se asignarán comenzando con /dev/sda1. Por lo tanto, no puede cambiarles el nombre.

Es una buena práctica no confiar en los nombres de los dispositivos exactamente para el tipo de problemas con los que se está encontrando. La mayoría de las personas usan los UUID de las particiones para referirse a ellas, lo cual es una gran mejora. Voy un paso más allá y uso etiquetas de partición únicas, legibles por humanos/significativas para referirme a las particiones. Si tiene varias unidades, no puede garantizar que se reconocerán en el mismo orden en cada inicio, por lo que un dispositivo que fue /dev/sdb una vez puede ser /dev/sdc otra vez. Se vuelve aún peor cuando tiene discos extraíbles que ni siquiera obtienen un archivo de dispositivo hasta que se conectan físicamente al sistema. Los UUID son más invariables, pero también cambiarán si cambia el tamaño o mueve una partición. Las etiquetas no se modifican, pero depende de usted para nombrarlas de forma única.

No sé por qué se omite /dev/sda4, especialmente si el intercambio ya está asignado a /dev/sda2. No sé cómo arreglar eso. Si observa la nueva unidad, debería haber "algo" donde se supone que debe estar /dev/sda4. Tal vez /dev/sda3 llene el resto del disco, pero incluso si lo hace, creo que /dev/sda4 seguirá siendo la primera partición extendida dentro de él. O, tal vez lo contrario, no llena el resto del disco y, por lo tanto, /dev/sd4 se reserva para el espacio después de toda la partición extendida /dev/sd3.

Como posible solución alternativa, si tiene acceso a otra computadora, puede construir la nueva unidad en ella, obtener los UUID o etiquetas de todas las particiones nuevas y luego ejecutar todos sus scripts a través de sed para cambiar todas las referencias de dispositivos para usar UUID o etiquetas. Incluso podría cambiar a un esquema de partición GPT si quisiera.


Linux
  1. Particionar una unidad en Linux con GNU Parted

  2. Recuperación de datos de disco duro simple

  3. ¿Encontrar el tamaño del sector de una partición?

  4. ¿Cómo puedo evitar que un usuario copie archivos a otro disco duro?

  5. ¿Cómo creo nuevas particiones y formateo mi disco duro en partes?

Cómo reemplazar un disco duro en Linux

Cómo particionar y formatear una unidad en Linux

Cómo clonar una partición o disco duro en Linux

Cómo Limpiar un Disco Duro de forma segura - Paso a Paso

Ver el contenido del disco duro en binario

¿Cómo instalar GRUB en una nueva unidad?