Ceci est une ancienne révision du document !


Version : 2022.01

Updated : 2022/10/08 09:22

Topic 4: Filesystem and Devices

FIXME: Add smartd
FIXME: Add autofs
FIXME: Add btrfs
FIXME: Add sync
FIXME: Add fstrim
FIXME: Add luks

Contenu du Module

  • Topic 4: Filesystem and Devices
    • Contenu du Module
    • LAB #1 - Linux File Hierarchy System
      • 1.1 - Types de Fichiers
      • 1.2 - La Commande mount
      • 1.3 - La Commande umount
      • 1.4 - Le Fichier /etc/fstab
        • Options de Montage
    • Périphériques de stockage
    • Partitions
    • Partitionnement
      • LAB #2 - Partitionnement de votre Disque avec fdisk
      • LAB #3 - Modifier les Drapeaux des Partitions avec fdisk
    • Systèmes de Fichiers Journalisés
      • Présentation
      • Ext3
        • Gestion d'Ext3
        • LAB #4 - Convertir un Système de Fichiers Ext3 en Ext2
        • LAB #5 - Convertir un Système de Fichiers Ext2 en Ext3
        • LAB #6 - Placer le Journal sur un autre Partition
        • LAB #7 - Modifier la Fréquence de Vérification du Système de Fichiers Ext3
      • Ext4
        • LAB #8 - Créer un Système de Fichiers Ext4
        • LAB #9 - Ajouter une Étiquette au Système de Fichiers Ext4
        • LAB #10 - Convertir un Système de Fichiers Ext3 en Ext4
      • XFS
        • LAB #11 - Créer un Système de Fichiers XFS
        • LAB #12 - Ajouter une Étiquette au Système de Fichiers XFS
      • Autres Systèmes de Fichiers
        • ReiserFS
        • JFS
        • Btrfs
      • Comparaison des Commandes par Système de Fichiers
    • LAB #13 - Créer un Système de Fichiers ISO
      • La Commande mkisofs

LAB #1 - Linux File Hierarchy System

Le système de fichiers de Linux est organisé autour d'une arborescence unique ayant un point de départ appelé la racine, représenté par le caractère /. En dessous de cette racine se trouvent des répertoires contenant fichiers et sous-répertoires. L'organisation des répertoires est conforme à un standard, appelé le Linux File Hierarchy System.

[trainee@centos8 ~]$ cd /
[trainee@centos8 /]$ ls -l
total 18
lrwxrwxrwx.   1 root root    7 May 10  2019 bin -> usr/bin
dr-xr-xr-x.   6 root root 1024 May  8 08:14 boot
drwxr-xr-x.  19 root root 3020 Sep  6 07:59 dev
drwxr-xr-x.  91 root root 8192 Sep  6 07:59 etc
drwxr-xr-x.   3 root root   21 May  8 07:42 home
lrwxrwxrwx.   1 root root    7 May 10  2019 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 May 10  2019 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 May 10  2019 media
drwxr-xr-x.   2 root root    6 May 10  2019 mnt
drwxr-xr-x.   2 root root    6 May 10  2019 opt
dr-xr-xr-x. 126 root root    0 Sep  6 07:59 proc
dr-xr-x---.   2 root root  135 Sep  1 11:10 root
drwxr-xr-x.  29 root root  860 Sep  6 08:00 run
lrwxrwxrwx.   1 root root    8 May 10  2019 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 May 10  2019 srv
dr-xr-xr-x.  13 root root    0 Sep  6 07:59 sys
drwxrwxrwt.   8 root root  172 Sep  6 08:00 tmp
drwxr-xr-x.  12 root root  144 May  8 07:38 usr
drwxr-xr-x.  21 root root 4096 May  8 08:13 var
  • /bin : est une abréviation de binary ou binaires. Il contient des programmes tels ls. Sous CentOS 8 il s'agit d'un lien symbolique qui pointe vers /usr/bin.
  • /boot : contient les fichiers nécessaires au démarrage du système.
  • /dev : contient les nœuds utilisés pour accéder à tout type de matériel tel /dev/fd0 pour le lecteur de disquette. C'est le binaire udev qui se charge de créer et supprimer d'une manière dynamique les nœuds.
  • /etc : contient des fichiers de configuration tels passwd pour les mots de passe et fstab qui est la liste des systèmes de fichiers à monter lors du démarrage du système.
  • /home : contient les répertoires de chaque utilisateur sauf l’utilisateur root.
  • /lib : contient les bibliothèques 32 bits communes utilisées par les programmes ainsi que les modules. Sous CentOS 8 il s'agit d'un lien symbolique qui pointe vers /usr/lib.
  • /lib64 : contient les bibliothèques 64 bits communes utilisées par les programmes ainsi que les modules. Sous CentOS 8 il s'agit d'un lien symbolique qui pointe vers /usr/lib64.
  • /media : contient des répertoires pour chaque système de fichiers monté ( accessible au système linux ) tels floppy, cdrom etc.
  • /mnt : contient des répertoires pour chaque système de fichiers monté temporairement par root.
  • /opt : contient des applications optionnelles.
  • /proc : contient un système de fichiers virtuel qui extrait de la mémoire les informations en cours de traitement. Le contenu des fichiers est créé dynamiquement lors de la consultation. Seul root peut consulter la totalité des informations dans le répertoire /proc.
  • /root : le home de root, l’administrateur système.
  • /run : remplace le répertoire /var/run.
  • /sbin : contient des binaires, donc programmes, pour l’administration du système local. Sous CentOS 8 il s'agit d'un lien symbolique qui pointe vers /usr/sbin.
  • /srv : contient des données pour les services hébergés par le système tels ftp, bases de données, web etc.
  • /sys : contient un système de fichiers virtuel dont le rôle est de décrire le matériel pour udev.
  • /tmp : stocke des fichiers temporaires créés par des programmes.
  • /usr : contient des commandes des utilisateurs dans /usr/bin, les HOWTO dans /usr/share/doc, les manuels dans /usr/share/man ainsi que d'autres entrées majeures.
  • /var : contient des fichiers de taille variable.

1.1 - Types de Fichiers

Il existe trois types majeurs de fichier sous le système Linux :

  • les fichiers normaux ( ordinary files )
  • les répertoires ( directories )
  • les fichiers spéciaux ( special files ou Devices)

Le fichiers normaux sont des fichiers textes, des tableaux ou des exécutables.

La longueur du nom de fichier est limité à 255 caractères.

Il y a une distinction entres les majuscules et le minuscules.

Si le nom d'un fichier commence par un ., le fichier devient caché.

1.2 - La Commande mount

Pour que Linux soit informé de la présence d’un système de fichiers, ce système doit être monté. Pour monter un système de fichiers, on utilise la commande mount :

# mount /dev/<fichier_spécial> /mnt/<répertoire_cible>

ou /dev/<fichier_spécial> est le périphérique à monter et /mnt/<répertoire_cible> est le répertoire qui servira comme «fenêtre» pour visionner le contenu du système de fichiers. Ce répertoire doit impérativement exister avant d’essayer de monter le système de fichiers.

Dans le cas où la commande mount est utilisée sans options, le système retourne une liste de tous les systèmes de fichiers actuellement montés :

[trainee@centos8 /]$ su -
Password: fenestros
[root@centos8 ~]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=1881944k,nr_inodes=470486,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,devices)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,net_cls,net_prio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,pids)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,cpu,cpuacct)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,blkio)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,hugetlb)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,freezer)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,seclabel,rdma)
none on /sys/kernel/tracing type tracefs (rw,relatime,seclabel)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/cl_centos8-root on / type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3826)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel,pagesize=2M)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=382500k,mode=700,uid=1000,gid=1000)
tmpfs on /run/user/42 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=382500k,mode=700,uid=42,gid=42)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)

Cette information est stockée dans le fichier /etc/mtab :

