Parted

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Partitionnement de disque (MBR/GPT)
Commande parted
Contexte Disques > 2 To (GPT obligatoire), scripts non interactifs (-s)
Voir aussi Aligner des partitions, Blockdev

parted crée, modifie et supprime des tables de partitions et des partitions, en MBR comme en GPT. Contrairement à fdisk (limité au MBR et aux disques de moins de 2 To), parted gère nativement GPT et peut aussi bien s'utiliser en mode interactif qu'en mode script — c'est ce dernier mode (option -s) qui est le plus utile en exploitation, pour partitionner un disque depuis un script ou un playbook sans invite de confirmation.

Installation

apt-get install parted     # Debian/Ubuntu
yum install parted         # RHEL/CentOS

Identifier le disque

Avant toute opération destructive, vérifier le modèle et la table de partitions existante :

parted -s /dev/sda print

Créer une table de partitions et une partition

Séquence type pour un nouveau disque de données : créer une table GPT, puis une partition unique occupant tout l'espace, alignée sur les blocs physiques (-a optimal laisse parted choisir l'alignement — voir Aligner des partitions pour le détail du pourquoi et la vérification manuelle sur des disques plus anciens) :

datas_device=/dev/sdb
parted -s -a optimal "$datas_device" mklabel gpt
parted -s -a optimal "$datas_device" mkpart primary ext4 0% 100%

Les bornes en pourcentage (0% 100%) évitent de calculer des offsets en Mo/secteurs à la main et laissent parted aligner lui-même le début et la fin de la partition.

⚠️ mkpart ... ext4 ne formate rien : le paramètre de type de système de fichiers n'est qu'une étiquette stockée dans la table de partitions (utile pour certains outils, et obligatoire pour choisir le bon code de partition GPT) — il reste nécessaire de lancer mkfs séparément pour créer réellement le système de fichiers. L'ancienne commande mkpartfs, qui combinait les deux, a disparu des versions récentes de parted.

Poser un flag sur une partition

Certains usages (LVM, boot, RAID) nécessitent de poser un flag sur la partition après création :

parted -s "$datas_device" set 1 lvm on    # partition 1 utilisable comme PV LVM
parted -s "$datas_device" set 1 boot on   # partition 1 marquée bootable (legacy BIOS/MBR)
parted -s "$datas_device" set 1 raid on   # partition 1 destinée à un membre RAID logiciel

Informer le noyau du changement

Après toute modification de table de partitions sur un disque déjà utilisé (donc dont le noyau a mis en cache l'ancienne table), forcer la relecture avant de continuer :

partprobe /dev/sda

Sans cette étape, /dev/sda1 peut rester absent ou désynchronisé de la table réelle tant que le disque n'a pas été redémonté ou que la machine n'a pas rebooté.

Autres opérations utiles

parted -s /dev/sda rm 2                      # supprimer la partition 2
parted -s /dev/sda resizepart 1 100%         # redimensionner la partition 1 (sans toucher au FS)
parted -s /dev/sda unit s print              # afficher les tailles/offsets en secteurs plutôt qu'en Mo

Redimensionner une partition avec resizepart ne redimensionne pas le système de fichiers qu'elle contient : il faut ensuite agrandir/réduire le FS lui-même (resize2fs, xfs_growfs…) selon son type.

Voir aussi

  • Aligner des partitions — pourquoi et comment vérifier l'alignement, notamment sur des disques ou VM plus anciens
  • Blockdev — inspecter la taille et la table de partitions au niveau bloc après coup
  • Fdisk — équivalent MBR-only, plus simple pour les petits disques