Comment gérer les partitions avec GNU se séparant sur Linux
Objectif
Apprendre à gérer les partitions à l'aide du gestionnaire de partition de GNU séparé sur Linux.
Exigences
- Autorisation
Conventions
- # - Exige que la commande Linux soit exécutée avec des privilèges racine
directement en tant qu'utilisateur root ou par utilisation de la commandesudo - $ - Compte tenu de la commande Linux à exécuter en tant qu'utilisateur non privilégié régulier
Présentation
La gestion des partitions est l'une des tâches les plus essentielles et dangereuses à effectuer lorsque vous travaillez avec des systèmes d'exploitation. Dans ce tutoriel, nous nous concentrerons sur l'utilisation de GNU séparés et verrons comment nous pouvons l'utiliser pour créer, redimensionner et supprimer les partitions de l'interface de ligne de commande. Parted peut fonctionner à la fois en mode interactif et non interactif, ce dernier étant particulièrement utile lorsque nous voulons automatiser certaines opérations ou lorsque les commandes doivent s'exécuter dans un contexte sans surveillance, peut-être dans un script ou à l'intérieur d 'un fichier kickstart .
Initialisation d'un appareil avec une table de partition
L'appareil sur lequel je vais travailler dans ce didacticiel, c'est /dev/sdb : La première chose que nous voulons faire est de laisser séparer l'état actuel de ce lecteur. Pour exécuter dans Mode interactif , nous devons lancés séparés des autorisations racinaires, passant comme argument à la commande, le chemin du périphérique sur lequel nous voulons fonctionner, dans ce cas:
$ sudo parted /dev/sdbL'invite séparée sera ouverte:
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
À ce point, comme suggéré à l'écran, nous pouvons taper aider , pour recevoir une liste des commandes disponibles. Dans ce cas, en passant, nous souhaitons visualiser l'état actuel du lecteur, nous utiliserons donc la commande print :
Error: /dev/sdb: unrecognised disk label
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sdb: 7743MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
Comme vous pouvez le voir, puisque /dev/sdb ne contient pas de table de partition, séparés nous montrent juste des informations sur le modèle de disque, la taille totale et la taille du secteur. Pour pouvoir utiliser le disque, nous avons besoin pour l'initialiser, nous devons donc y créer une table de partition. La commande qui nous a permis de faire mklabel . Si nous ne spécifions pas quel type de table de partition que nous voulons créer, nous nous demanderons dans l'invite:
(parted) mklabel
New disk label type? msdos
Dans ce cas, nous créons une table de partition MSDOS traditionnelle. Les autres valeurs valides sont «AIX», «Amiga», «BSD», «DVH», «GPT», «LOOP», «Mac», «PC98» et «SUN». Comme indiqué précédemment, nous aurions également pu spécifier le type de table de partition comme argument à la commande mklabel:
(parted) mklabel msdosCeci est très similaire à la commande que nous voulons utiliser si nous voulons effectuer la même tâche, mais de manière non interactive. Si la commande doit s'exécuter dans un contexte sans surveillance, nous devons également fournir l'option -s , (abréviation de - script ): Ce faisant, nous serons sûrs que l'utilisateur Intervention Il n'a jamais demandé:
$ sudo parted -s /dev/sdb mklabel msdosCréer une partition
Maintenant, créons notre première partition sur l'appareil: nous devons fournir le type de partition , en choisissant entre primaire ou étendu, le type de système de fichiers (facultatif), le point de départ de partition et le point de fin de partition. Encore une fois, s'ils ne sont pas fournis directement, ces valeurs seront demandées de manière interactive. La commande pour créer une partition est mkpart :
(parted) mkpart
Partition type? primary/extended? primary
File system type? [ext2]?
Start? 1MiB
End? 1025MiB
Une chose qui devrait être claire que même si séparée demande un type de système de fichiers, il n'en créera jamais un sur la partition: les informations sont demandées juste pour définir le Guid (identifiant unique global) de la partition .
Nous avons spécifié 1MIB comme point de départ de la partition, de sorte qu'il commencera au secteur 2048 du disque (1 secteur est de 512 octets, donc 2048 * 512=1048576 octets=1mib). Dans ce cas, nous aurions également pu utiliser s en tant qu'unité, qui signifie secteur , fournissant directement le secteur dont nous voulons que la partition commence. Le point de départ de la partition est très important pour l'alignement, mais nous en verrons plus tard.
Comme nous voulions 1Gib Partition (1024 MIB), nous avons spécifié 1025 MIB comme point de fin, car les partitions commencent à 1mib. Au cas où nous voulions que la partition couvre tout l'espace disponible sur l'appareil, nous aurions pu fournir 100% en valeur. Il est également important de remarquer que lors de la fourniture d'un point de démarrage ou de fin de partition, il est recommandé d'utiliser des unités binaires telles que MIB ou GIB. Lors de l'exécution en mode non interactif, la commande ci-dessus devient:
$ sudo parted -s /dev/sdb mkpart primary 1MiB 1025MiBSi maintenant l'exécution de la commande print, nous pouvons voir la partition que nous venons de créer:
(parted) print
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sdb: 7743MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1049kB 1075MB 1074MB primary
Le nombre de la partition, ses points de début et de fin ainsi que sa taille et son type sont affichés. Nous pouvons demander à la séparation d'utiliser une unité de mesure spécifique lors de l'affichage de ces informations. Dites par exemple, nous voulons utiliser mib en tant qu'unité: nous pourrions utiliser la commande unité pour le spécifier, puis exécuter imprimer à nouveau :
(parted) unit MiB
(parted) print
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sdb: 7384MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1.00MiB 1025MiB 1024MiB primary
Comme vous pouvez le voir, l'unité que nous avons spécifiée est maintenant utilisée.
Vérification d'un alignement de partition
Comme nous l'avons dit précédemment, l'alignement d'une partition est un facteur très important pour optimiser les performances. En séparation, nous pouvons vérifier deux types d'alignements, minimal et optimal . En mode minimal, le programme vérifie que la partition respecte la valeur d'alignement minimum sur les blocs physiques, tandis qu'en mode optimal, il vérifie si la partition est alignée sur un multiple de la taille du bloc physique, pour fournir des performances optimales. La commande à utiliser pour effectuer ces chèques est AlignCheck :
(parted) align-check
alignment type(min/opt) [optimal]/minimal?
Partition number? 1
1 aligned
Une fois la commande exécutée en mode interactif, nous sommes invités à fournir le type d'alignement que nous voulons vérifier (optimal est utilisé par défaut) et le numéro de partition (1). Dans ce cas, séparé a confirmé que la partition est correctement alignée. La version non interactive de la commande est:
$ sudo parted -s /dev/sdb align-check optimal 1Puisque nous avons utilisé le drapeau -s , nous n'avons observé aucune sortie de la commande, mais nous pouvons savoir si elle a réussi, en vérifiant son code de sortie:
$ echo $?
0
Comme vous le savez, les variables $? contient la valeur de sortie de la dernière commande lancée, et comme il est 0 , nous savons que la commande elle-même a réussi . Lorsque vous ne fournissez pas l'option -s , la commande renvoie le résultat de la vérification de la même manière que ce qui se passe en mode interactif:
$ sudo parted /dev/sdb align-check optimal 1
1 aligned
Redimensionner une partition
Le redimensionnement d'une partition est également une opération très dangereuse, surtout si la partition contient déjà un système de fichiers. Sachez que lors de la modification de la taille d'une partition, la séparation ne s'adaptera jamais au système de fichiers, par conséquent, en particulier lorsque vous devez rétrécir, vous devez d'abord utiliser les outils dédiés pour redimensionner le système de fichiers utilisé. La commande utilisée pour effectuer une redimensivité de partition est resizepart . Notre taille de partition est actuellement de 1 GIB; Si, par exemple, nous aimerions l'étendre pour couvrir tout l'espace restant sur l'appareil, nous tapons:
(parted) resizepart
Partition number? 1
End? [1075MB]? 100%
Après avoir tapé la commande resizepart , nous avons séparé nous pour fournir le numéro de la partition et la valeur de sa nouvelle fin. Dans ce cas, nous avons fourni 100% , ce qui est le moyen le plus court de garantir que tout espace restant sur l'appareil est couvert. La version non interactive de la commande est:
sudo parted -s /dev/sdb resizepart 1 100%Où, encore une fois, 1 est le numéro de partition, et à 100% c'est la nouvelle valeur pour le point de fin de partition. Si nous exécutons imprimer à nouveau, nous pouvons faire une confirmation que les modifications que nous avons apportées ont été appliquées:
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit MiB
(parted) print
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sdb: 7384MiB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 1.00MiB 7384MiB 7383MiB primary
La partition couvre désormais tout l'espace sur l'appareil.
Supprimer une partition
La suppression d'une partition est tout aussi facile. De toute évidence, nous devons effectuer une telle opération avec la plus grande attention. La commande à utiliser dans ce cas est rm :
(parted) rm
Partition number? 1
Encore une fois, comme nous n'avons pas fourni le numéro de partition directement, nous nous a informés à fournir les informations nécessaires. Nous aurions pu simplement le fournir directement, en écrivant rm 1 . Lors de l'exécution en mode non interactif, la commande devient:
$ sudo parted -s /dev/sdb rm 1
Comme prévu, après avoir exécuté la commande, la partition n'existe plus:
(parted) print
Model: Generic- SD/MMC/MS PRO (scsi)
Disk /dev/sdb: 7743MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
Conclusions
La gestion des partitions est une tâche dangereuse qui devrait être effectuée avec l'attention maximale. Bien que de nombreux outils graphiques existent sur Linux pour accomplir les tâches nécessaires (la plus célèbre est probablement GPART qui est basée sur la séparation elle-même), nous avons parfois besoin de la simplicité et de la puissance de la ligne de commande. Dans de telles situations, la séparation est le bon outil. Comme toujours, la consultation du programme Manpage est toujours recommandée. Amusez-vous et soyez prudent!