[root@centos8 ~]# cat /etc/mtab
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=1881944k,nr_inodes=470486,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,seclabel,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,seclabel,nosuid,nodev,noexec,relatime 0 0
bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,seclabel,nosuid,nodev,noexec,relatime,devices 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,seclabel,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,seclabel,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,seclabel,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,seclabel,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,seclabel,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/rdma cgroup rw,seclabel,nosuid,nodev,noexec,relatime,rdma 0 0
none /sys/kernel/tracing tracefs rw,seclabel,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/mapper/cl_centos8-root / xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=3826 0 0
mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,seclabel,relatime 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime,pagesize=2M 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
/dev/sda1 /boot ext4 rw,seclabel,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
tmpfs /run/user/1000 tmpfs rw,seclabel,nosuid,nodev,relatime,size=382500k,mode=700,uid=1000,gid=1000 0 0
tmpfs /run/user/42 tmpfs rw,seclabel,nosuid,nodev,relatime,size=382500k,mode=700,uid=42,gid=42 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0

ainsi que dans le fichier /proc/mounts :

[root@centos8 ~]# cat /proc/mounts 
sysfs /sys sysfs rw,seclabel,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
devtmpfs /dev devtmpfs rw,seclabel,nosuid,size=1882840k,nr_inodes=470710,mode=755 0 0
securityfs /sys/kernel/security securityfs rw,nosuid,nodev,noexec,relatime 0 0
tmpfs /dev/shm tmpfs rw,seclabel,nosuid,nodev 0 0
devpts /dev/pts devpts rw,seclabel,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
tmpfs /run tmpfs rw,seclabel,nosuid,nodev,mode=755 0 0
tmpfs /sys/fs/cgroup tmpfs ro,seclabel,nosuid,nodev,noexec,mode=755 0 0
cgroup /sys/fs/cgroup/systemd cgroup rw,seclabel,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
pstore /sys/fs/pstore pstore rw,seclabel,nosuid,nodev,noexec,relatime 0 0
bpf /sys/fs/bpf bpf rw,nosuid,nodev,noexec,relatime,mode=700 0 0
cgroup /sys/fs/cgroup/net_cls,net_prio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,net_cls,net_prio 0 0
cgroup /sys/fs/cgroup/rdma cgroup rw,seclabel,nosuid,nodev,noexec,relatime,rdma 0 0
cgroup /sys/fs/cgroup/memory cgroup rw,seclabel,nosuid,nodev,noexec,relatime,memory 0 0
cgroup /sys/fs/cgroup/hugetlb cgroup rw,seclabel,nosuid,nodev,noexec,relatime,hugetlb 0 0
cgroup /sys/fs/cgroup/freezer cgroup rw,seclabel,nosuid,nodev,noexec,relatime,freezer 0 0
cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpu,cpuacct 0 0
cgroup /sys/fs/cgroup/pids cgroup rw,seclabel,nosuid,nodev,noexec,relatime,pids 0 0
cgroup /sys/fs/cgroup/blkio cgroup rw,seclabel,nosuid,nodev,noexec,relatime,blkio 0 0
cgroup /sys/fs/cgroup/cpuset cgroup rw,seclabel,nosuid,nodev,noexec,relatime,cpuset 0 0
cgroup /sys/fs/cgroup/perf_event cgroup rw,seclabel,nosuid,nodev,noexec,relatime,perf_event 0 0
cgroup /sys/fs/cgroup/devices cgroup rw,seclabel,nosuid,nodev,noexec,relatime,devices 0 0
none /sys/kernel/tracing tracefs rw,seclabel,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/mapper/cl_centos8-root / xfs rw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota 0 0
selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=39,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=23841 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime,pagesize=2M 0 0
debugfs /sys/kernel/debug debugfs rw,seclabel,relatime 0 0
mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
fusectl /sys/fs/fuse/connections fusectl rw,relatime 0 0
/dev/sda1 /boot ext4 rw,seclabel,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
tmpfs /run/user/1000 tmpfs rw,seclabel,nosuid,nodev,relatime,size=382484k,mode=700,uid=1000,gid=1000 0 0
tmpfs /run/user/42 tmpfs rw,seclabel,nosuid,nodev,relatime,size=382484k,mode=700,uid=42,gid=42 0 0
gvfsd-fuse /run/user/1000/gvfs fuse.gvfsd-fuse rw,nosuid,nodev,relatime,user_id=1000,group_id=1000 0 0

Important : Notez que le système de fichiers de /dev/sda1 est ext4 tandis que que le système de fichiers de /dev/mapper/cl_centos8-root est xfs. La comparaison des systèmes de fichiers Linux est abordée dans le module LCF504 - Gestion des Disques, des Systèmes de Fichiers et du Swap.

1.3 - La Commande umount

Pour démonter un système de fichiers, on utilise la commande umount :

# umount /mnt/<répertoire_cible>

ou

# umount /dev/cdrom

1.4 - Le Fichier /etc/fstab

Dans le cas où la commande mount est utilisée avec l’option –a, tous les systèmes de fichiers mentionnés dans un fichier spécial dénommé /etc/fstab seront montés en même temps :

