L'utilitaire mkfs est utilisé pour créer un système de fichiers (ext2, ext3, ext4, etc.) sur votre système Linux. Vous devez spécifier le nom du périphérique à mkfs sur lequel le système de fichiers doit être créé.
AVERTISSEMENT :L'exécution de ces commandes détruira toutes les données de votre système de fichiers. Alors, essayez ces commandes uniquement sur un système de test où vous ne vous souciez pas de perdre vos données.
1. Afficher les commandes disponibles du générateur de système de fichiers
Les constructeurs de systèmes de fichiers (commandes mkfs*) sont généralement recherchés dans des répertoires tels que /sbin/, /sbin/fs, /sbin/fs.d, /etc/fs et /etc. S'il n'est pas trouvé, il recherche finalement les répertoires trouvés dans la variable PATH.
La liste suivante montre les commandes mkfs* disponibles dans un système.
# cd /sbin # ls mkfs* mkfs mkfs.bfs mkfs.cramfs mkfs.ext2 mkfs.ext3 mkfs.ext4 mkfs.ext4dev mkfs.minix mkfs.msdos mkfs.ntfs mkfs.vfat
Si vous êtes nouveau sur le système de fichiers, lisez Ext2 vs Ext3 vs Ext4.
2. Créer un système de fichiers sur un périphérique spécifique
Afin de construire le système de fichiers à l'aide de la commande mkfs, les arguments requis sont device-filename et filesystem-type comme indiqué ci-dessous. L'exemple suivant crée un système de fichiers ext3 sur la partition /dev/sda6.
# mkfs -t ext3 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Veuillez noter que le type de système de fichiers par défaut pour la commande mkfs est ext2. Si vous ne spécifiez pas l'option "-t", cela créera un système de fichiers ext2.
En outre, vous pouvez utiliser la méthode dont nous avons discuté précédemment pour identifier si vous avez un système de fichiers ext2, ext3 ou ext4.
3. Créez un système de fichiers avec Journal en utilisant l'option -j
L'exemple ci-dessous crée un système de fichiers avec journalisation.
# mke2fs /dev/sda6 -j mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Lorsque vous n'avez pas besoin de la journalisation sur un système de fichiers, exécutez la commande mke2fs comme indiqué ci-dessous.
# mke2fs /dev/sda6
4. Rechercher les blocs défectueux sur un appareil
Avant de créer un système de fichiers, vous pouvez vérifier qu'il n'y a pas de blocs défectueux sur le système en utilisant l'option -c comme indiqué ci-dessous. Cela effectuera un test en lecture seule sur le système de fichiers pour s'assurer qu'il n'y a pas de blocs défectueux. Vous pouvez également effectuer un test de lecture-écriture pour vérifier qu'il n'y a pas de blocs défectueux à l'aide de l'option "-c -c". Veuillez noter que cela sera plus lent que l'option "-c".
# mke2fs -c /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
5. Forcer à créer un système de fichiers sur une partition montée
Il est recommandé de ne pas effectuer d'opérations sur le système de fichiers sur une partition montée. Mais vous pouvez toujours le forcer à créer un système de fichiers sur une partition en cours d'utilisation ou une partition montée avec l'option -F comme indiqué ci-dessous.
# mke2fs -F /dev/sda6
6. Octets par groupe d'inodes sur une partition
Vous voudrez peut-être répertorier les inodes utilisés et disponibles dans la partition, comme indiqué ci-dessous, à l'aide de la commande df.
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 11 1120101 1% /mydata
Comme vu ci-dessus, sur /dev/sda6, l'IUsed est de 11 sur 1120112. Une fois le nouveau fichier créé, la valeur de l'IUsed change en conséquence, comme indiqué ci-dessous.
# cd /mydata # touch sample.txt # ls sample.txt # df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 1120112 12 1120100 1% /mydata
Vous pouvez également utiliser la commande tune2fs pour afficher les détails de l'inode :
# tune2fs -l /dev/sda6 | grep Inode Inode count: 1120112 Inodes per group: 8176 Inode blocks per group: 511 Inode size: 256
Pour modifier l'inode par groupe de la partition ci-dessus (c'est-à-dire :/dev/sda6), utilisez l'option -i comme suit :
# mke2fs -i 8192 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2240224 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Comme vu ci-dessus, le nombre d'octets par inode est changé à 8192 à partir de la valeur par défaut de 16384. Maintenant, la limite d'inodes de la partition a été augmentée comme indiqué ci-dessous.
# df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 2240224 11 2240213 1% /mydata # tune2fs -l /dev/sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 1022 Inode size: 256
Changer la valeur de inodes-per-group n'a qu'un impact sur le nombre de fichiers à conserver sur la partition. La réduction de cette valeur sert à augmenter le nombre de fichiers sur une partition.
7. Modifier la taille de l'inode sur une partition
Il est possible de modifier la taille d'un Inode sur une partition en utilisant l'option I et i comme indiqué ci-dessous.
# mke2fs -I 128 -i 8192 /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 2240224 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 16352 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Comme vu ci-dessus, la taille passe de 256 à 128 et cela conduit à augmenter le nombre total d'inodes sur une partition :
# tune2fs -l /dev//sda6 | grep Inode Inode count: 2240224 Inodes per group: 16352 Inode blocks per group: 511 Inode size: 128
8. Définir le nom du volume pour la partition
Vous pouvez créer un nom/une étiquette pour une partition en utilisant l'option -L. Dans l'exemple suivant, nous attribuons DATA comme étiquette pour la partition /dev/sda6.
# mke2fs -L DATA /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label=DATA OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Writing superblocks and filesystem accounting information: done
Vous pouvez afficher le nom de l'étiquette de la partition ci-dessus en utilisant la commande e2label comme indiqué ci-dessous :
# e2label /dev/sda6 DATA
Une autre façon d'afficher l'étiquette d'une partition consiste à utiliser la commande blkid comme indiqué ci-dessous :
# blkid /dev/sda6 /dev/sda6: LABEL="DATA" UUID="0de74d35-6050-4838-99b0-46cb1d518da8" TYPE="ext2"
9. Simuler une création de système de fichiers
Lors de l'exécution de la commande mkfs, il affiche le contenu comme ce qu'il ferait sur stdout. Vous pouvez même afficher ces messages sur stdout sans réellement créer de système de fichiers en utilisant l'option -n comme indiqué ci-dessous :
# mkfs -t ext3 -n /dev/sda6 mke2fs 1.42 (29-Nov-2011) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1120112 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 8176 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000
10. Créer un système de fichiers avec un nombre spécifique d'inodes
mkfs permet de créer le système de fichiers avec le nombre d'inodes souhaité. Il vous permet de remplacer le nombre par défaut d'inodes par système de fichiers en fonction du rapport octets par inode, comme indiqué ci-dessous.
# mkfs -t ext3 -v -N 700000 /dev/sda6 mke2fs 1.42 (29-Nov-2011) fs_types for mke2fs.conf resolution: 'ext3' Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 701440 inodes, 4476416 blocks 223820 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=0 137 block groups 32768 blocks per group, 32768 fragments per group 5120 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
Ce qui précède peut être vérifié à l'aide des commandes tune2fs et df, comme indiqué ci-dessous.
# tune2fs -l /dev/sda6 | grep -i inode Filesystem features: has_journal ext_attr resize_inode dir_index filetype sparse_super large_file Inode count: 701440 Free inodes: 701429 Inodes per group: 5120 Inode blocks per group: 320 First inode: 11 Inode size: 256 Journal inode: 8 Journal backup: inode blocks # df -i /dev/sda6 Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda6 701440 11 701429 1% /mnt