Le fdisk Linux/Unix

Je rappelle que le partitionnement est une opération à risques (même avec PartitionMagic).
En conséquence de quoi, prenez la peine de sauvegarder vos données avant d'y procéder.


Utilisation:

Il existe une version Linux de fdisk bien plus complète que la version fournie par Micro$oft.
Elle voit bien d'autres types de partitions que les seules partitions Linux.
Ce programme est disponible dans toutes les distributions de Linux (même sur des mini-distributions comme tomsrtbt).


Par exemple, fdisk /dev/hda -l, affiche le contenu du disque dur maître sur le premier connecteur IDE.
En voici le résultat sur un poste:

[root@pc17 root]# fdisk /dev/hda -l

Disque /dev/hda : 255 têtes, 63 secteurs, 1240 cylindres
Unités = cylindres sur 16065 * 512 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 * 1 638 5124703+ b Win95 FAT32
/dev/hda2 639 1240 4835565 85 Linux étendu
/dev/hda5 639 956 2554303+ 83 Linux
/dev/hda6 957 994 305203+ 82 Echange Linux
/dev/hda7 995 1240 1975963+ 83 Linux

[root@pc17 root]#

Attention à la "casse", Linux fait la distinction entre majuscules et minuscules contrairement à Window$.
fdisk et FDISK ou FdiSk,... désignent des fichiers différent (seul fdisk correspond au programme de partitionnement).


fdisk, les commandes disponibles:

Pour accéder au menu et manipuler les partitions du disque dur maître sur le premier connecteur IDE, on tape fdisk /dev/hda
A l'invite Commande (m pour aide) :, taper m, nous affichera les commandes disponibles:

[root@pc17 root]# fdisk /dev/hda

The number of cylinders for this disk is set to 1240.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)

Commande (m pour aide) : m
Action de commande
a   (Dés)active un indicateur Bootable
b   Edite le libellé de disque bsd
c   (Dés)active l'indicateur de compatibilité DOS
d   Supprime une partition
l   Répertorie les types de partition connus
m   Affiche ce menu
n   Ajoute une nouvelle partition
o   Crée une nouvelle table de partition DOS vide
p   Affiche la table de partition
q   Quitte le programme sans enregistrer les modifications
s   Crée un nouveau libellé de disque Sun vide
t   Change l'ID système d'une partition
u   Change l'unité d'affichage/saisie
v   Vérifie la table de partition
w   Ecrit la table sur le disque et quitte le programme
x   Fonctions supplémentaires (experts seulement)

Commande (m pour aide) :

Pour lancer fdisk sur un autre disque dur, il faudra taper fdisk /dev/hdb, fdisk /dev/hdc, fdisk /dev/hdd selon la position du disque (maitre/esclave sur le premier/deuxième connecteur IDE).


Lister les partitions:

Affichons les partitions actuellement disponibles:


Commande (m pour aide) : p

Disque /dev/hda : 255 têtes, 63 secteurs, 1240 cylindres
Unités = cylindres sur 16065 * 512 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 * 1 638 5124703+ b Win95 FAT32
/dev/hda2 639 1240 4835565 85 Linux étendu
/dev/hda5 639 956 2554303+ 83 Linux
/dev/hda6 957 994 305203+ 82 Echange Linux
/dev/hda7 995 1240 1975963+ 83 Linux

Commande (m pour aide) :

Nous observons ici la présence d'une partition Window$ en FAT32 (désignée par /dev/hda1).

Par ailleurs, une partition primaire Linux /dev/hda2 contient les partitions étendues /dev/hda5 (le système Linux monté en /), le SWAP (mémoire virtuelle pour reprendre la terminologie Window$) en /dev/hda6 et la partition de données personnelles en /dev/hda7 et montée en /home.