[root@centos8 ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Wed Jun 16 06:21:32 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl_centos8-root /                       xfs     defaults        0 0
UUID=1c04981e-5317-4b73-9695-3ce25246835d /boot                   ext4    defaults        1 2
/dev/mapper/cl_centos8-swap swap                    swap    defaults        0 0

Chaque ligne dans ce fichier contient 6 champs :

Champ 1 Champ 2 Champ 3 Champ 4 Champ 5 Champ 6
Fichier de bloc spécial ou UUID ou système de fichiers virtuel ou une étiquette Point de montage Type de système de fichiers Options séparées par des virgules Utilisé par dump ( 1 = à dumper, 0 ou vide = à ignorer ) L'ordre de vérification par fsck des systèmes de fichiers au moment du démarrage

L'UUID ( Universally Unique Identifier ) est une chaîne d'une longueur de 128 bits. Les UUID sont créés automatiquement et d'une manière aléatoire lors de la création du filesystem sur la partition. Ils peuvent être modifiés par l'administrateur.

Options de Montage

Les options de montage les plus importants sont :

Option Systèmes de Fichier Description Valeur par Défaut
defaults Tous Egal à rw, suid, dev, exec, auto, nouser, async S/O
auto/noauto Tous Montage automatique/pas de montage automatique lors de l'utilisation de la commande mount -a auto
rw/ro Tous Montage en lecture-écriture/lecture seule rw
suid/nosuid Tous Les bits SUID et SGID sont/ne sont pas pris en compte suid
dev/nodev Tous Interprète/n'interprète pas les fichiers spéciaux de périphériques dev
exec/noexec Tous Autorise:n'autorise pas l'exécution des programmes exec
sync/async Tous Montage synchrone/asynchrone async
user/nouser Tous Autorise/n'autorise pas un utilisateur à monter/démonter le système de fichier. Le point de montage est celui spécifié dans le fichier /etc/fstab. Seul l'utilisateur qui a monté le système de fichiers peut le démonter S/O
users Tous Autorise tous les utilisateurs à monter/démonter le système de fichier S/O
owner Tous Autorise le propriétaire du périphérique de le monter S/O
atime/noatime Norme POSIX Inscrit/n'inscrit pas la date d'accès atime
uid=valeur Formats non-Linux Spécifie le n° du propriétaire des fichiers pour les systèmes de fichiers non-Linux root
gid=valeur Formats non-Linux Spécifie le n° du groupe propriétaire S/O
umask=valeur Formats non-Linux Spécifie les permissions (droits d'accès/lecture/écriture) S/O
dmask=valeur Formats non-Linux Spécifie les droits d'usage des dossiers (Obsolète, préférer dir_mode) umask actuel
dir_mode=valeur Formats non-Linux Spécifie les droits d'usage des dossiers umask actuel
fmask=valeur Formats non-Linux Spécifie les droits d'usage des fichiers (Obsolète, préférer file_mode) umask actuel
file_mode=valeur Formats non-Linux Spécifie les droits d'usage des fichiers umask actuel

Périphériques de stockage

Les unités de stockage sous Linux sont référencées par un des fichiers se trouvant dans le répertoire /dev :

  • hd[a-d]
    • Les disques IDE et les lecteurs ATAPI
  • sd[a-z]
    • Les disques SCSI et SATA
  • mmcblk[0-7]
    • Les cartes SD/MMC
  • scd[0-7]
    • Les CDRoms SCSI
  • xd[a-d]
    • Les premiers disques sur IBM XT
  • fd[0-7]
    • Les lecteurs de disquettes
  • st[0-7]
    • Les lecteurs de bandes SCSI/SATA qui supportent le rembobinage
  • nst[0-7]
    • Les lecteurs de bandes SCSI/SATA qui ne supportent pas le rembobinage
  • ht[0-7]
    • Les lecteurs de bandes PATA qui supportent le rembobinage
  • nht[0-7]
    • Les lecteurs de bandes PATA qui ne supportent pas le rembobinage
  • rmt8, rmt16, tape-d, tape-reset
    • Les lecteurs QIC-80
  • ram[0-15]
    • Les disques virtuels. Ils sont supprimés à l'extinction de la machine. Un de ces disques est utilisé par le système pour monter l'image d'un disque racine défini par le fichier initrd au démarrage de la machine
  • Périphériques loop
    • Il existe 16 unités loop qui sont utilisés pour accèder en mode bloc à un système de fichiers contenu dans un fichier, par exemple, une image iso
  • md[x]
    • Un volume RAID logiciel
  • vg[x]
    • Un groupe de volumes
  • lv[x]
    • Un volume logique

Partitions

Un PC comportent en règle générale 2 contrôleurs de disque, chacun capable de gérer 2 disques, un maître et un esclave. Les disques attachés à ces contrôleurs comportent des noms différents pour pouvoir les distinguer :

  • Contrôleur 0
    • Maître
      • hda - disque IDE
      • sda - disque SATA ou SCSI
    • Esclave
      • hdb - disque IDE
      • sdb - disque SATA ou SCSI
  • Contrôleur 1
    • Maître
      • hdc - disque IDE
      • sdc - disque SATA ou SCSI
    • Esclave
      • hdd - disque IDE
      • sdd - disque SATA ou SCSI

Un disque peut comporter trois types de partitions :

  • Partitions primaires,
    • Maximum de 4. En effet, la Table des Partitions est grande de 64 octets. Il faut 16 octets pour codés une partition.
  • Partitions Etendues,
    • Généralement une seule partition étendue par disque. Elle contient des Lecteurs Logiques aussi appelés des partitions,
  • Lecteurs Logiqiques.

Les 4 partitions primaires sont numérotées de 1 à 4. Par exemple :

  • hda1, hda2, hda3 et hda4 pour le premier disque IDE sur le premier contrôleur de disque,
  • sda1, sda2, sda3 et sda4 pour le premier disque SCSI ou SATA sur le premier contrôleur de disque.

Une partition étendue prend la place d'une partition primaire et les lecteurs logiques qui s'y trouvent commencent à partir de hda5 ou de sda5.

Pour clarifier ceci, considérons un disque SATA contenant deux partitions primaires, une seule partition étendue et 3 lecteurs logiques. Dans ce cas, les deux premières partitions sont sda1 et sda2, la partition étendue prend la place de la troisième partition primaire, la sda3 et s'appelle ainsi tandis que la quatrième partition primaire est inexistante.

Les lecteurs logiques commençant à sda5, nous obtenons la liste de partitions suivante : sda1, sda2, sda5, sda6, sda7. Notez que la sda3 ne peut pas être utilisée en tant que partition car elle est cachée par les lecteurs sda5, sda6 et sda7.

Le nombre de partitions sur un disque est limité :

  • IDE,
    • Jusqu'à 63,
  • SCSI,
    • Jusqu'à 15,
  • Disques utilisant l'API libata,
    • Jusqu'à 15.

Important : Ces limites peuvent être dépassées en utilisant la gestion LVM (Logical Volume Management).

Partitionnement

LAB #2 - Partitionnement de votre Disque avec fdisk

Pour procéder au partitionnement de votre disque ou de vos disques, RHEL/CentOS 8 possède l'outil dénommé fdisk.

Lancez fdisk en fournissant en argument le fichier de référence de votre premier disque dur, par exemple :

[root@centos8 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0xb0dacb39.

Command (m for help): 

Tapez ensuite la lettre m puis ↵ Entrée pour obtenir le menu :

Command (m for help): m

Help:

  DOS (MBR)
   a   toggle a bootable flag
   b   edit nested BSD disklabel
   c   toggle the dos compatibility flag

  Generic
   d   delete a partition
   F   list free unpartitioned space
   l   list known partition types
   n   add a new partition
   p   print the partition table
   t   change a partition type
   v   verify the partition table
   i   print information about a partition

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help):

Pour créer une nouvelle partition, vous devez utiliser la commande n.

Créez donc les partitions suivantes sur votre disque :

Partition Type Taille de la Partition
/dev/sdb1 Primaire 100 Mo
/dev/sdb2 Primaire 100 Mo
/dev/sdb3 Primaire 100 Mo
/dev/sdb4 Extended Du premier secteur disponible au dernier secteur du disque
/dev/sdb5 Logique 500 Mo
/dev/sdb6 Logique 200 Mo
/dev/sdb7 Logique 300 Mo
/dev/sda8 Logique 500 Mo
/dev/sdb9 Logique 400 Mo
/dev/sdb10 Logique 500 Mo
/dev/sdb11 Logique 500 Mo
/dev/sdb12 Logique 200 Mo

Créez d'abord les partitions primaires :

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (1-4, default 1): 
First sector (2048-8388607, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-8388607, default 8388607): +100M

Created a new partition 1 of type 'Linux' and of size 100 MiB.

Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (2-4, default 2): 
First sector (206848-8388607, default 206848): 
Last sector, +sectors or +size{K,M,G,T,P} (206848-8388607, default 8388607): +100M            

Created a new partition 2 of type 'Linux' and of size 100 MiB.

Command (m for help): n
Partition type
   p   primary (2 primary, 0 extended, 2 free)
   e   extended (container for logical partitions)
Select (default p): 

Using default response p.
Partition number (3,4, default 3): 
First sector (411648-8388607, default 411648): 
Last sector, +sectors or +size{K,M,G,T,P} (411648-8388607, default 8388607): +100M

Created a new partition 3 of type 'Linux' and of size 100 MiB.

Command (m for help): 

Créez ensuite la partition étendue :

Command (m for help): n
Partition type
   p   primary (3 primary, 0 extended, 1 free)
   e   extended (container for logical partitions)
Select (default e): e

Selected partition 4
First sector (616448-8388607, default 616448): 
Last sector, +sectors or +size{K,M,G,T,P} (616448-8388607, default 8388607): 

Created a new partition 4 of type 'Extended' and of size 3.7 GiB.

Command (m for help):  

Créez maintenant les autres partitions l'une après l'autre :

Command (m for help): n
All primary partitions are in use.
Adding logical partition 5
First sector (618496-8388607, default 618496): 
Last sector, +sectors or +size{K,M,G,T,P} (618496-8388607, default 8388607): +500M

Created a new partition 5 of type 'Linux' and of size 500 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 6
First sector (1644544-8388607, default 1644544): 
Last sector, +sectors or +size{K,M,G,T,P} (1644544-8388607, default 8388607): +200M

Created a new partition 6 of type 'Linux' and of size 200 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 7
First sector (2056192-8388607, default 2056192): 
Last sector, +sectors or +size{K,M,G,T,P} (2056192-8388607, default 8388607): +300M

Created a new partition 7 of type 'Linux' and of size 300 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 8
First sector (2672640-8388607, default 2672640): 
Last sector, +sectors or +size{K,M,G,T,P} (2672640-8388607, default 8388607): +500M

Created a new partition 8 of type 'Linux' and of size 500 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 9
First sector (3698688-8388607, default 3698688): 
Last sector, +sectors or +size{K,M,G,T,P} (3698688-8388607, default 8388607): +400M

Created a new partition 9 of type 'Linux' and of size 400 MiB.

 Command (m for help): n
All primary partitions are in use.
Adding logical partition 10
First sector (4519936-8388607, default 4519936): 
Last sector, +sectors or +size{K,M,G,T,P} (4519936-8388607, default 8388607): +500M

Created a new partition 10 of type 'Linux' and of size 500 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 11
First sector (5545984-8388607, default 5545984): 
Last sector, +sectors or +size{K,M,G,T,P} (5545984-8388607, default 8388607): +500M

Created a new partition 11 of type 'Linux' and of size 500 MiB.

Command (m for help): n
All primary partitions are in use.
Adding logical partition 12
First sector (6572032-8388607, default 6572032): 
Last sector, +sectors or +size{K,M,G,T,P} (6572032-8388607, default 8388607): +200M

Created a new partition 12 of type 'Linux' and of size 200 MiB.

Command (m for help): 

Tapez ensuite la lettre p puis ↵ Entrée pour visualiser la nouvelle table des partitions. Vous obtiendrez un résultat similaire à celui-ci :

Command (m for help): p
Disk /dev/sdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0dacb39

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048  206847  204800  100M 83 Linux
/dev/sdb2        206848  411647  204800  100M 83 Linux
/dev/sdb3        411648  616447  204800  100M 83 Linux
/dev/sdb4        616448 8388607 7772160  3.7G  5 Extended
/dev/sdb5        618496 1642495 1024000  500M 83 Linux
/dev/sdb6       1644544 2054143  409600  200M 83 Linux
/dev/sdb7       2056192 2670591  614400  300M 83 Linux
/dev/sdb8       2672640 3696639 1024000  500M 83 Linux
/dev/sdb9       3698688 4517887  819200  400M 83 Linux
/dev/sdb10      4519936 5543935 1024000  500M 83 Linux
/dev/sdb11      5545984 6569983 1024000  500M 83 Linux
/dev/sdb12      6572032 6981631  409600  200M 83 Linux

Command (m for help): 

Ecrivez la table des partitions sur disque et exécutez la commande partprobe :

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

[root@centos8 ~]# partprobe
[root@centos8 ~]# 

Lancez fdisk puis tapez ensuite la lettre p puis ↵ Entrée pour visualiser la table des partitions actuelle :

[root@centos8 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0dacb39

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048  206847  204800  100M 83 Linux
/dev/sdb2        206848  411647  204800  100M 83 Linux
/dev/sdb3        411648  616447  204800  100M 83 Linux
/dev/sdb4        616448 8388607 7772160  3.7G  5 Extended
/dev/sdb5        618496 1642495 1024000  500M 83 Linux
/dev/sdb6       1644544 2054143  409600  200M 83 Linux
/dev/sdb7       2056192 2670591  614400  300M 83 Linux
/dev/sdb8       2672640 3696639 1024000  500M 83 Linux
/dev/sdb9       3698688 4517887  819200  400M 83 Linux
/dev/sdb10      4519936 5543935 1024000  500M 83 Linux
/dev/sdb11      5545984 6569983 1024000  500M 83 Linux
/dev/sdb12      6572032 6981631  409600  200M 83 Linux

Command (m for help): 

Pour supprimer une partition, utilisez la commande d puis ↵ Entrée. fdisk vous demandera le numéro de la partition à supprimer, par exemple :

Command (m for help): d
Partition number (1-12, default 12): 12

Partition 12 has been deleted.

Command (m for help): p
Disk /dev/sdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0dacb39

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048  206847  204800  100M 83 Linux
/dev/sdb2        206848  411647  204800  100M 83 Linux
/dev/sdb3        411648  616447  204800  100M 83 Linux
/dev/sdb4        616448 8388607 7772160  3.7G  5 Extended
/dev/sdb5        618496 1642495 1024000  500M 83 Linux
/dev/sdb6       1644544 2054143  409600  200M 83 Linux
/dev/sdb7       2056192 2670591  614400  300M 83 Linux
/dev/sdb8       2672640 3696639 1024000  500M 83 Linux
/dev/sdb9       3698688 4517887  819200  400M 83 Linux
/dev/sdb10      4519936 5543935 1024000  500M 83 Linux
/dev/sdb11      5545984 6569983 1024000  500M 83 Linux

Command (m for help): 

A ce stade, la partition n'a pas été réellement supprimée. En effet, vous avez la possibilité de sortir de fdisk en utilisant la commande q.

Tapez donc q pour sortir de fdisk puis relancez fdisk. Vous obtiendrez un résultat similaire à celui-ci :

Command (m for help): q

[root@centos8 ~]# fdisk /dev/sdb

Welcome to fdisk (util-linux 2.32.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/sdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0dacb39

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048  206847  204800  100M 83 Linux
/dev/sdb2        206848  411647  204800  100M 83 Linux
/dev/sdb3        411648  616447  204800  100M 83 Linux
/dev/sdb4        616448 8388607 7772160  3.7G  5 Extended
/dev/sdb5        618496 1642495 1024000  500M 83 Linux
/dev/sdb6       1644544 2054143  409600  200M 83 Linux
/dev/sdb7       2056192 2670591  614400  300M 83 Linux
/dev/sdb8       2672640 3696639 1024000  500M 83 Linux
/dev/sdb9       3698688 4517887  819200  400M 83 Linux
/dev/sdb10      4519936 5543935 1024000  500M 83 Linux
/dev/sdb11      5545984 6569983 1024000  500M 83 Linux
/dev/sdb12      6572032 6981631  409600  200M 83 Linux

Command (m for help):  

LAB #3 - Modifier les Drapeaux des Partitions avec fdisk

Afin de mettre en place un RAID logiciel ou un volume logique, il est nécessaire de modifier les types de systèmes de fichiers sur les partitions créées.

Modifiez donc les nouvelles partitions à l'aide de la commande t de fdisk selon le tableau ci-dessous :

Taille de la Partition Type de Système de Fichiers
500 Mo RAID (fd)
200 Mo Linux LVM (8e)
300 Mo Linux LVM (8e)
500 Mo RAID (fd)
400 Mo Linux LVM (8e)
500 Mo RAID (fd)
500 Mo RAID (fd)
200 Mo Inchangé

Vous obtiendrez un résultat similaire à celui-ci :

Command (m for help): t
Partition number (1-12, default 12): 5
Hex code (type L to list all codes): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help): t
Partition number (1-12, default 12): 6
Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): t
Partition number (1-12, default 12): 7
Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): t
Partition number (1-12, default 12): 8
Hex code (type L to list all codes): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help): t
Partition number (1-12, default 12): 9
Hex code (type L to list all codes): 8e

