GNU/Linux >> Linux Esercitazione >  >> Linux

Copia della struttura delle partizioni del disco rigido

C'è un modo per rinominare sda5 in sda4?

Sì {ed è per questo che esiste una risposta lunga sotto questa domanda}

Prendo come esempio la mia chiavetta USB /dev/sdc. Modifica per il tuo caso di conseguenza

Per prima cosa conosci la tua unità :{Solo per verificare che stai utilizzando il disco desiderato }

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

  • Assicurati che tutte le partizioni siano state smontate durante il processo di modifica della tabella delle partizioni.
  • Nessuna applicazione accede al disco/modifica il suo contenuto.

Conosci il tuo strumento di lavoro:sfdisk

Dalla manpage

sfdisk è uno strumento orientato agli script per partizionare qualsiasi dispositivo a blocchi.

Vuoi maggiori dettagli ??

Esegui :man sfdisk

Prova lo strumento sull'unità desiderata

sfdisk -d /dev/sdc

Se /dev/sdc è il disco di destinazione;

Eseguire prima il backup della tabella delle partizioni sdc.bak

sfdisk -d /dev/sdc > sdc.bak

Procurati una copia funzionante - sdc.new

cp sdc.bak sdc.new

Sporcati le mani

Apri sdc.new nel tuo editor preferito

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

Nota la sequenza delle partizioni

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

Ora voglio che la sequenza delle partizioni sia così

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

In breve le mie modifiche richieste :

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

Modifica sdc.new di conseguenza

Nota-

  • Non modificare alcun numero tranne i numeri di partizione. Sono sicuro che sai perché.

sdc.new

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

Riscrivi la tabella delle partizioni

sfdisk /dev/sdc < sdc.new

Esempio di output :

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.

È ora di fare un controllo incrociato

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

Nel caso in cui le cose vadano male, ripristina dalla tabella delle partizioni di backup sdc.bak -

sfdisk /dev/sdc < sdc.bak

Posso aiutarti con parti di questo.

Se il disco utilizza una tabella delle partizioni MBR, deve utilizzare una partizione estesa come sospettavi perché l'MBR può supportare solo quattro partizioni primarie. Questo è uno dei motivi per cui le tabelle delle partizioni GPT sono preferite. Non hanno questa limitazione. Supportano anche partizioni più grandi.

Quando Linux esamina un'unità disco, assegna i dispositivi a ciascuna partizione che trova in sequenza sull'unità. Se quell'unità è la prima unità che vede, la chiamerà /dev/sda e le partizioni su di essa verranno assegnate a partire da /dev/sda1. Quindi non puoi rinominarli.

È buona norma non fare affidamento sui nomi dei dispositivi esattamente per il tipo di problemi che stai incontrando. La maggior parte delle persone usa gli UUID delle partizioni per fare riferimento a loro, il che è un grande miglioramento. Faccio un ulteriore passo avanti e utilizzo etichette di partizione uniche, leggibili dall'uomo / significative per fare riferimento alle partizioni. Se disponi di più unità, non puoi garantire che vengano riconosciute nello stesso ordine a ogni avvio, quindi un dispositivo che una volta era /dev/sdb potrebbe essere /dev/sdc un'altra volta. La situazione peggiora ancora quando si dispone di dischi rimovibili che non ottengono nemmeno un file di dispositivo fino a quando non sono fisicamente collegati al sistema. Gli UUID sono più invarianti, ma cambieranno anche se ridimensioni o sposti una partizione. Le etichette non vengono modificate, ma dipendono da te per nominarle in modo univoco.

Non so perché /dev/sda4 venga saltato, specialmente se lo scambio è già assegnato a /dev/sda2. Non so come risolverlo. Se guardi la nuova unità, dovrebbe esserci "qualcosa" dove dovrebbe essere /dev/sda4. Forse /dev/sda3 riempie il resto del disco, ma anche se lo facesse, penserei che /dev/sda4 sarebbe comunque la prima partizione estesa al suo interno. O, forse il contrario, non riempie il resto del disco e quindi /dev/sd4 viene riservato per lo spazio dopo l'intera partizione estesa /dev/sd3.

Come possibile soluzione alternativa, se si ha accesso a un altro computer, è possibile creare la nuova unità su di esso, ottenere gli UUID o le etichette di tutte le nuove partizioni e quindi eseguire tutti gli script tramite sed per modificare tutti i riferimenti del dispositivo per utilizzare gli UUID o etichette. Potresti anche passare a uno schema di partizionamento GPT se lo desideri.


Linux
  1. Semplice recupero dati dal disco rigido

  2. Metodi diversi per montare un'unità in Linux?

  3. Trovare la dimensione del settore di una partizione?

  4. Perché il numero di unità/partizione è ancora utilizzato?

  5. Come controllare lo stato di salute di un disco rigido

Come sostituire un disco rigido su Linux

Come partizionare e formattare un'unità su Linux

Come clonare una partizione o un disco rigido in Linux

Come pulire in modo sicuro un disco rigido - Passo dopo passo

Visualizzazione dei contenuti del disco rigido in binario

Pulisci l'ultimo 1 MB di un disco rigido