Programmes de manipulations de partitions - fdisk - sfdisk

Mise à jour : Debian Buster 10.0

Ce document présente l'utilisation des outils de partitionnement: fdisk, sfdisk

Sommaire

1 - Préalable

1.1 - Précautions

Le partitionnement a pour effet de créer ou modifier la table de partition et son contenu, il ne modifie pas le contenu des partitions.

Mais l'écrasement ou la modification malheureuse de la table de partition a pour effet de rendre inaccessible l'accès aux données. Il est donc fortement recommandé avant toute opération portant sur la table de partition :

Dans ce qui suit, le périphérique de stockage est supposé être une clé USB ayant pour identifiant /dev/sdb

1.2 - Installation

$ man fdisk
$ man sfdisk
$ sudo fdisk -V
fdisk de util-linux 2.33.1
...
$ sudo fdisk -h
$ sudo sfdisk -h

2 - fdisk

2.1 - Lancement

Lancer fdisk pour entrer en mode interactif

$ sudo fdisk /dev/sdb

Bienvenue dans fdisk (util-linux 2.25.2).
Les modifications resteront en mémoire jusqu'à écriture.
Soyez prudent avant d'utiliser la commande d'écriture.

Le périphérique ne contient pas de table de partitions reconnue.
Created a new DOS disklabel with disk identifier 0x4cfadf77.

Commande (m pour l'aide) :
Aide :
...

Générique
d supprimer la partition
l afficher les types de partitions connues
n ajouter une nouvelle partition
p afficher la table de partitions
t modifier le type d'une partition
v vérifier la table de partitions

Autre
p m afficher ce menu
u modifier les unités d'affichage et de saisie
x fonctions avancées (réservées aux spécialistes)

Sauvegarder et quitter
w écrire la table sur le disque et quitter
q quitter sans enregistrer les modifications

Créer une nouvelle étiquette
g créer une nouvelle table vide de partitions GPT
G créer une nouvelle table vide de partitions SGI (IRIX)
o créer une nouvelle table vide de partitions DOSl
s créer une nouvelle table vide de partitions Sun

2.2 - Création d'une table de partition

Cela supprime la table de partition éventuellement existante, mais ne supprime pas les données sur le disque; Si l'on rétablit la table de partition, les données restent accessibles comme auparavent.

2.3 - Création des partitions

Après avoir créé la table de partition, comme indiqué ci-dessus :

Une nouvelle partition 1 de type « Linux » et de taille 1,9 GiB a été créée.
Commande (m pour l'aide) : t
Partition 1 sélectionnée
Code Hexa (taper L pour afficher tous les codes) :L

0 Vide 24 NEC DOS 81 Minix / Linux a bf Solaris
1 FAT12 27 TFS WinRE masqu 82 partition d'éch c1 DRDOS/sec (FAT-
2 root XENIX 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
......
Code Hexa (taper L pour afficher tous les codes) :
Commande (m pour l'aide) : p   
Disque /dev/sdb : 1,9 GiB, 2013265920 octets, 3932160 secteurs
....

Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 3932159 3930112 1,9G 87 NTFS volume set
Commande (m pour l'aide) : w
La table de partitions a été altérée.
Appel d'ioctl() pour relire la table de partitions.
Synchronisation des disques.

2.4 - Vérification

$ sudo fdisk -l /dev/sdb
......
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 3932159 3930112 1,9G 83 Linux

A noter que l'indication du type de partition qui apparaît (Linux dans l'exemple ci-dessus) n'indique pas que celle-ci a été effectivement formatée.

$ sudo lsblk -f /dev/sdb
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb
└─sdb1

3 - sfdisk

Par rapport aux autres outils de partitionnement, sfdisk

L'unité par défaut de sfdisk est le secteur. Les puissances de 2 sont également disponibles : MiB ou M, GiB ou G, etc....

3.1 - Ajout / modification de partitions

$ echo 'start=1GiB size=8GiB' |sudo sfdisk /dev/sdb # ou bien 

$ echo '1G,8G'|sudo sfdisk /dev/sdb
$ echo 'start=2GiB size=4GiB' |sudo sfdisk /dev/sdb -N1 # ou bien

$ echo '2G,4G'|sudo sfdisk /dev/sdb -N1
$ echo 'size=3G' |sudo sfdisk /dev/sdb -N1
$ echo ',3G'|sudo sfdisk /dev/sdb -N1
$ echo 'start=9GiB' |sudo sfdisk /dev/sdb -a  # ou bien 

$ echo '9G,'|sudo sfdisk /dev/sdb -a

Lorsqu'un paramètre start ou size est omis, lors d'une création de partition, start est la première position possible, size est la plus grande possible jusqu'à la prochaine partition ou fin du disque.

3.2 - Type et nom des partitions

Par défaut, le type de partition est linux et les partitions sont sans nom

3.2.1 Cas de la notation abrégée

Dans le cas de la notation abrégée, il n'est pas possible de définir le nom.

Pour définir le type de partition, utiliser le champ après les champs start et size et utiliser soit l'abréviation L(inux) S(wap)U(efi), ... soit l'identifiant UUID.

$ echo ',,U'|sudo sfdisk /dev/sdb -N1

3.2.2 Cas de la notation longue

Définir le nom avec name=<Nom_partition> et le type avec type=>Code_type>

Le code du type est nécessairement son identifiant UUID

Linux 0FC63DAF-8483-4772-8E79-3D69D8477DE4 pour GPT # ou 83 pour MBR 
Swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F pour GPT # ou 82 pour MBR
Uefi C12A7328-F81F-11D2-BA4B-00A0C93EC93B pour GPT # ou EF pour MBR
$ echo 'name=ESP type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B' |sudo sfdisk /dev/sdb -N1

3.3 - Autres commandes

$ sudo sfdisk /dev/sdb -l
$ sudo sfdisk /dev/sdb --delete 1
$ echo 'label: gpt'|sudo sfdisk /dev/sdb