Changed type of partition 'Linux' to 'Linux LVM'.

Command (m for help): t
Partition number (1-12, default 12): 10
Hex code (type L to list all codes): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

Command (m for help): t
Partition number (1-12, default 12): 11
Hex code (type L to list all codes): fd

Changed type of partition 'Linux' to 'Linux raid autodetect'.

A l'issu des modifications, vous obtiendrez un résultat similaire à celui-ci :

Command (m for help): p
Disk /dev/sdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0dacb39

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048  206847  204800  100M 83 Linux
/dev/sdb2        206848  411647  204800  100M 83 Linux
/dev/sdb3        411648  616447  204800  100M 83 Linux
/dev/sdb4        616448 8388607 7772160  3.7G  5 Extended
/dev/sdb5        618496 1642495 1024000  500M fd Linux raid autodetect
/dev/sdb6       1644544 2054143  409600  200M 8e Linux LVM
/dev/sdb7       2056192 2670591  614400  300M 8e Linux LVM
/dev/sdb8       2672640 3696639 1024000  500M fd Linux raid autodetect
/dev/sdb9       3698688 4517887  819200  400M 8e Linux LVM
/dev/sdb10      4519936 5543935 1024000  500M fd Linux raid autodetect
/dev/sdb11      5545984 6569983 1024000  500M fd Linux raid autodetect
/dev/sdb12      6572032 6981631  409600  200M 83 Linux

Command (m for help): 

Pour écrire la nouvelle table des partitions sur disque, vous devez utilisez la commande w puis la commande partprobe :

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

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@centos8 ~]# partprobe

Options de la Commande fdisk

Les options de cette commande sont :

[root@centos8 ~]# fdisk --help

Usage:
 fdisk [options] <disk>      change partition table
 fdisk [options] -l [<disk>] list partition table(s)

Display or manipulate a disk partition table.

