GNU/Linux >> Tutoriels Linux >  >> Linux

Copie de la structure de la partition du disque dur

Existe-t-il un moyen de renommer le sda5 en sda4 ?

Oui {et c'est pourquoi une longue réponse sous cette question existe

Je prends ma clé USB /dev/sdc comme exemple. Modifiez pour votre cas en conséquence

Connaissez d'abord votre lecteur :{Juste pour vérifier que vous utilisez le disque souhaité }

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

Remarque

  • Assurez-vous que toutes les partitions sont démontées pendant le processus de modification de la table de partition.
  • Aucune application accédant au disque/modifiant son contenu.

Connaissez votre outil de travail - sfdisk

De la page de manuel

sfdisk est un outil orienté script pour partitionner n'importe quel périphérique bloc.

Vous voulez plus de détails ??

Exécuter :man sfdisk

Essayez l'outil sur le lecteur souhaité

sfdisk -d /dev/sdc

Si /dev/sdc est le disque cible;

Sauvegardez d'abord la table de partition sdc.bak

sfdisk -d /dev/sdc > sdc.bak

Procurez-vous une copie de travail - sdc.new

cp sdc.bak sdc.new

Mettez vos mains dans le cambouis

Ouvrez sdc.new dans votre éditeur préféré

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

Notez la séquence de partition

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

Maintenant, je veux que la séquence de partition soit comme ça

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

Bref mes modifications demandées :

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

Modifier sdc.new en conséquence

Remarque-

  • Ne modifiez aucun numéro à l'exception des numéros de partition. Je suis sûr que vous savez pourquoi.

sdc.nouveau

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

Réécrire la table de partition

sfdisk /dev/sdc < sdc.new

Exemple de sortie :

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.

Il est temps de contre-vérifier

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

Au cas où les choses se gâteraient, restaurez à partir de la table de partition de sauvegarde sdc.bak -

sfdisk /dev/sdc < sdc.bak

Je peux vous aider avec certaines parties de ceci.

Si le disque utilise une table de partition MBR, il doit utiliser une partition étendue comme vous le soupçonniez car le MBR ne peut prendre en charge que quatre partitions principales. C'est l'une des raisons pour lesquelles les tables de partition GPT sont privilégiées. Ils n'ont pas cette limitation. Ils prennent également en charge des partitions plus grandes.

Lorsque Linux examine un lecteur de disque, il attribue des périphériques à chaque partition qu'il trouve séquentiellement sur le lecteur. Si ce disque est le premier disque qu'il voit, il l'appellera /dev/sda et les partitions qu'il contient seront assignées en commençant par /dev/sda1. Vous ne pouvez donc pas les renommer.

Il est recommandé de ne pas se fier aux noms de périphériques pour exactement le type de problèmes que vous rencontrez. La plupart des gens utilisent les UUID des partitions pour s'y référer, ce qui est une grande amélioration. Je vais un peu plus loin et j'utilise des étiquettes de partition uniques, lisibles/significatives pour faire référence aux partitions. Si vous avez plusieurs disques, vous ne pouvez pas garantir qu'ils seront reconnus dans le même ordre à chaque démarrage, donc un périphérique qui était /dev/sdb une fois pourrait être /dev/sdc une autre fois. C'est encore pire lorsque vous avez des disques amovibles qui n'obtiennent même pas de fichier de périphérique tant qu'ils ne sont pas physiquement connectés au système. Les UUID sont plus invariants, mais changeront également si vous redimensionnez ou déplacez une partition. Les étiquettes ne sont pas modifiées, mais comptez sur vous pour les nommer de manière unique.

Je ne sais pas pourquoi /dev/sda4 est ignoré - surtout si le swap est déjà attribué à /dev/sda2. Je ne sais pas comment résoudre ce problème. Si vous regardez le nouveau lecteur, il devrait y avoir "quelque chose" là où /dev/sda4 est censé se trouver. Peut-être que /dev/sda3 remplit le reste du disque, mais même si c'est le cas, je pense que /dev/sda4 serait toujours la première partition étendue à l'intérieur. Ou, peut-être le contraire, il ne remplit pas le reste du disque et donc /dev/sd4 est réservé pour l'espace après toute la partition étendue /dev/sd3.

Comme solution de contournement possible, si vous avez accès à un autre ordinateur, vous pouvez créer le nouveau lecteur dessus, obtenir les UUID ou les étiquettes de toutes les nouvelles partitions, puis exécuter tous vos scripts via sed pour modifier toutes les références de périphérique afin d'utiliser les UUID ou Étiquettes. Vous pouvez même passer à un schéma de partitionnement GPT si vous le souhaitez.


Linux
  1. Partitionner un disque sous Linux avec GNU Parted

  2. Trouver la taille du secteur d'une partition ?

  3. Cloner une partition entière ou un disque dur dans un fichier clairsemé ?

  4. Pourquoi le numéro de lecteur/partition est-il toujours utilisé ?

  5. Monter /tmp et /home sur un disque dur séparé ?

Comment remplacer un disque dur sous Linux

Comment partitionner et formater un disque sous Linux

Comment cloner une partition ou un disque dur sous Linux

Comment nettoyer un disque dur en toute sécurité - étape par étape

Comment vérifier la santé d'un disque dur

Affichage du contenu du disque dur en binaire