Remarque: Les points de montage (racine / et dossier personnels /home sont donnés ici pour info mais n'apparaissent pas via fdisk.


Supprimer des partitions:

Si nous souhaitons supprimer une partition, à l'invite Commande (m pour aide) :, tapons d et validons:

Commande (m pour aide) : d
Numéro de partitions (1-7): 1

Commande (m pour aide) :

Le numéro de la partition à supprimer est demandé.
Il est judicieux de repérer la partition à supprimer avant de se lancer.
Ici, j'ai supprimé la première partition (/dev/hda1) et validé avec ENTREE.

L'invite de commande nous est à nouveau proposée.

Attention: La suppression n'est pas encore réalisée:
Elle ne le sera que lorsque nous aurons commandé d'écrire la table de partition (commande w).

Remarque: Il est possible d'interrompre le programme par CTRL+C ou tout bêtement par la commande q.


Afficher les partitions:

Affichons maintenant les partitions présentes sur le disque /dev/hda à l'aide de la commande p (suivie de ENTREE):

Commande (m pour aide) : p

Disque /dev/hda : 255 têtes, 63 secteurs, 1240 cylindres
Unités = cylindres sur 16065 * 512 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda2 639 1240 4835565 85 Linux étendu
/dev/hda5 639 956 2554303+ 83 Linux
/dev/hda6 957 994 305203+ 82 Echange Linux
/dev/hda7 995 1240 1975963+ 83 Linux

Commande (m pour aide) :

La liste des partitions est affichée.

On n'y trouve pas de partition /dev/hda1 pour la simple et bonne raison que c'est celle que nous avons supprimée à l'étape précédente.


Créer une partition:

Pour créer maintenant une partition, tapons n:

 Commande (m pour aide) : n

Action de commande
l Logique (5 ou plus)
p Partition primaire (1-4)
p
Numéro de partitions (1-4): 1
Premier cylindre (1-1240, 1 par défaut) : 1
Dernier cylindre ou +size ou +sizeM ou +sizeK (1-638, 638 par défaut) : +1000M

Commande (m pour aide) :

Il nous est demandé si cette nouvelle partition doit être Logique (l) ou Primaire (p).

J'ai répondu primaire p et le numéro de la partition à créer m'a été demandé:
Pour une partition primaire, c'est entre 1 et 4, sachant que /dev/hda2 est déjà prise (voir ci-dessus), j'ai le choix entre 1, 3 et 4.
J'ai choisi 1.
Le premier cylindre que j'ai choisi est 1.
Pour le dernier cylindre, j'ai préféré créer une partition de 1000Mo en tapant 1000M.

Comme je n'ai pas utilisé toute la place disponible, je vais pouvoir créer une deuxième partition.
Mais commençons par afficher où nous en sommes:

Commande (m pour aide) : p

Disque /dev/hda : 255 têtes, 63 secteurs, 1240 cylindres
Unités = cylindres sur 16065 * 512 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 1 128 1028128+ 83 Linux
/dev/hda2 639 1067 3445942+ 85 Linux étendu
/dev/hda5 639 688 401593+ 82 Echange Linux
/dev/hda6 689 981 2353491 83 Linux
/dev/hda7 982 1240 2080386 83 Linux

Commande (m pour aide) :

On notera que la nouvelle partition /dev/hda1 créée est par défaut de type Linux.

Créons une autre partition dans la place laissée libre entre les secteurs 128 et 639:

Commande (m pour aide) : n
Action de commande
l Logique (5 ou plus)
p Partition primaire (1-4)
p
Numéro de partitions (1-4): 3
Premier cylindre (129-1240, 129 par défaut) : 129
Dernier cylindre ou +size ou +sizeM ou +sizeK (129-638, 638 par défaut) : 638

Commande (m pour aide) :
Cette nouvelle partition occupe toute la place restante.
J'en ai fait une partition primaire (il ne me restait donc plus que /dev/hda3 et /dev/hda4).

Affichons la nouvelle situation:
Commande (m pour aide) : p

Disque /dev/hda : 255 têtes, 63 secteurs, 1240 cylindres
Unités = cylindres sur 16065 * 512 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 1 128 1028128+ 83 Linux
/dev/hda2 639 1067 3445942+ 85 Linux étendu
/dev/hda3 129 638 4096575 83 Linux
/dev/hda5 639 688 401593+ 82 Echange Linux
/dev/hda6 689 981 2353491 83 Linux
/dev/hda7 982 1240 2080386 83 Linux

Les entrées de la table de partitions ne suivent pas l'ordre du disque.

Commande (m pour aide) :
On remarque que l'ordre des partitions sur le disque serait plutôt:
/dev/hda1             1       128   1028128+  83  Linux
/dev/hda3 129 638 4096575 83 Linux
/dev/hda2 639 1067 3445942+ 85 Linux étendu
où la partition primaire étendue /dev/hda2 contient les partitions logiques /dev/hda5, /dev/hda6 et /dev/hda7.

Pour changer le type d'une partition:

Pour changer le type d'une partition (par exemple pour passer de Linux/ext2 (qui est le système de fichier Linux standard) à FAT32), nous tapons t.
Le numéro de la partition nous est demandé, puis le code hexadécimal du type de partition souhaité.
Fort heureusement et cela nous est rappelé, taper L permet d'afficher la liste des types disponibles.

Commande (m pour aide) : t
Numéro de partitions (1-7): 1
Code hexadécimal (tapez L pour afficher une liste des codes) : L
 0  Vide            1c  Win95 FAT32 cac 65  Novell Netware  bb  Boot Wizard hid
1 FAT12 1e Win95 FAT16 cac 70 DiskSecure Mult c1 DRDOS/sec (FAT-
2 root XENIX 24 NEC DOS 75 PC/IX c4 DRDOS/sec (FAT-
3 util XENIX 39 Plan 9 80 Old Minix c6 DRDOS/sec (FAT-
4 FAT16 <32M 3c Reprise Partiti 81 Minix / ancien c7 Syrinx
5 Etendue 40 Venix 80286 82 Echange Linux da Non-FS data
6 FAT16 41 Amorce PPC PReP 83 Linux db CP/M / CTOS / .
7 HPFS/NTFS 42 SFS 84 Lecteur C: cach de Dell Utility
8 AIX 4d QNX4.x 85 Linux étendu df BootIt
9 AIX amorçable 4e QNX4.x 2ème par 86 Ensemble de vol e1 Accès DOS
a Gestionnaire d' 4f QNX4.x 3ème par 87 Ensemble de vol e3 R/O DOS
b Win95 FAT32 50 OnTrack DM 8e Linux LVM e4 SpeedStor
c Win95 FAT32 (LB 51 OnTrack DM6 Aux 93 Amoeba eb BeOS fs
e Win95 FAT16 (LB 52 CP/M 94 Amoeba BBT ee EFI GPT
f Win95 Etdue (LB 53 OnTrack DM6 Aux 9f BSD/OS ef EFI (FAT-12/16/
10 OPUS 54 OnTrackDM6 a0 Hibernation Thi f0 Linux/PA-RISC b
11 FAT12 caché 55 EZ-Drive a5 FreeBSD f1 SpeedStor
12 Diagnostics Com 56 Golden Bow a6 OpenBSD f4 SpeedStor
14 FAT16 caché <32 5c Priam Edisk a7 NeXTSTEP f2 DOS secondaire
16 FAT16 caché 61 SpeedStor a9 NetBSD fd Détection auto
17 HPFS/NTFS caché 63 GNU HURD ou Sys b7 BSDI fs fe LANstep
18 AST SmartSleep 64 Novell Netware b8 Swap BSDI ff BBT
1b Win95 FAT32 cac

Code hexadécimal (tapez L pour afficher une liste des codes) :

Passer à FAT32 nécessitera le code b.

Commande (m pour aide) : t
Numéro de partitions (1-7): 1
Code hexadécimal (tapez L pour afficher une liste des codes) : b
Le type de système de la partition 1 a été remplacé par b (Win95 FAT32).

Commande (m pour aide) : t
Numéro de partitions (1-7): 3
Code hexadécimal (tapez L pour afficher une liste des codes) : b
Le type de système de la partition 3 a été remplacé par b (Win95 FAT32).

Commande (m pour aide) : p

Disque /dev/hda : 255 têtes, 63 secteurs, 1240 cylindres
Unités = cylindres sur 16065 * 512 octets

Périphérique Amorce Début Fin Blocs Id Système
/dev/hda1 1 128 1028128+ b Win95 FAT32
/dev/hda2 639 1067 3445942+ 85 Linux étendu
/dev/hda3 129 638 4096575 b Win95 FAT32
/dev/hda5 639 688 401593+ 82 Echange Linux
/dev/hda6 689 981 2353491 83 Linux
/dev/hda7 982 1240 2080386 83 Linux

Les entrées de la table de partitions ne suivent pas l'ordre du disque.

Commande (m pour aide) :
Je vous laisse observer les changements.


Pour valider les changements:

Pour rendre les changements effectifs, il faut écrire la nouvelle table de partition avec w.
Si vous quittez avec q sans écrire les changements, vous n'aurez rien changé à votre table de partition.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
    hda:    hda1    hda2
    hda:    hda1    hda2
Syncing disks.

Remarque importante: Lors de la procédure d'écriture, fdisk fait relire la table de partition au sytème si bien qu'il n'est pas nécessaire de redémarrer (il est fréquent que des opérations qui nécessitent un redémarrage sous Window$ n'en nécessitent pas sous Linux).

 

Remarques:

Il existe aussi une version cfdisk plus conviviale, dit-on.
C'est la version utilisée par Debian lors de son installation par exemple.

La commande man fdisk vous permettra d'en apprendre davantage.


Liens:

Le site de ...

<<CHERCHER fdisk et cfdisk (pages de man,...)>>