Options:
 -b, --sector-size <size>      physical and logical sector size
 -B, --protect-boot            don't erase bootbits when creating a new label
 -c, --compatibility[=<mode>]  mode is 'dos' or 'nondos' (default)
 -L, --color[=<when>]          colorize output (auto, always or never)
                                 colors are enabled by default
 -l, --list                    display partitions and exit
 -o, --output <list>           output columns
 -t, --type <type>             recognize specified partition table type only
 -u, --units[=<unit>]          display units: 'cylinders' or 'sectors' (default)
 -s, --getsz                   display device size in 512-byte sectors [DEPRECATED]
     --bytes                   print SIZE in bytes rather than in human readable format
 -w, --wipe <mode>             wipe signatures (auto, always or never)
 -W, --wipe-partitions <mode>  wipe signatures from new partitions (auto, always or never)

 -C, --cylinders <number>      specify the number of cylinders
 -H, --heads <number>          specify the number of heads
 -S, --sectors <number>        specify the number of sectors per track

 -h, --help                    display this help
 -V, --version                 display version

Available output columns:
 gpt: Device Start End Sectors Size Type Type-UUID Attrs Name UUID
 dos: Device Start End Sectors Cylinders Size Type Id Attrs Boot End-C/H/S Start-C/H/S
 bsd: Slice Start End Sectors Cylinders Size Type Bsize Cpg Fsize
 sgi: Device Start End Sectors Cylinders Size Type Id Attrs
 sun: Device Start End Sectors Cylinders Size Type Id Flags

For more details see fdisk(8).

Systèmes de Fichiers Journalisés

Présentation

Un journal est la partie d'un système de fichiers journalisé qui trace les opérations d'écriture tant qu'elles ne sont pas terminées et cela en vue de garantir l'intégrité des données en cas d'arrêt brutal.

L'intérêt est de pouvoir plus facilement et plus rapidement récupérer les données en cas d'arrêt brutal du système d'exploitation (coupure d'alimentation, plantage du système, etc.), alors que les partitions n'ont pas été correctement synchronisées et démontées.

Sans un tel fichier journal, un outil de récupération de données après un arrêt brutal doit parcourir l'intégralité du système de fichier pour vérifier sa cohérence. Lorsque la taille du système de fichiers est importante, cela peut durer très longtemps pour un résultat moins efficace car entraînant des pertes de données.

Linux peut utiliser un des systèmes de fichiers journalisés suivants :

Système de fichier Taille maximum - fichier Taille maximum - système de fichier
Ext3 2 To 32 To
Ext4 16 To 1 EiB
XFS 8 EiB 16 EiB
ReiserFS v3 8 To 16 To
JFS 4 Po 32 Po
Btrfs 16 EiB 16 EiB

A faire : Pour comparer ces six systèmes de fichier, veuillez consulter cette page

Ext3

Ext3 est une évolution de Ext2 et a pour principale différence d'utiliser un fichier journal. Il peut :

  • être utilisé à partir d'une partition Ext2, sans avoir à sauvegarder et à restaurer des données,
  • utiliser tous les utilitaires de maintenance pour les systèmes de fichiers ext2, comme fsck,
  • utiliser le logiciel dump, ce qui n'est pas le cas avec ReiserFS.

Pour plus d'information concernant Ext3, consultez cette page

Gestion d'Ext3

Notez maintenant le numéro de la dernière partition que vous avez précédemment créée :

[root@centos8 ~]# fdisk -l
Disk /dev/sdb: 4 GiB, 4294967296 bytes, 8388608 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb0dacb39

Device     Boot   Start     End Sectors  Size Id Type
/dev/sdb1          2048  206847  204800  100M 83 Linux
/dev/sdb2        206848  411647  204800  100M 83 Linux
/dev/sdb3        411648  616447  204800  100M 83 Linux
/dev/sdb4        616448 8388607 7772160  3.7G  5 Extended
/dev/sdb5        618496 1642495 1024000  500M fd Linux raid autodetect
/dev/sdb6       1644544 2054143  409600  200M 8e Linux LVM
/dev/sdb7       2056192 2670591  614400  300M 8e Linux LVM
/dev/sdb8       2672640 3696639 1024000  500M fd Linux raid autodetect
/dev/sdb9       3698688 4517887  819200  400M 8e Linux LVM
/dev/sdb10      4519936 5543935 1024000  500M fd Linux raid autodetect
/dev/sdb11      5545984 6569983 1024000  500M fd Linux raid autodetect
/dev/sdb12      6572032 6981631  409600  200M 83 Linux


Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x70b17285

Device     Boot   Start      End  Sectors  Size Id Type
/dev/sda1  *       2048   616447   614400  300M 83 Linux
/dev/sda2        616448  4712447  4096000    2G 82 Linux swap / Solaris
/dev/sda3       4712448 35432447 30720000 14.7G 83 Linux




Disk /dev/mapper/vg0-lv1: 104 MiB, 109051904 bytes, 212992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/mapper/vg0-lv2: 112 MiB, 117440512 bytes, 229376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 131072 bytes

Créez un filesystem Ext3 sur /dev/sdb12 en utilisant la commande mke2fs -j :

[root@centos8 ~]# mke2fs -j /dev/sdb12
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 204800 1k blocks and 51200 inodes
Filesystem UUID: a2515f45-a32a-4e87-b7e6-170448f3f803
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

Les options de la commande mke2fs sont :

[root@centos8 ~]# mke2fs --help
mke2fs: invalid option -- '-'
Usage: mke2fs [-c|-l filename] [-b block-size] [-C cluster-size]
	[-i bytes-per-inode] [-I inode-size] [-J journal-options]
	[-G flex-group-size] [-N number-of-inodes] [-d root-directory]
	[-m reserved-blocks-percentage] [-o creator-os]
	[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
	[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
	[-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z undo_file]
	[-jnqvDFSV] device [blocks-count]

Important : Lors de la mise en place d'un filesystem ext2/ext3/ext4, le système réserve 5% de l'espace disque pour root. Sur des disques de grande taille il est parfois préférable de récupérer une partie de cet espace en utilisant la commande tune2fs -m n /dev/sdXY ou n est le nouveau pourcentage à réserver.

LAB #4 - Convertir un Système de Fichiers Ext3 en Ext2

Pour vérifier si un système de fichiers Ext2 est journalisé, utilisez la commande dumpe2fs :

[root@centos8 ~]# dumpe2fs -h /dev/sdb12
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          a2515f45-a32a-4e87-b7e6-170448f3f803
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              51200
Block count:              204800
Reserved block count:     10240
Free blocks:              192674
Free inodes:              51189
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2048
Inode blocks per group:   256
Filesystem created:       Wed Jun  2 07:55:24 2021
Last mount time:          n/a
Last write time:          Wed Jun  2 07:55:24 2021
Mount count:              0
Maximum mount count:      -1
Last checked:             Wed Jun  2 07:55:24 2021
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          128
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      faee0b81-0538-4c06-8d86-468bc0c760ac
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             4096k
Journal length:           4096
Journal sequence:         0x00000001
Journal start:            0

Important : Le drapeau Filesystem features: has_journal … démontre que Ext3 est utilisé sur cette partition.

Les options de cette commande sont :

[root@centos8 ~]# dumpe2fs --help
dumpe2fs 1.45.6 (20-Mar-2020)
dumpe2fs: invalid option -- '-'
Usage: dumpe2fs [-bfghimxV] [-o superblock=<num>] [-o blocksize=<num>] device

Pour supprimer le journal du système de fichier Ext3 sur cette partition, il convient d'utiliser la commande tune2fs

[root@centos8 ~]# tune2fs -O ^has_journal /dev/sdb12
tune2fs 1.45.6 (20-Mar-2020)

Les options de cette commande sont :

[root@centos8 ~]# tune2fs --help
tune2fs 1.45.6 (20-Mar-2020)
tune2fs: invalid option -- '-'
Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-f] [-g group]
	[-i interval[d|m|w]] [-j] [-J journal_options] [-l]
	[-m reserved_blocks_percent] [-o [^]mount_options[,...]]
	[-r reserved_blocks_count] [-u user] [-C mount_count]
	[-L volume_label] [-M last_mounted_dir]
	[-O [^]feature[,...]] [-Q quota_options]
	[-E extended-option[,...]] [-T last_check_time] [-U UUID]
	[-I new_inode_size] [-z undo_file] device

Constatez le résultat de cette commande :

[root@centos8 ~]# dumpe2fs -h /dev/sdb12
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          a2515f45-a32a-4e87-b7e6-170448f3f803
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              51200
Block count:              204800
Reserved block count:     10240
Free blocks:              196787
Free inodes:              51189
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2048
Inode blocks per group:   256
Filesystem created:       Wed Jun  2 07:55:24 2021
Last mount time:          n/a
Last write time:          Wed Jun  2 07:59:01 2021
Mount count:              0
Maximum mount count:      -1
Last checked:             Wed Jun  2 07:55:24 2021
Check interval:           0 (<none>)
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          128
Default directory hash:   half_md4
Directory Hash Seed:      faee0b81-0538-4c06-8d86-468bc0c760ac
Journal backup:           inode blocks

Important : Notez que le drapeau Filesystem features: has_journal … a été supprimé.

Supprimez maintenant l'inode du journal :

[root@centos8 ~]# fsck /dev/sdb12
fsck from util-linux 2.32.1
e2fsck 1.45.6 (20-Mar-2020)
/dev/sdb12: clean, 11/51200 files, 8013/204800 blocks

Créez maintenant un point de montage pour /dev/sdb12 :

[root@centos8 ~]# mkdir /mnt/sdb12

Essayez de monter /dev/sdb12 en tant que système de fichiers Ext3. Vous obtiendrez un résultat similaire à celui-ci :

[root@centos8 ~]# mount -t ext3 /dev/sdb12 /mnt/sdb12
mount: /mnt/sdb12: wrong fs type, bad option, bad superblock on /dev/sdb12, missing codepage or helper program, or other error.

Important : Notez l'erreur due au mauvais système de fichiers qui suit l'option -t.

Montez maintenant le système de fichiers en tant que Ext2 :

[root@centos8 ~]# mount -t ext2 /dev/sdb12 /mnt/sdb12

LAB #5 - Convertir un Système de Fichiers Ext2 en Ext3

Pour replacer le journal sur /dev/sdb12, il convient d'utiliser la commande tune2fs :

[root@centos8 ~]# umount /mnt/sdb12

[root@centos8 ~]# tune2fs -j /dev/sdb12
tune2fs 1.45.6 (20-Mar-2020)
Creating journal inode: done

Important : Notez que vous avez du démonter la partition avant d'exécuter la commande tune2fs.

LAB #6 - Placer le Journal sur un autre Partition

Le journal d'un système de fichiers peut être placé sur un autre périphérique bloc.

Créez un système de fichiers sur /dev/sdb11 :

[root@centos8 ~]# mke2fs -O journal_dev /dev/sdb11
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 512000 1k blocks and 0 inodes
Filesystem UUID: 23327281-e88a-4da0-bafa-50ee10c52937
Superblock backups stored on blocks: 

Zeroing journal device:   

Important : Notez l'utilisation de l'option -O.

Créez maintenant un système de fichiers Ext3 sur /dev/sdb12 en plaçant le journal sur /dev/sdb11 :

[root@centos8 ~]# mke2fs -j -J device=/dev/sdb11 /dev/sdb12
mke2fs 1.45.6 (20-Mar-2020)
Using journal device's blocksize: 1024
/dev/sdb12 contains a ext3 file system
	last mounted on Wed Jun  2 08:03:11 2021
Proceed anyway? (y,N) y
Creating filesystem with 204800 1k blocks and 51200 inodes
Filesystem UUID: 0e783411-6407-4cba-8db5-0e2729000c9e
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Adding journal to device /dev/sdb11: done
Writing superblocks and filesystem accounting information: done 

Important : Notez que le journal a été placé sur /dev/sdb11 graĉe à l'utilisation de l'option -J.

LAB #7 - Modifier la Fréquence de Vérification du Système de Fichiers Ext3

Pour modifier la fréquence de vérification du système de fichiers sur /dev/sdb12, il convient d'utiliser soit l'option -c, soit l'option -i :

[root@centos8 ~]# tune2fs -i 100d /dev/sdb12
tune2fs 1.45.6 (20-Mar-2020)
Setting interval between checks to 8640000 seconds

Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez les commandes dumpe2fs et grep :

[root@centos8 ~]# dumpe2fs /dev/sdb12 | grep UUID
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem UUID:          0e783411-6407-4cba-8db5-0e2729000c9e
Journal UUID:             23327281-e88a-4da0-bafa-50ee10c52937

Ext4

Le système de fichiers Ext4 a été introduit dans le noyau 2.6.19 en mode expérimental et est devenu stable dans le noyau 2.6.28.

Ext4 n'est pas une évolution de Ext3. Cependant il a une compatibilité ascendante avec Ext3.

Les fonctionnalités majeures d'Ext4 sont :

  • la gestion des volumes d'une taille allant jusqu'à 1 024 pébioctets,
  • l'allocation par extents qui permettent la pré-allocation d'une zone contiguë pour un fichier afin de minimiser la fragmentation.

L'option extents est activée par défaut depuis le noyau 2.6.23.

La compatibilité ascendante avec ext3 comprend :

  • la possibilité de monter une partition Ext3 en tant que partition Ext4,
  • la possibilité de monter une partition Ext4 en tant que partition Ext3 mais uniquement dans le cas où la partition Ext4 n'ait jamais utilisé l'allocation par extents pour enregistrer des fichiers, mais l'allocation binaire comprise par ext3.

Pour plus d'informations concernant Ext4, consultez cette page.

LAB #8 - Créer un Système de Fichiers Ext4

Créez un système de fichiers Ext4 sur /dev/sdb11 :

[root@centos8 ~]# mkfs.ext4 /dev/sdb11
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb11 contains a jbd file system
Proceed anyway? (y,N) y
Creating filesystem with 512000 1k blocks and 128016 inodes
Filesystem UUID: 72a6ad08-7023-4561-adcb-d434e00afed1
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done 

Les options de cette commande sont :

[root@centos8 ~]# mkfs.ext4 --help
mkfs.ext4: invalid option -- '-'
Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-C cluster-size]
	[-i bytes-per-inode] [-I inode-size] [-J journal-options]
	[-G flex-group-size] [-N number-of-inodes] [-d root-directory]
	[-m reserved-blocks-percentage] [-o creator-os]
	[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
	[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
	[-t fs-type] [-T usage-type ] [-U UUID] [-e errors_behavior][-z undo_file]
	[-jnqvDFSV] device [blocks-count]

Consultez maintenant les caractéristiques du système de fichier :

[root@centos8 ~]# dumpe2fs /dev/sdb11 | more
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          72a6ad08-7023-4561-adcb-d434e00afed1
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype e
xtent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize meta
data_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              128016
Block count:              512000
Reserved block count:     25600
Free blocks:              485316
Free inodes:              128005
First block:              1
Block size:               1024
Fragment size:            1024
Group descriptor size:    64
Reserved GDT blocks:      256
--More--

LAB #9 - Ajouter une Etiquette au Système de Fichiers Ext4

Utilisez la commande e2label pour associer une étiquette au système de fichiers :

[root@centos8 ~]# e2label /dev/sdb11 my_ext4
[root@centos8 ~]# dumpe2fs /dev/sdb11 | more
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem volume name:   my_ext4
Last mounted on:          <not available>
Filesystem UUID:          72a6ad08-7023-4561-adcb-d434e00afed1
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype e
xtent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize meta
data_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              128016
Block count:              512000
Reserved block count:     25600
Free blocks:              485316
Free inodes:              128005
First block:              1
Block size:               1024
Fragment size:            1024
Group descriptor size:    64
Reserved GDT blocks:      256
--More--

Important - Notez que l'étiquette doit être de 16 caractères maximum.

Créez un point de montage dans /mnt et essayez de monter /dev/sdb11 en tant qu'Ext3 :

[root@centos8 ~]# mkdir /mnt/sdb11

[root@centos8 ~]# mount -t ext3 /dev/sdb11 /mnt/sdb11
mount: /mnt/sdb11: wrong fs type, bad option, bad superblock on /dev/sdb11, missing codepage or helper program, or other error..

Important - Notez l'erreur qui est signalée.

Montez de nouveau la partition sans stipuler le type de système de fichiers :

[root@centos8 ~]# mount /dev/sdb11 /mnt/sdb11

[root@centos8 ~]# mount | grep sdb11
/dev/sdb11 on /mnt/sdb11 type ext4 (rw,relatime,seclabel)

Important - Constatez que la partition a été monté en tant qu'Ext4.

LAB #10 - Convertir un Système de Fichiers Ext3 en Ext4

Créez un système de fichiers ext3 sur /dev/sdb12 :

[root@centos8 ~]# mkfs.ext3 /dev/sdb12
mke2fs 1.45.6 (20-Mar-2020)
/dev/sdb12 contains a ext3 file system
	created on Wed Jun  2 08:10:40 2021
Proceed anyway? (y,N) y
Creating filesystem with 204800 1k blocks and 51200 inodes
Filesystem UUID: b73322d4-f2e4-43bc-96ae-422d4584f3de
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

Montez maintenant /dev/sdb12 sur /mnt/sdb12 :

[root@centos8 ~]# mount /dev/sdb12 /mnt/sdb12

[root@centos8 ~]# ls -l /mnt/sdb12
total 12
drwx------. 2 root root 12288 Jun  2 08:42 lost+found

Créez le fichier /mnt/sdb12/check_file :

[root@centos8 ~]# touch /mnt/sdb12/check_file

Injectez la chaine check file dans le fichier /mnt/sdb12/check_file puis démontez /dev/sdb12 :

[root@centos8 ~]# echo "check file" > /mnt/sdb12/check_file

[root@centos8 ~]# umount /dev/sdb12

Exécutez e2fsck sur /dev/sda12 :

[root@centos8 ~]# e2fsck /dev/sdb12
e2fsck 1.45.6 (20-Mar-2020)
/dev/sdb12: clean, 12/51200 files, 12128/204800 blocks

Convertissez /dev/sdb12 en Ext4 :

[root@centos8 ~]# tune2fs -O extents,uninit_bg,dir_index /dev/sdb12
tune2fs 1.45.6 (20-Mar-2020)

Optimisez le système de fichiers :

[root@centos8 ~]# e2fsck -fDC0 /dev/sdb12
e2fsck 1.45.6 (20-Mar-2020)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure                                           
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Pass 4: Checking reference counts                                              
Pass 5: Checking group summary information
                                                                                
/dev/sdb12: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb12: 12/51200 files (0.0% non-contiguous), 12128/204800 blocks

Essayez de monter /dev/sdb12 en tant qu'Ext3 :

[root@centos8 ~]# mount -t ext3 /dev/sdb12 /mnt/sdb12
mount: /mnt/sdb12: wrong fs type, bad option, bad superblock on /dev/sdb12, missing codepage or helper program, or other error.

Montez /dev/sdb12 sans spécifier le type de fichiers Ext3 et vérifiez le contenu du fichier check_file :

[root@centos8 ~]# mount /dev/sdb12 /mnt/sdb12

[root@centos8 ~]# ls -l /mnt/sdb12
total 14
-rw-r--r--. 1 root root    11 Jun  2 08:45 check_file
drwx------. 2 root root 12288 Jun  2 08:42 lost+found

[root@centos8 ~]# cat /mnt/sdb12/check_file
check file

Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez les commandes dumpe2fs et grep :

[root@centos8 ~]# dumpe2fs /dev/sdb11 | grep UUID
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem UUID:          72a6ad08-7023-4561-adcb-d434e00afed1

[root@centos8 ~]# dumpe2fs /dev/sdb12 | grep UUID
dumpe2fs 1.45.6 (20-Mar-2020)
Filesystem UUID:          b73322d4-f2e4-43bc-96ae-422d4584f3de

XFS

XFS est un système de fichiers 64-bit journalisé de haute performance crée par SGI pour son système d'exploitation IRIX. XFS est inclus par défaut avec les versions du noyau Linux 2.5.xx et 2.6.xx. XFS est le système de fichiers par défaut de RHEL/CentOS 8.

Important : Le système de fichiers XFS permet l'augmentation de sa taille à chaud. Par contre, la taille d'un système de fichiers XFS ne peut pas être réduite.

Pour plus d'informations concernant XFS, consultez cette page.

LAB #11 - Créer un Système de Fichiers XFS

Démontez /dev/sdb12 :

[root@centos8 ~]# umount /dev/sdb12

Créez un système de fichiers XFS sur la partition /dev/sdb12 :

[root@centos8 ~]# mkfs.xfs -f /dev/sdb12
meta-data=/dev/sdb12             isize=512    agcount=4, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Important - Notez l'utilisation de l'option -f afin d'écraser le système de fichiers Ext4 existant.

Les options de cette commande sont :

[root@centos8 ~]# mkfs.xfs --help
mkfs.xfs: invalid option -- '-'
unknown option -- 
Usage: mkfs.xfs
/* blocksize */		[-b size=num]
/* metadata */		[-m crc=0|1,finobt=0|1,uuid=xxx,rmapbt=0|1,reflink=0|1]
/* data subvol */	[-d agcount=n,agsize=n,file,name=xxx,size=num,
			    (sunit=value,swidth=value|su=num,sw=num|noalign),
			    sectsize=num
/* force overwrite */	[-f]
/* inode size */	[-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
			    projid32bit=0|1,sparse=0|1]
/* no discard */	[-K]
/* log subvol */	[-l agnum=n,internal,size=num,logdev=xxx,version=n
			    sunit=value|su=num,sectsize=num,lazy-count=0|1]
/* label */		[-L label (maximum 12 characters)]
/* naming */		[-n size=num,version=2|ci,ftype=0|1]
/* no-op info only */	[-N]
/* prototype file */	[-p fname]
/* quiet */		[-q]
/* realtime subvol */	[-r extsize=num,size=num,rtdev=xxx]
/* sectorsize */	[-s size=num]
/* version */		[-V]
			devicename
<devicename> is required unless -d name=xxx is given.
<num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
      xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
<value> is xxx (512 byte blocks).

Consultez maintenant les caractéristiques du système de fichier :

[root@centos8 ~]# xfs_info /dev/sdb12
meta-data=/dev/sdb12             isize=512    agcount=4, agsize=12800 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=51200, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1368, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Les options de cette commande sont :

[root@centos8 ~]# xfs_info --help
/usr/sbin/xfs_info: illegal option -- -
Usage: xfs_info [-V] [-t mtab] [mountpoint|device|file]

LAB #12 - Ajouter une Etiquette au Système de Fichiers XFS

Utilisez la commande xfs_admin pour associer une étiquette au système de fichiers :

[root@centos8 ~]# xfs_admin -L my_xfs /dev/sdb12
xfs_admin: /dev/sdb12 contains a mounted filesystem

fatal error -- couldn't initialize XFS library

[root@centos8 ~]# umount /dev/sdb12

[root@centos8 ~]# xfs_admin -L my_xfs /dev/sdb12
writing all SBs
new label = "my_xfs"

Important - Notez que la partition XFS doit être démonté pour pouvoir utiliser la commande xfs_admin.

Pour voir l'étiquette, utilisez la commande suivante :

[root@centos8 ~]# xfs_admin -l /dev/sdb12
label = "my_xfs"

Important - Notez que l'étiquette doit être de 12 caractères maximum.

Les options de cette commande sont :

[root@centos8 ~]# xfs_admin --help
/usr/sbin/xfs_admin: illegal option -- -
Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device

Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez la commande xfs-admin et l'option -u :

[root@centos8 ~]# xfs_admin -u /dev/sdb12
UUID = 15db1b62-0866-4aa4-9ac1-3ac325a4e20f

Important - La commande xfs_metadump est utilisée pour sauvegarder les méta-données du système de fichiers, tandis que la commande xfs_mdrestore est utilisée pour restaurer les les méta-données du système de fichiers.

Autres Systèmes de Fichiers

Important - Veuillez noter que le support des systèmes de fichiers ReiserFS, JFS et Btrfs est absent du noyau des distributions de Red Hat.

ReiserFS

ReiserFS permet :

  • de meilleurs temps d'accès à des sous-répertoires que Ext3, même ceux contenant des dizaines de milliers de fichiers,
  • une plus grande efficacité pour ce qui concerne le stockage des fichiers moins de quelques ko. Le gain d'espace peut aller jusqu'à 10% par rapport à Ext2/Ext3.

Pour plus d'informations concernant ReiserFS, consultez cette page.

JFS

JFS Journaled File System est un système de fichiers journalisé mis au point par IBM et disponible sous licence GPL.

Pour plus d'informations concernant JFS, consultez cette page.

Btrfs

Btrfs, (B-tree file system, prononcé ButterFS) est un système de fichiers expérimental basé sur la copie sur écriture sous licence GNU GPL, développé principalement par Oracle, Red Hat, Fujitsu, Intel, SUSE et STRATO AG, qui s'inspire grandement du système de fichiers ZFS utilisé par Solaris.

A noter sont les points suivants :

  • Btrfs utilise des extents,
  • Btrfs stocke les données des très petits fichiers directement dans l'extent du fichier répertoire, et non dans un extent séparé,
  • Btrfs gère une notion de « sous-volumes » permettant ainsi des snapshots,
  • Btrfs possède ses techniques propres de protection des données,
  • Btrfs permet de redimensionner à chaud la taille du système de fichiers,
  • Btrfs gère le RAID 0 ainsi que le RAID 1 logiciel,
  • Btrfs gère la comprssion du système de fichiers.

Comparaison des Commandes par Système de Fichiers

Description Ext3 Ext4 XFS ReiserFS JFS Btrfs
Build a Linux filesystem mkfs.ext3 (mke2fs -j) mkfs.ext4 (mke4fs) mkfs.xfs mkfs.reiserfs (mkreiserfs) mkfs.jfs (jfs_mkfs) mkfs.btrfs
Check a Linux filesystem e2fsck e2fsck xfs_check / xfs_repair reiserfsck jfs_fsck btrfsck
Adjust tunable filesystem parameters Linux filesystems tune2fs tune2fs xfs_admin reiserfstune jfs_tune btrfs-show-super, btrfs filesystem show, et btrfs filesystem df
File system resizer resize2fs resize2fs xfs_growfs resize_reiserfs S/O btrfs filesystem resize
Dump filesystem information dumpe2fs dumpe2fs xfs_info / xfs_metadump debugreiserfs jfs_tune btrfstune
File system debugger debugfs debugfs xfs_db debugreiserfs jfs_debugfs btrfs-debug-tree
Change the label on a filesystem e2label e2label xfs_admin reiserfstune jfs_tune btrfs filesystem label

Le Swap

Taille du swap

Le tableau suivant résume la taille du swap recommandée en fonction de la mémoire de la machine :

Mémoire Taille du swap
4 Go ou moins 2 Go
4 Go à 16 Go 4 Go
16 Go à 64 Go 8 Go
64 Go à 256 Go 16 Go

Partitions de swap

Une partition de swap peut être créée sur :

  • une partition du disque dur
  • un RAID logiciel
  • un Volume Logique

La Commande swapon

Pour préparer un espace de swap, il convient d'utiliser la commande mkswap. Pour activer une partition de swap, il convient d'utiliser la commande swapon. Pour consulter la liste des partitions swap, il convient d'utiliser la commande swapon avec l'option -s.

[root@centos8 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition       3358716 0       -2

Important : Vous noterez que dans l'exemple ci-dessus, le swap n'est pas utilisé. Notez aussi qu'il existe une notion de priorité pour les partions de swap.

Options de la Commande

Les options de la commande swapon sont :

[root@centos8 ~]# swapon --help

Usage:
 swapon [options] [<spec>]

Enable devices and files for paging and swapping.

Options:
 -a, --all                enable all swaps from /etc/fstab
 -d, --discard[=<policy>] enable swap discards, if supported by device
 -e, --ifexists           silently skip devices that do not exist
 -f, --fixpgsz            reinitialize the swap space if necessary
 -o, --options <list>     comma-separated list of swap options
 -p, --priority <prio>    specify the priority of the swap device
 -s, --summary            display summary about used swap devices (DEPRECATED)
     --show[=<columns>]   display summary in definable table
     --noheadings         don't print table heading (with --show)
     --raw                use the raw output format (with --show)
     --bytes              display swap size in bytes in --show output
 -v, --verbose            verbose mode

 -h, --help               display this help
 -V, --version            display version

The <spec> parameter:
 -L <label>             synonym for LABEL=<label>
 -U <uuid>              synonym for UUID=<uuid>
 LABEL=<label>          specifies device by swap area label
 UUID=<uuid>            specifies device by swap area UUID
 PARTLABEL=<label>      specifies device by partition label
 PARTUUID=<uuid>        specifies device by partition UUID
 <device>               name of device to be used
 <file>                 name of file to be used

Available discard policy types (for --discard):
 once    : only single-time area discards are issued
 pages   : freed pages are discarded before they are reused
If no policy is selected, both discard types are enabled (default).

Available output columns:
 NAME   device file or partition path
 TYPE   type of the device
 SIZE   size of the swap area
 USED   bytes in use
 PRIO   swap priority
 UUID   swap uuid
 LABEL  swap label

For more details see swapon(8).

Important : L'option -p de la commande swapon permet de régler la priorité.

La Commande swapoff

Dans le cas de notre exemple, la partition de swap se trouve sur /dev/dm-1. Pour la désactiver, il convient de saisir la commande suivante :

[root@centos8 ~]# swapoff /dev/dm-1
[root@centos8 ~]# swapon -s
[root@centos8 ~]# 

Options de la Commande

[root@centos8 ~]# swapoff --help

Usage:
 swapoff [options] [<spec>]

Disable devices and files for paging and swapping.

Options:
 -a, --all              disable all swaps from /proc/swaps
 -v, --verbose          verbose mode

 -h, --help             display this help
 -V, --version          display version

The <spec> parameter:
 -L <label>             LABEL of device to be used
 -U <uuid>              UUID of device to be used
 LABEL=<label>          LABEL of device to be used
 UUID=<uuid>            UUID of device to be used
 <device>               name of device to be used
 <file>                 name of file to be used

For more details see swapoff(8).

LAB #13 - Créer un Fichier de Swap

Sous Linux, vous pouvez aussi bien utiliser un fichier de swap qu'une partition. La mise en place de ce fichier est faite en utilisant la commande dd.

La commande dd copie le fichier passé en entrée dans le fichier de sortie en limitant le nombre d'octets copiés par l'utilisation de deux options :

  • count
    • le nombre
  • bs
    • la taille du bloc à copier

Dans le cas du fichier swap il convient d'utiliser le fichier spécial /dev/zero en tant que fichier d'entrée. Le fichier /dev/zero contient une valeur null.

Pour créer votre fichier de swap de 268Mo, appelé swap, saisissez la commande suivante :

[root@centos8 ~]# dd if=/dev/zero of=/swap bs=1024k count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB, 256 MiB) copied, 0.103048 s, 2.6 GB/s

Pour préparer le fichier en tant qu'espace de swap, saisissez la commande suivante :

[root@centos8 ~]# mkswap /swap
mkswap: /swap: insecure permissions 0644, 0600 suggested.
Setting up swapspace version 1, size = 256 MiB (268431360 bytes)
no label, UUID=ee6c9e3f-0712-47b1-8f97-17ba215959d7

Pour activer le fichier avec une priorité de 1, saisissez la commande suivante :

[root@centos8 ~]# swapon -p1 /swap
swapon: /swap: insecure permissions 0644, 0600 suggested.

Pour visualiser les éspaces swap, saisissez la commande suivante :

[root@centos8 ~]# swapon -s
Filename				Type		Size	Used	Priority
/swap                                  	file    	262140	0	1
/dev/dm-1                               partition       3358716 0       -2

Important : Le fichier de swap ayant une priorité de 1 sera utilisé avant la partition de swap ayant une priorité de -2.

Important : Pour activer le fichier swap d'une manière permanente, il convient d'ajouter une ligne au fichier /etc/fstab. Ne modifiez pas votre fichier /etc/fstab car vous allez supprimer le fichier de swap.

Désactivez maintenant le fichier swap :

[root@centos8 ~]# swapoff /swap
[root@centos8 ~]# swapon -s
Filename				Type		Size	Used	Priority
/dev/dm-1                               partition       3358716 0       -2

Supprimez maintenant le fichier de swap :

[root@centos8 ~]# rm /swap
rm: remove regular file '/swap'? y

Copyright © 2022 Hugh Norris.

Menu