Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
elearning:workbooks:lpic:11:500:l104 [2023/06/09 06:16] – created adminelearning:workbooks:lpic:11:500:l104 [2024/04/05 08:03] (Version actuelle) admin
Ligne 1: Ligne 1:
 ~~PDF:LANDSCAPE~~ ~~PDF:LANDSCAPE~~
  
-Version : **2023.01**+Version : **2024.01**
  
 Dernière mise-à-jour : ~~LASTMOD~~ Dernière mise-à-jour : ~~LASTMOD~~
Ligne 595: Ligne 595:
 **Important** : Un lien symbolique peut être créé même dans le cas où les deux fichiers se trouvent dans deux filesystems différents et même dans le cas où le fichier source n'existe pas. **Important** : Un lien symbolique peut être créé même dans le cas où les deux fichiers se trouvent dans deux filesystems différents et même dans le cas où le fichier source n'existe pas.
 </WRAP> </WRAP>
 +
 +=====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. 
 +
 +{{free:disque.png|}}
 +
 +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.
 +
 +{{free:disques1.png|}}
 +
 +Le nombre de partitions sur un disque est limité :
 +
 +  * **IDE**,
 +    * Jusqu'à **63**,
 +  * **SCSI**,
 +    * Jusqu'à **15**,
 +  * **Disques utilisant l'API libata**,
 +    * Jusqu'à **15**.
 +
 +<WRAP center round important>
 +**Important** : Ces limites peuvent être dépassées en utilisant la gestion **LVM** (//Logical Volume Management//).
 +</WRAP>
 +
 +=====Partitionnement=====
 +
 +====LAB #1 - Partitionnement de votre Disque sous RHEL/CentOS 7 avec fdisk====
 +
 +Pour procéder au partitionnement de votre disque ou de vos disques, RHEL/CentOS 7 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 :
 +
 +<code>
 +[root@centos7 ~]# fdisk /dev/sda
 +Welcome to fdisk (util-linux 2.23.2).
 +
 +Changes will remain in memory only, until you decide to write them.
 +Be careful before using the write command.
 +
 +
 +Command (m for help): 
 +</code>
 +
 +Tapez ensuite la lettre **m** puis <key>Entrée</key> pour obtenir le menu :
 +
 +<code>
 +Command (m for help): m
 +Command action
 +     toggle a bootable flag
 +     edit bsd disklabel
 +     toggle the dos compatibility flag
 +     delete a partition
 +     create a new empty GPT partition table
 +     create an IRIX (SGI) partition table
 +     list known partition types
 +     print this menu
 +     add a new partition
 +     create a new empty DOS partition table
 +     print the partition table
 +     quit without saving changes
 +     create a new empty Sun disklabel
 +     change a partition's system id
 +     change display/entry units
 +     verify the partition table
 +     write table to disk and exit
 +     extra functionality (experts only)
 +
 +Command (m for help): 
 +</code>
 +
 +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/sda4 | Extended | Du premier cylindre disponible au dernier cylindre du disque |
 +| /dev/sda5 | Logique |  500 Mo  |
 +| /dev/sda6 | Logique |  200 Mo  |
 +| /dev/sda7 | Logique |  300 Mo  |
 +| /dev/sda8 | Logique |  500 Mo  |
 +| /dev/sda9 | Logique |  400 Mo  |
 +| /dev/sda10 | Logique |  500 Mo  |
 +| /dev/sda11 | Logique |  500 Mo  |
 +| /dev/sda12 | Logique |  200 Mo  |
 +
 +Créez d'abord la partition étendue :
 +
 +<code>
 +Command (m for help): n
 +Partition type:
 +     primary (3 primary, 0 extended, 1 free)
 +     extended
 +Select (default e): e
 +Selected partition 4
 +First sector (20891648-41943039, default 20891648): 
 +Using default value 20891648
 +Last sector, +sectors or +size{K,M,G} (20891648-41943039, default 41943039): 
 +Using default value 41943039
 +Partition 4 of type Extended and of size 10 GiB is set
 +
 +Command (m for help): 
 +</code>
 +
 +Créez ensuite les autres partitions l'une après l'autre :
 +
 +<code>
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 5
 +First sector (20893696-41943039, default 20893696): 
 +Using default value 20893696
 +Last sector, +sectors or +size{K,M,G} (20893696-41943039, default 41943039): +500M
 +Partition 5 of type Linux and of size 500 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 6
 +First sector (21919744-41943039, default 21919744): 
 +Using default value 21919744
 +Last sector, +sectors or +size{K,M,G} (21919744-41943039, default 41943039): +200M
 +Partition 6 of type Linux and of size 200 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 7
 +First sector (22331392-41943039, default 22331392): 
 +Using default value 22331392
 +Last sector, +sectors or +size{K,M,G} (22331392-41943039, default 41943039): +300M
 +Partition 7 of type Linux and of size 300 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 8
 +First sector (22947840-41943039, default 22947840): 
 +Using default value 22947840
 +Last sector, +sectors or +size{K,M,G} (22947840-41943039, default 41943039): +500M
 +Partition 8 of type Linux and of size 500 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 9
 +First sector (23973888-41943039, default 23973888): 
 +Using default value 23973888
 +Last sector, +sectors or +size{K,M,G} (23973888-41943039, default 41943039): +400M
 +Partition 9 of type Linux and of size 400 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 10
 +First sector (24795136-41943039, default 24795136): 
 +Using default value 24795136
 +Last sector, +sectors or +size{K,M,G} (24795136-41943039, default 41943039): +500M
 +Partition 10 of type Linux and of size 500 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 11
 +First sector (25821184-41943039, default 25821184): 
 +Using default value 25821184
 +Last sector, +sectors or +size{K,M,G} (25821184-41943039, default 41943039): +500M
 +Partition 11 of type Linux and of size 500 MiB is set
 +
 +Command (m for help): n
 +All primary partitions are in use
 +Adding logical partition 12
 +First sector (26847232-41943039, default 26847232): 
 +Using default value 26847232
 +Last sector, +sectors or +size{K,M,G} (26847232-41943039, default 41943039): +200M
 +Partition 12 of type Linux and of size 200 MiB is set
 +
 +Command (m for help): 
 +</code>
 +
 +Tapez ensuite la lettre **p** puis <key>Entrée</key> pour visualiser la nouvelle table des partitions. Vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +Command (m for help): p
 +
 +Disk /dev/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   83  Linux
 +/dev/sda6        21919744    22329343      204800   83  Linux
 +/dev/sda7        22331392    22945791      307200   83  Linux
 +/dev/sda8        22947840    23971839      512000   83  Linux
 +/dev/sda9        23973888    24793087      409600   83  Linux
 +/dev/sda10       24795136    25819135      512000   83  Linux
 +/dev/sda11       25821184    26845183      512000   83  Linux
 +/dev/sda12       26847232    27256831      204800   83  Linux
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Chaque bloc fait 1 024 octets. Chaque secteur fait 512 octets. Quand la partition contient un nombre impair de secteurs, celle-ci est marquée avec un **+**. Ceci implique que le dernier secteur de 512 octets est effectivement perdu.
 +</WRAP>
 +
 +Ecrivez la table des partitions sur disque et exécutez la commande **partprobe** :
 +
 +<code>
 +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@centos7 ~]# partprobe
 +</code>
 +
 +Lancez fdisk puis tapez ensuite la lettre **p** puis <key>Entrée</key> pour visualiser la table des partitions actuelle :
 +
 +<code>
 +[root@centos7 ~]# fdisk /dev/sda
 +Welcome to fdisk (util-linux 2.23.2).
 +
 +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/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   83  Linux
 +/dev/sda6        21919744    22329343      204800   83  Linux
 +/dev/sda7        22331392    22945791      307200   83  Linux
 +/dev/sda8        22947840    23971839      512000   83  Linux
 +/dev/sda9        23973888    24793087      409600   83  Linux
 +/dev/sda10       24795136    25819135      512000   83  Linux
 +/dev/sda11       25821184    26845183      512000   83  Linux
 +/dev/sda12       26847232    27256831      204800   83  Linux
 +
 +Command (m for help): 
 +</code>
 +
 +Pour supprimer une partition, utilisez la commande **d** puis <key>Entrée</key>. fdisk vous demandera le numéro de la partition à supprimer, par exemple :
 +
 +<code>
 +Command (m for help): d
 +Partition number (1-12, default 12): 12
 +Partition 12 is deleted
 +
 +Command (m for help): p
 +
 +Disk /dev/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   83  Linux
 +/dev/sda6        21919744    22329343      204800   83  Linux
 +/dev/sda7        22331392    22945791      307200   83  Linux
 +/dev/sda8        22947840    23971839      512000   83  Linux
 +/dev/sda9        23973888    24793087      409600   83  Linux
 +/dev/sda10       24795136    25819135      512000   83  Linux
 +/dev/sda11       25821184    26845183      512000   83  Linux
 +
 +Command (m for help): 
 +</code>
 +
 +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 :
 +
 +<code>
 +Command (m for help): q
 +
 +[root@centos7 ~]# fdisk /dev/sda
 +Welcome to fdisk (util-linux 2.23.2).
 +
 +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/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   83  Linux
 +/dev/sda6        21919744    22329343      204800   83  Linux
 +/dev/sda7        22331392    22945791      307200   83  Linux
 +/dev/sda8        22947840    23971839      512000   83  Linux
 +/dev/sda9        23973888    24793087      409600   83  Linux
 +/dev/sda10       24795136    25819135      512000   83  Linux
 +/dev/sda11       25821184    26845183      512000   83  Linux
 +/dev/sda12       26847232    27256831      204800   83  Linux
 +
 +Command (m for help):  
 +</code>
 +
 +====LAB #2 - 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 ^ 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 :
 +
 +<code>
 +[root@centos7 ~]# fdisk /dev/sda
 +Welcome to fdisk (util-linux 2.23.2).
 +
 +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/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   83  Linux
 +/dev/sda6        21919744    22329343      204800   83  Linux
 +/dev/sda7        22331392    22945791      307200   83  Linux
 +/dev/sda8        22947840    23971839      512000   83  Linux
 +/dev/sda9        23973888    24793087      409600   83  Linux
 +/dev/sda10       24795136    25819135      512000   83  Linux
 +/dev/sda11       25821184    26845183      512000   83  Linux
 +/dev/sda12       26847232    27256831      204800   83  Linux
 +
 +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'
 +
 +Command (m for help): 
 +</code>
 +
 +A l'issu des modifications, vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +Command (m for help): p
 +
 +Disk /dev/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   fd  Linux raid autodetect
 +/dev/sda6        21919744    22329343      204800   8e  Linux LVM
 +/dev/sda7        22331392    22945791      307200   8e  Linux LVM
 +/dev/sda8        22947840    23971839      512000   fd  Linux raid autodetect
 +/dev/sda9        23973888    24793087      409600   8e  Linux LVM
 +/dev/sda10       24795136    25819135      512000   fd  Linux raid autodetect
 +/dev/sda11       25821184    26845183      512000   fd  Linux raid autodetect
 +/dev/sda12       26847232    27256831      204800   83  Linux
 +
 +Command (m for help): 
 +</code>
 +
 +Pour écrire la nouvelle table des partitions sur disque, vous devez utilisez la commande **w** puis la commande **partprobe** :
 +
 +<code>
 +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@centos7 ~]# partprobe
 +</code>
 +
 +====Options de la Commande fdisk====
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# fdisk --help
 +fdisk: invalid option -- '-'
 +Usage:
 + fdisk [options] <disk>    change partition table
 + fdisk [options] -l <disk> list partition table(s)
 + fdisk -s <partition>      give partition size(s) in blocks
 +
 +Options:
 + -b <size>             sector size (512, 1024, 2048 or 4096)
 + -c[=<mode>          compatible mode: 'dos' or 'nondos' (default)
 + -h                    print this help text
 + -u[=<unit>          display units: 'cylinders' or 'sectors' (default)
 + -v                    print program version
 + -C <number>           specify the number of cylinders
 + -H <number>           specify the number of heads
 + -S <number>           specify the number of sectors per track
 +</code>
 +
 +=====Logical Volume Manager (LVM)=====
 +
 +====LAB #3 - Volumes Logiques Linéaires====
 +
 +Afin de mettre en place le LVM, vous avez besoin du paquet **lvm2** et du paquet **device-mapper**. 
 +
 +Nous allons travailler sous RHEL/CentOS 7 avec les partitions suivantes :
 +
 +<code>
 +/dev/sda6        21919744    22329343      204800   8e  Linux LVM
 +/dev/sda7        22331392    22945791      307200   8e  Linux LVM
 +/dev/sda9        23973888    24793087      409600   8e  Linux LVM
 +</code>
 +
 +Pour initialiser le LVM saississez la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# vgscan
 +  Reading all physical volumes.  This may take a while...
 +</code>
 +
 +Les options de la commande **vgscan** sont :
 +
 +<code>
 +[root@centos7 ~]# vgscan --help
 +  vgscan: Search for all volume groups
 +
 +vgscan [--cache]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [--ignorelockingfailure]
 + [--mknodes]
 + [-P|--partial]
 + [-v|--verbose]
 + [--version]
 +</code>
 +
 +===Physical Volume (PV)===
 +
 +Pour créer le **PV** il convient d'utiliser la commande **pvcreate** :
 +
 +<code>
 +[root@centos7 ~]# pvcreate /dev/sda6 /dev/sda7 /dev/sda9
 +  Physical volume "/dev/sda6" successfully created
 +  Physical volume "/dev/sda7" successfully created
 +  Physical volume "/dev/sda9" successfully created
 +</code>
 +
 +Les options de la commande **pvcreate** sont :
 +
 +<code>
 +[root@centos7 ~]# pvcreate --help
 +  pvcreate: Initialize physical volume(s) for use by LVM
 +
 +pvcreate
 + [--norestorefile]
 + [--restorefile file]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-f[f]|--force [--force]]
 + [-h|-?|--help]
 + [--labelsector sector]
 + [-M|--metadatatype 1|2]
 + [--pvmetadatacopies #copies]
 + [--bootloaderareasize BootLoaderAreaSize[bBsSkKmMgGtTpPeE]]
 + [--metadatasize MetadataSize[bBsSkKmMgGtTpPeE]]
 + [--dataalignment Alignment[bBsSkKmMgGtTpPeE]]
 + [--dataalignmentoffset AlignmentOffset[bBsSkKmMgGtTpPeE]]
 + [--setphysicalvolumesize PhysicalVolumeSize[bBsSkKmMgGtTpPeE]
 + [-t|--test]
 + [-u|--uuid uuid]
 + [-v|--verbose]
 + [-y|--yes]
 + [-Z|--zero {y|n}]
 + [--version]
 + PhysicalVolume [PhysicalVolume...]
 +</code>
 +
 +Pour visualiser le PV il convient d'utiliser la commande **pvdisplay** :
 +
 +<code>
 +[root@centos7 ~]# pvdisplay /dev/sda6 /dev/sda7 /dev/sda9
 +  "/dev/sda6" is a new physical volume of "200.00 MiB"
 +  --- NEW Physical volume ---
 +  PV Name               /dev/sda6
 +  VG Name               
 +  PV Size               200.00 MiB
 +  Allocatable           NO
 +  PE Size                 
 +  Total PE              0
 +  Free PE               0
 +  Allocated PE          0
 +  PV UUID               9o7SOM-NU2B-dKzi-crvR-rJej-kw2O-QtY0t5
 +   
 +  "/dev/sda9" is a new physical volume of "400.00 MiB"
 +  --- NEW Physical volume ---
 +  PV Name               /dev/sda9
 +  VG Name               
 +  PV Size               400.00 MiB
 +  Allocatable           NO
 +  PE Size                 
 +  Total PE              0
 +  Free PE               0
 +  Allocated PE          0
 +  PV UUID               vu7nY2-ac3k-Hp19-gFVQ-ny0I-sZoY-Sykbcw
 +   
 +  "/dev/sda7" is a new physical volume of "300.00 MiB"
 +  --- NEW Physical volume ---
 +  PV Name               /dev/sda7
 +  VG Name               
 +  PV Size               300.00 MiB
 +  Allocatable           NO
 +  PE Size                 
 +  Total PE              0
 +  Free PE               0
 +  Allocated PE          0
 +  PV UUID               HpElCF-L3x7-pjnl-IgmA-CeNc-ZBCu-5sk3AZ
 +</code>
 +
 +Les options de la commande **pvdisplay** sont :
 +
 +<code>
 +[root@centos7 ~]# pvdisplay --help
 +  pvdisplay: Display various attributes of physical volume(s)
 +
 +pvdisplay
 + [-c|--colon]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [--ignorelockingfailure]
 + [--ignoreskippedcluster]
 + [-m|--maps]
 + [--nosuffix]
 + [--readonly]
 + [-s|--short]
 + [--units hHbBsSkKmMgGtTpPeE]
 + [-v|--verbose]
 + [--version]
 + [PhysicalVolumePath [PhysicalVolumePath...]]
 +
 +pvdisplay --columns|-C
 + [--aligned]
 + [-a|--all]
 + [--binary]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [--ignorelockingfailure]
 + [--ignoreskippedcluster]
 + [--noheadings]
 + [--nosuffix]
 + [-o|--options [+]Field[,Field]]
 + [-O|--sort [+|-]key1[,[+|-]key2[,...]]]
 + [-S|--select Selection]
 + [--readonly]
 + [--separator Separator]
 + [--unbuffered]
 + [--units hHbBsSkKmMgGtTpPeE]
 + [-v|--verbose]
 + [--version]
 + [PhysicalVolumePath [PhysicalVolumePath...]]
 +</code>
 +
 +===Volume Group (VG) et Physical Extent (PE)===
 +
 +Pour créer un Volume Group dénommé **vg0**, il convient d'utiliser la commande **vgcreate** :
 +
 +<code>
 +[root@centos7 ~]# vgcreate -s 8M vg0 /dev/sda6 /dev/sda7 /dev/sda9
 +  Volume group "vg0" successfully created
 +</code>
 +
 +Les options de la commande **vgcreate** sont :
 +
 +<code>
 +[root@centos7 ~]# vgcreate --help
 +  vgcreate: Create a volume group
 +
 +vgcreate
 + [-A|--autobackup {y|n}]
 + [--addtag Tag]
 + [--alloc AllocationPolicy]
 + [-c|--clustered {y|n}]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [-l|--maxlogicalvolumes MaxLogicalVolumes]
 + [--metadataprofile ProfileName]
 + [-M|--metadatatype 1|2]
 + [--[vg]metadatacopies #copies]
 + [-p|--maxphysicalvolumes MaxPhysicalVolumes]
 + [-s|--physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]]
 + [-t|--test]
 + [-v|--verbose]
 + [--version]
 + [-y|--yes]
 + [ PHYSICAL DEVICE OPTIONS ]
 + VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
 +</code>
 +
 +Pour afficher les informations concernant **vg0**, il convient d'utiliser la commande **vgdisplay** :
 +
 +<code>
 +[root@centos7 ~]# vgdisplay vg0
 +  --- Volume group ---
 +  VG Name               vg0
 +  System ID             
 +  Format                lvm2
 +  Metadata Areas        3
 +  Metadata Sequence No  1
 +  VG Access             read/write
 +  VG Status             resizable
 +  MAX LV                0
 +  Cur LV                0
 +  Open LV               0
 +  Max PV                0
 +  Cur PV                3
 +  Act PV                3
 +  VG Size               880.00 MiB
 +  PE Size               8.00 MiB
 +  Total PE              110
 +  Alloc PE / Size       0 / 0   
 +  Free  PE / Size       110 / 880.00 MiB
 +  VG UUID               OQ3Moh-KXD8-Ca2H-B3ry-imT8-e4SG-NYSHwi
 +</code>
 +
 +Les options de la commande **vgdisplay** sont :
 +
 +<code>
 +[root@centos7 ~]# vgdisplay --help
 +  vgdisplay: Display volume group information
 +
 +vgdisplay
 + [-A|--activevolumegroups]
 + [-c|--colon | -s|--short | -v|--verbose]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [--ignorelockingfailure]
 + [--ignoreskippedcluster]
 + [--nosuffix]
 + [-P|--partial]
 + [--readonly]
 + [--units hHbBsSkKmMgGtTpPeE]
 + [--version]
 + [VolumeGroupName [VolumeGroupName...]]
 +
 +vgdisplay --columns|-C
 + [--aligned]
 + [--binary]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [--ignorelockingfailure]
 + [--ignoreskippedcluster]
 + [--noheadings]
 + [--nosuffix]
 + [-o|--options [+]Field[,Field]]
 + [-O|--sort [+|-]key1[,[+|-]key2[,...]]]
 + [-P|--partial]
 + [-S|--select Selection]
 + [--readonly]
 + [--separator Separator]
 + [--unbuffered]
 + [--units hHbBsSkKmMgGtTpPeE]
 + [--verbose]
 + [--version]
 + [VolumeGroupName [VolumeGroupName...]]
 +</code>
 +
 +===Logical Volumes (LV)===
 +
 +Pour créer un **Logical Volume** dénommé **lv0** dans le **Volume Group** **vg0**, il convient d'utiliser la commande **lvcreate** :
 +
 +<code>
 +[root@centos7 ~]# lvcreate -L 350 -n lv0 vg0
 +  Rounding up size to full physical extent 352.00 MiB
 +  Logical volume "lv0" created.
 +</code>
 +
 +<WRAP center round important>
 +Notez que la taille du LV est un multiple du PE.
 +</WRAP>
 +
 +Les options de la commande **lvcreate** sont :
 +
 +<code>
 +[root@centos7 ~]# lvcreate --help
 +  lvcreate: Create a logical volume
 +
 +lvcreate
 + [-A|--autobackup {y|n}]
 + [-a|--activate [a|e|l]{y|n}]
 + [--addtag Tag]
 + [--alloc AllocationPolicy]
 + [-H|--cache
 +   [--cachemode {writeback|writethrough}]
 + [--cachepool CachePoolLogicalVolume{Name|Path}]
 + [-c|--chunksize ChunkSize]
 + [-C|--contiguous {y|n}]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|-?|--help]
 + [--errorwhenfull {y|n}]
 + [--ignoremonitoring]
 + [--monitor {y|n}]
 + [-i|--stripes Stripes [-I|--stripesize StripeSize]]
 + [-k|--setactivationskip {y|n}]
 + [-K|--ignoreactivationskip]
 + {-l|--extents LogicalExtentsNumber[%{VG|PVS|FREE}] |
 + -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
 + [-M|--persistent {y|n}] [-j|--major major] [--minor minor]
 + [--metadataprofile ProfileName]
 + [-m|--mirrors Mirrors [--nosync]
 +   [{--mirrorlog {disk|core|mirrored}|--corelog}]]
 + [-n|--name LogicalVolumeName]
 + [--noudevsync]
 + [-p|--permission {r|rw}]
 + [--poolmetadatasize MetadataSize[bBsSkKmMgG]]
 + [--poolmetadataspare {y|n}]]
 + [--[raid]minrecoveryrate Rate]
 + [--[raid]maxrecoveryrate Rate]
 + [-r|--readahead {ReadAheadSectors|auto|none}]
 + [-R|--regionsize MirrorLogRegionSize]
 + [-T|--thin
 +   [--discards {ignore|nopassdown|passdown}]
 + [--thinpool ThinPoolLogicalVolume{Name|Path}]
 + [-t|--test]
 + [--type VolumeType]
 + [-v|--verbose]
 + [-W|--wipesignatures {y|n}]
 + [-Z|--zero {y|n}]
 + [--version]
 + VolumeGroupName [PhysicalVolumePath...]
 +
 +lvcreate
 + { {-s|--snapshot} OriginalLogicalVolume[Path] |
 +   [-s|--snapshot] VolumeGroupName[Path] -V|--virtualsize VirtualSize}
 +   {-H|--cache} VolumeGroupName[Path][/OriginalLogicalVolume]
 +   {-T|--thin} VolumeGroupName[Path][/PoolLogicalVolume]
 +               -V|--virtualsize VirtualSize}
 + [-A|--autobackup {y|n}]
 + [--addtag Tag]
 + [--alloc AllocationPolicy]
 + [--cachepolicy Policy] [--cachesettings Key=Value]
 + [-c|--chunksize]
 + [-C|--contiguous {y|n}]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [--discards {ignore|nopassdown|passdown}]
 + [-h|-?|--help]
 + [--ignoremonitoring]
 + [--monitor {y|n}]
 + [-i|--stripes Stripes [-I|--stripesize StripeSize]]
 + [-k|--setactivationskip {y|n}]
 + [-K|--ignoreactivationskip]
 + {-l|--extents LogicalExtentsNumber[%{VG|FREE|ORIGIN}] |
 + -L|--size LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
 + [--poolmetadatasize MetadataVolumeSize[bBsSkKmMgG]]
 + [-M|--persistent {y|n}] [-j|--major major] [--minor minor]
 + [--metadataprofile ProfileName]
 + [-n|--name LogicalVolumeName]
 + [--noudevsync]
 + [-p|--permission {r|rw}]
 + [-r|--readahead ReadAheadSectors|auto|none]
 + [-t|--test]
 + [{--thinpool ThinPoolLogicalVolume[Path] |
 +   --cachepool CachePoolLogicalVolume[Path]}]
 + [-v|--verbose]
 + [--version]
 + [PhysicalVolumePath...]
 +</code>
 +
 +Créez maintenant un répertoire dans /mnt pour monter lv0 :
 +
 +  [root@centos7 ~]# mkdir /mnt/lvm
 +
 +Créez un système de fichiers en **ext3** sur /dev/vg0/lv0 :
 +
 +<code>
 +[root@centos7 ~]# mke2fs -j /dev/vg0/lv0
 +mke2fs 1.42.9 (28-Dec-2013)
 +Filesystem label=
 +OS type: Linux
 +Block size=1024 (log=0)
 +Fragment size=1024 (log=0)
 +Stride=0 blocks, Stripe width=0 blocks
 +90112 inodes, 360448 blocks
 +18022 blocks (5.00%) reserved for the super user
 +First data block=1
 +Maximum filesystem blocks=67633152
 +44 block groups
 +8192 blocks per group, 8192 fragments per group
 +2048 inodes per group
 +Superblock backups stored on blocks: 
 + 8193, 24577, 40961, 57345, 73729, 204801, 221185
 +
 +Allocating group tables: done                            
 +Writing inode tables: done                            
 +Creating journal (8192 blocks): done
 +Writing superblocks and filesystem accounting information: done 
 +</code>
 +
 +Montez votre lv0 :
 +
 +  [root@centos7 ~]# mount -t ext3 /dev/vg0/lv0 /mnt/lvm
 +
 +Vous allez maintenant copier le contenu de votre répertoire /home vers /mnt/lvm.
 +
 +Saisissez donc la commande pour copier le contenu de /home :
 +
 +  [root@centos7 ~]# cp -a /home /mnt/lvm
 +
 +Constatez ensuite le contenu de /mnt/lvm :
 +
 +<code>
 +[root@centos7 ~]# ls -l /mnt/lvm
 +total 14
 +drwxr-xr-x. 5 root root  1024 Oct 15 18:27 home
 +drwx------. 2 root root 12288 Oct 20 18:24 lost+found
 +</code>
 +
 +Une particularité du volume logique est la capacité de d'être aggrandi ou réduit sans pertes de données. Commencez par constater la taille totale du volume :
 +
 +<code>
 +[root@centos7 ~]# df -h /mnt/lvm
 +Filesystem           Size  Used Avail Use% Mounted on
 +/dev/mapper/vg0-lv0  333M   50M  266M  16% /mnt/lvm
 +</code>
 +
 +Dans la cas de notre exemple, la taille est de **333 Mo** avec **50 Mo** occupé.
 +
 +====LAB #4 - Etendre un Volume Logique à Chaud====
 +
 +Pour agrandir un volume logique, le paquet **lvm2** contient les commandes **lvextend** et **resize2fs** :
 +
 +<code>
 +[root@centos7 ~]# lvextend -L +100M /dev/vg0/lv0
 +  Rounding size to boundary between physical extents: 104.00 MiB
 +  Size of logical volume vg0/lv0 changed from 352.00 MiB (44 extents) to 456.00 MiB (57 extents).
 +  Logical volume lv0 successfully resized
 +</code>
 +
 +<WRAP center round important>
 +Notez que l'agrandissement du volume est un multiple du PE.
 +</WRAP>
 +
 +Les options de la commande **lvextend** sont :
 +
 +<code>
 +[root@centos7 ~]# lvextend --help
 +  lvextend: Add space to a logical volume
 +
 +lvextend
 + [-A|--autobackup y|n]
 + [--alloc AllocationPolicy]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-f|--force]
 + [-h|--help]
 + [-i|--stripes Stripes [-I|--stripesize StripeSize]]
 + {-l|--extents [+]LogicalExtentsNumber[%{VG|LV|PVS|FREE|ORIGIN}] |
 + -L|--size [+]LogicalVolumeSize[bBsSkKmMgGtTpPeE]}
 + --poolmetadatasize [+]MetadataVolumeSize[bBsSkKmMgG]}
 + [-m|--mirrors Mirrors]
 + [--nosync]
 + [--use-policies]
 + [-n|--nofsck]
 + [--noudevsync]
 + [-r|--resizefs]
 + [-t|--test]
 + [--type VolumeType]
 + [-v|--verbose]
 + [--version]
 + LogicalVolume[Path] [ PhysicalVolumePath... ]
 +</code>
 +
 +Le volume ayant été agrandi, il est necessaire maintenant d'agrandir le filesystem qui s'y trouve :
 +
 +<code>
 +[root@centos7 ~]# resize2fs /dev/vg0/lv0
 +resize2fs 1.42.9 (28-Dec-2013)
 +Filesystem at /dev/vg0/lv0 is mounted on /mnt/lvm; on-line resizing required
 +old_desc_blocks = 2, new_desc_blocks = 2
 +The filesystem on /dev/vg0/lv0 is now 466944 blocks long.
 +</code>
 +
 +Constatez maintenant la modification de la taille du volume :
 +
 +<code>
 +[root@centos7 ~]# df -h /mnt/lvm
 +Filesystem           Size  Used Avail Use% Mounted on
 +/dev/mapper/vg0-lv0  434M   51M  362M  13% /mnt/lvm
 +</code>
 +
 +Vous noterez que la taille a augmentée mais que les données sont toujours présentes.
 +
 +====LAB #5 - Snapshots====
 +
 +Un snapshot est un instantané d'un système de fichiers. Dans cet exemple, vous allez créer un snapshot de votre lv0 :
 +
 +Avant de commencer, créez un fichier de 10Mo dans le volume :
 +
 +<code>
 +[root@centos7 ~]# dd if=/dev/zero of=/mnt/lvm/10M bs=1048576 count=10
 +10+0 records in
 +10+0 records out
 +10485760 bytes (10 MB) copied, 0.044034 s, 238 MB/s
 +</code>
 +
 +Créez maintenant un snapshot :
 +
 +<code>
 +[root@centos7 ~]# lvcreate -s -L 65M -n testsnap /dev/vg0/lv0
 +  Rounding up size to full physical extent 72.00 MiB
 +  Logical volume "testsnap" created.
 +</code>
 +
 +Pour avoir une confirmation de la création du snapshot, utilisez la commande **lvs** :
 +
 +<code>
 +[root@centos7 ~]# lvs
 +  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 +  lv0      vg0  owi-aos--- 456.00m                                                    
 +  testsnap vg0  swi-a-s---  72.00m      lv0    0.02    
 +</code>
 +
 +<WRAP center round important>
 +Notez que le snapshot est créé dans le même VG que le LV d'origine.
 +</WRAP>
 +
 +Les options de la commande **lvs** sont :
 +
 +<code>
 +[root@centos7 ~]# lvs --help
 +  lvs: Display information about logical volumes
 +
 +lvs
 + [-a|--all]
 + [--aligned]
 + [--binary]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-h|--help]
 + [--ignorelockingfailure]
 + [--ignoreskippedcluster]
 + [--nameprefixes]
 + [--noheadings]
 + [--nosuffix]
 + [-o|--options [+]Field[,Field]]
 + [-O|--sort [+|-]key1[,[+|-]key2[,...]]]
 + [-P|--partial]
 + [--readonly]
 + [--rows]
 + [--segments]
 + [-S|--select Selection]
 + [--separator Separator]
 + [--trustcache]
 + [--unbuffered]
 + [--units hHbBsSkKmMgGtTpPeE]
 + [--unquoted]
 + [-v|--verbose]
 + [--version]
 + [LogicalVolume[Path] [LogicalVolume[Path]...]]
 +</code>
 +
 +Créez maintenant un répertoire pour monter le snapshot :
 +
 +<code>
 +[root@centos7 ~]# mkdir /mnt/testsnap
 +</code>
 +
 +Montez le snapshot :
 +
 +<code>
 +[root@centos7 ~]# mount /dev/vg0/testsnap /mnt/testsnap
 +</code>
 +
 +Comparez le volume d'origine et le snapshot :
 +
 +<code>
 +[root@centos7 ~]# ls -l /mnt/lvm
 +total 10296
 +-rw-r--r--. 1 root root 10485760 Oct 20 18:53 10M
 +drwxr-xr-x. 5 root root     1024 Oct 15 18:27 home
 +drwx------. 2 root root    12288 Oct 20 18:24 lost+found
 +
 +[root@centos7 ~]# ls -l /mnt/testsnap
 +total 10296
 +-rw-r--r--. 1 root root 10485760 Oct 20 18:53 10M
 +drwxr-xr-x. 5 root root     1024 Oct 15 18:27 home
 +drwx------. 2 root root    12288 Oct 20 18:24 lost+found
 +</code>
 +
 +Supprimez maintenant le fichier **10M** de votre volume d'origine :
 +
 +<code>
 +[root@centos7 ~]# rm /mnt/lvm/10M
 +rm: remove regular file ‘/mnt/lvm/10M’? y
 +</code>
 +
 +Constatez le résultat de cette suppression :
 +
 +<code>
 +[root@centos7 ~]# df -Ph /mnt/lvm
 +Filesystem           Size  Used Avail Use% Mounted on
 +/dev/mapper/vg0-lv0  434M   51M  362M  12% /mnt/lvm
 +[root@centos7 ~]# df -Ph /mnt/testsnap
 +Filesystem                Size  Used Avail Use% Mounted on
 +/dev/mapper/vg0-testsnap  434M   61M  352M  15% /mnt/testsnap
 +[root@centos7 ~]# lvs
 +  LV       VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
 +  lv0      vg0  owi-aos--- 456.00m                                                    
 +  testsnap vg0  swi-aos---  72.00m      lv0    0.04       
 +</code>
 +
 +<WRAP center round todo 60%>
 +Restaurez le fichier 10M à partir du snapshot.
 +</WRAP>
 +
 +====LAB #6 - Suppression des Volumes====
 +
 +La suppression d'un volume logique se fait grace à la commande **lvremove** :
 +
 +<code>
 +[root@centos7 ~]# umount /mnt/testsnap/
 +[root@centos7 ~]# lvremove /dev/vg0/testsnap
 +Do you really want to remove active logical volume testsnap? [y/n]: y
 +  Logical volume "testsnap" successfully removed
 +[root@centos7 ~]# umount /mnt/lvm
 +[root@centos7 ~]# lvremove /dev/vg0/lv0
 +Do you really want to remove active logical volume lv0? [y/n]: y
 +  Logical volume "lv0" successfully removed
 +</code>
 +
 +<WRAP center round important>
 +Notez que cette opération necéssite à ce que le volume logique soit démonté.
 +</WRAP>
 +
 +Les options de la commande **lvremove** sont :
 +
 +<code>
 +[root@centos7 ~]# lvremove --help
 +  lvremove: Remove logical volume(s) from the system
 +
 +lvremove
 + [-A|--autobackup y|n]
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-f|--force]
 + [-h|--help]
 + [--noudevsync]
 + [-t|--test]
 + [-v|--verbose]
 + [--version]
 + LogicalVolume[Path] [LogicalVolume[Path]...]
 +</code>
 +
 +Le Volume Group peut aussi être supprimé :
 +
 +<code>
 +[root@centos7 ~]# vgremove vg0
 +  Volume group "vg0" successfully removed
 +</code>
 +
 +Les options de la commande **vgremove** sont :
 +
 +<code>
 +[root@centos7 ~]# vgremove --help
 +  vgremove: Remove volume group(s)
 +
 +vgremove
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-f|--force]
 + [-h|--help]
 + [--noudevsync]
 + [-t|--test]
 + [-v|--verbose]
 + [--version]
 + VolumeGroupName [VolumeGroupName...]
 +</code>
 +
 +Ainsi que le volume physique :
 +
 +<code>
 +[root@centos7 ~]# pvremove /dev/sda6 /dev/sda7 /dev/sda9
 +  Labels on physical volume "/dev/sda6" successfully wiped
 +  Labels on physical volume "/dev/sda7" successfully wiped
 +  Labels on physical volume "/dev/sda9" successfully wiped
 +</code>
 +
 +Les options de la commande **pvremove** sont :
 +
 +<code>
 +[root@centos7 ~]# pvremove --help
 +  pvremove: Remove LVM label(s) from physical volume(s)
 +
 +pvremove
 + [--commandprofile ProfileName]
 + [-d|--debug]
 + [-f[f]|--force [--force]]
 + [-h|-?|--help]
 + [-t|--test]
 + [-v|--verbose]
 + [--version]
 + [-y|--yes]
 + PhysicalVolume [PhysicalVolume...]
 +</code>
 +
 +=====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 ^
 +| **[[http://en.wikipedia.org/wiki/Ext3|Ext3]]** | 2 [[http://fr.wikipedia.org/wiki/Octet|To]] | 32 [[http://fr.wikipedia.org/wiki/Octet|To]] |
 +| **[[http://fr.wikipedia.org/wiki/Ext4|Ext4]]** | 16 [[http://fr.wikipedia.org/wiki/Octet|To]] | 1 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] |
 +| **[[http://en.wikipedia.org/wiki/XFS|XFS]]** | 8 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 16 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] |
 +| **[[http://en.wikipedia.org/wiki/ReiserFS|ReiserFS v3]]** | 8 [[http://fr.wikipedia.org/wiki/Octet|To]] | 16 [[http://fr.wikipedia.org/wiki/Octet|To]] |
 +| **[[http://en.wikipedia.org/wiki/JFS_(file_system)|JFS]]** | 4 [[http://fr.wikipedia.org/wiki/Octet|Po]] | 32 [[http://fr.wikipedia.org/wiki/Octet|Po]] |
 +| **[[https://fr.wikipedia.org/wiki/Btrfs|Btrfs]]** | 16 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] | 16 [[http://fr.wikipedia.org/wiki/Exbibyte|EiB]] |
 +
 +<WRAP center round todo 60%>
 +**A faire** : Pour comparer ces six systèmes de fichier, veuillez consulter **[[http://en.wikipedia.org/wiki/Comparison_of_file_systems|cette page]]**
 +</WRAP>
 +
 +====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 **[[http://en.wikipedia.org/wiki/Ext3|cette page]]**
 +
 +===Gestion d'Ext3===
 +
 +Notez maintenant le numéro de la dernière partition que vous avez précédemment créée :
 +
 +<code>
 +[root@centos7 ~]# fdisk -l
 +
 +Disk /dev/sda: 21.5 GB, 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
 +Disk label type: dos
 +Disk identifier: 0x000f2006
 +
 +   Device Boot      Start         End      Blocks   Id  System
 +/dev/sda1          2048      411647      204800   83  Linux
 +/dev/sda2          411648    14747647     7168000   83  Linux
 +/dev/sda3        14747648    20891647     3072000   82  Linux swap / Solaris
 +/dev/sda4        20891648    41943039    10525696    5  Extended
 +/dev/sda5        20893696    21917695      512000   fd  Linux raid autodetect
 +/dev/sda6        21919744    22329343      204800   8e  Linux LVM
 +/dev/sda7        22331392    22945791      307200   8e  Linux LVM
 +/dev/sda8        22947840    23971839      512000   fd  Linux raid autodetect
 +/dev/sda9        23973888    24793087      409600   8e  Linux LVM
 +/dev/sda10       24795136    25819135      512000   fd  Linux raid autodetect
 +/dev/sda11       25821184    26845183      512000   fd  Linux raid autodetect
 +/dev/sda12       26847232    27256831      204800   83  Linux
 +
 +Disk /dev/mapper/vg0-lv1: 109 MB, 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: 117 MB, 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
 +</code>
 +
 +Dans le cas de RHEL/CentOS 7, il s'agit de **/dev/sda12**.
 +
 +Sous RHEL/CentOS créez un filesystem Ext3 sur /dev/sda12 en utilisant la commande **mke2fs -j** :
 +
 +<code>
 +[root@centos7 ~]# mke2fs -j /dev/sda12
 +mke2fs 1.42.9 (28-Dec-2013)
 +Filesystem label=
 +OS type: Linux
 +Block size=1024 (log=0)
 +Fragment size=1024 (log=0)
 +Stride=0 blocks, Stripe width=0 blocks
 +51200 inodes, 204800 blocks
 +10240 blocks (5.00%) reserved for the super user
 +First data block=1
 +Maximum filesystem blocks=67371008
 +25 block groups
 +8192 blocks per group, 8192 fragments per group
 +2048 inodes per group
 +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
 +</code>
 +
 +Les options de la commande **mke2fs** sont :
 +
 +<code>
 +[root@centos7 ~]# 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]
 + [-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] [-jnqvDFKSV] device [blocks-count]
 +</code>
 +
 +<WRAP center round important>
 +**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.
 +</WRAP>
 +
 +===LAB #7 - 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** :
 +
 +<code>
 +[root@centos7 ~]# dumpe2fs -h /dev/sda12
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem volume name:   <none>
 +Last mounted on:          <not available>
 +Filesystem UUID:          ee905f90-e7cd-41a0-aa75-a3eb9e94b183
 +Filesystem magic number:  0xEF53
 +Filesystem revision #:    1 (dynamic)
 +Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super
 +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:       Thu Oct 22 11:40:33 2015
 +Last mount time:          n/a
 +Last write time:          Thu Oct 22 11:40:33 2015
 +Mount count:              0
 +Maximum mount count:      -1
 +Last checked:             Thu Oct 22 11:40:33 2015
 +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:      454137e5-3ce9-40c9-911b-d4274808d86f
 +Journal backup:           inode blocks
 +Journal features:         (none)
 +Journal size:             4113k
 +Journal length:           4096
 +Journal sequence:         0x00000001
 +Journal start:            0
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Le drapeau **Filesystem features:      has_journal ...** démontre que Ext3 est utilisé sur cette partition.
 +</WRAP>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# dumpe2fs --help
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +dumpe2fs: invalid option -- '-'
 +Usage: dumpe2fs [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device
 +</code>
 +
 +Pour supprimer Ext3 sur cette partition, il convient d'utiliser la commande **tune2fs**
 +
 +<code>
 +[root@centos7 ~]# tune2fs -O ^has_journal /dev/sda12
 +tune2fs 1.42.9 (28-Dec-2013)
 +</code>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# tune2fs --help
 +tune2fs 1.42.9 (28-Dec-2013)
 +tune2fs: invalid option -- '-'
 +Usage: tune2fs [-c max_mounts_count] [-e errors_behavior] [-g group]
 + [-i interval[d|m|w]] [-j] [-J journal_options] [-l]
 + [-m reserved_blocks_percent] [-o [^]mount_options[,...]] [-p mmp_update_interval]
 + [-r reserved_blocks_count] [-u user] [-C mount_count] [-L volume_label]
 + [-M last_mounted_dir] [-O [^]feature[,...]]
 + [-E extended-option[,...]] [-T last_check_time] [-U UUID]
 + [ -I new_inode_size ] device
 +</code>
 +
 +Constatez le résultat de cette commande :
 +
 +<code>
 +[root@centos7 ~]# dumpe2fs -h /dev/sda12
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem volume name:   <none>
 +Last mounted on:          <not available>
 +Filesystem UUID:          ee905f90-e7cd-41a0-aa75-a3eb9e94b183
 +Filesystem magic number:  0xEF53
 +Filesystem revision #:    1 (dynamic)
 +Filesystem features:      ext_attr resize_inode dir_index filetype sparse_super
 +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:       Thu Oct 22 11:40:33 2015
 +Last mount time:          n/a
 +Last write time:          Thu Oct 22 11:43:18 2015
 +Mount count:              0
 +Maximum mount count:      -1
 +Last checked:             Thu Oct 22 11:40:33 2015
 +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:      454137e5-3ce9-40c9-911b-d4274808d86f
 +Journal backup:           inode blocks
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Notez que le drapeau **Filesystem features:      has_journal ...** a été supprimé.
 +</WRAP>
 +
 +Supprimez maintenant l'inode du journal :
 +
 +<code>
 +[root@centos7 ~]# fsck /dev/sda12
 +fsck from util-linux 2.23.2
 +e2fsck 1.42.9 (28-Dec-2013)
 +/dev/sda12: clean, 11/51200 files, 8013/204800 blocks
 +</code>
 +
 +Sous RHEL/CentOS, créez un point de montage pour /dev/sda12 :
 +
 +<code>
 +[root@centos7 ~]# mkdir /mnt/sda12
 +</code>
 +
 +Sous RHEL/CentOS, essayez de monter /dev/sda12 en tant que système de fichiers Ext3. Vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +[root@centos7 ~]# mount -t ext3 /dev/sda12 /mnt/sda12
 +mount: wrong fs type, bad option, bad superblock on /dev/sda12,
 +       missing codepage or helper program, or other error
 +
 +       In some cases useful info is found in syslog - try
 +       dmesg | tail or so.
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Notez l'erreur due au mauvais système de fichiers qui suit l'option **-t**.
 +</WRAP>
 +
 +Montez maintenant le système de fichiers en tant que Ext2 :
 +
 +<code>
 +[root@centos7 ~]# mount -t ext2 /dev/sda12 /mnt/sda12
 +[root@centos7 ~]# 
 +</code>
 +
 +===LAB #8 - Convertir un Système de Fichiers Ext2 en Ext3===
 +
 +Sous RHEL/CentOS, pour replacer le journal sur /dev/sda12, il convient d'utiliser la commande **tune2fs** :
 +
 +<code>
 +[root@centos7 ~]# umount /mnt/sda12
 +
 +[root@centos7 ~]# tune2fs -j /dev/sda12
 +tune2fs 1.42.9 (28-Dec-2013)
 +Creating journal inode: done
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Notez que vous avez du démonter la partition avant d'exécuter la commande **tune2fs**.
 +</WRAP>
 +
 +===LAB #9 - 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.
 +
 +Dans votre VM RHEL/CentOS, créez un système de fichiers sur /dev/sda11 :
 +
 +<code>
 +[root@centos7 ~]# mke2fs -O journal_dev /dev/sda11
 +mke2fs 1.42.9 (28-Dec-2013)
 +Filesystem label=
 +OS type: Linux
 +Block size=1024 (log=0)
 +Fragment size=1024 (log=0)
 +Stride=0 blocks, Stripe width=0 blocks
 +0 inodes, 512000 blocks
 +0 blocks (0.00%) reserved for the super user
 +First data block=1
 +0 block group
 +8192 blocks per group, 8192 fragments per group
 +0 inodes per group
 +Superblock backups stored on blocks: 
 +
 +Zeroing journal device: [root@centos7 ~]#   
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Notez l'utilisation de l'option **-O**.
 +</WRAP>
 +
 +Sous RHEL/CentOS, créez maintenant un système de fichiers Ext3 sur /dev/sda12 en plaçant le journal sur /dev/sda11 :
 +
 +<code>
 +[root@centos7 ~]# mke2fs -j -J device=/dev/sda11 /dev/sda12
 +mke2fs 1.42.9 (28-Dec-2013)
 +Using journal device's blocksize: 1024
 +Filesystem label=
 +OS type: Linux
 +Block size=1024 (log=0)
 +Fragment size=1024 (log=0)
 +Stride=0 blocks, Stripe width=0 blocks
 +51200 inodes, 204800 blocks
 +10240 blocks (5.00%) reserved for the super user
 +First data block=1
 +Maximum filesystem blocks=67371008
 +25 block groups
 +8192 blocks per group, 8192 fragments per group
 +2048 inodes per group
 +Superblock backups stored on blocks: 
 + 8193, 24577, 40961, 57345, 73729
 +
 +Allocating group tables: done                            
 +Writing inode tables: done                            
 +Adding journal to device /dev/sda11: done
 +Writing superblocks and filesystem accounting information: done
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Notez que le journal a été placé sur /dev/sda11 graĉe à l'utilisation de l'option **-J**.
 +</WRAP>
 +
 +===LAB #10 - Modifier la Fréquence de Vérification du Système de Fichiers Ext3===
 +
 +Sous RHEL/CentOS, pour modifiez la fréquence de vérification du système de fichiers sur /dev/sda12, il convient d'utiliser soit l'option **-c**, soit l'option **-i** :
 +
 +<code>
 +[root@centos7 ~]# tune2fs -i 100d /dev/sda12
 +tune2fs 1.42.9 (28-Dec-2013)
 +Setting interval between checks to 8640000 seconds
 +</code>
 +
 +Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez les commandes **dumpe2fs** et **grep** :
 +
 +<code>
 +[root@centos7 ~]# dumpe2fs /dev/sda12 | grep UUID
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem UUID:          80e060ac-f2d1-4e6d-8c56-0ac0baf5bcfc
 +Journal UUID:             58cd37e9-b8d6-40c6-b14d-743f5c0020de
 +</code>
 +
 +====Ext4====
 +
 +Le système de fichiers **Ext4** fut 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 **[[http://fr.wikipedia.org/wiki/Ext4|cette page]]**.
 +
 +===LAB #11 - Créer un Système de Fichiers Ext4===
 +
 +Sous RHEL/CentOS, créez un système de fichiers Ext4 sur **/dev/sda11** :
 +
 +<code>
 +[root@centos7 ~]# mkfs.ext4 /dev/sda11
 +mke2fs 1.42.9 (28-Dec-2013)
 +Filesystem label=
 +OS type: Linux
 +Block size=1024 (log=0)
 +Fragment size=1024 (log=0)
 +Stride=0 blocks, Stripe width=0 blocks
 +128016 inodes, 512000 blocks
 +25600 blocks (5.00%) reserved for the super user
 +First data block=1
 +Maximum filesystem blocks=34078720
 +63 block groups
 +8192 blocks per group, 8192 fragments per group
 +2032 inodes per group
 +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 
 +</code>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# 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]
 + [-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] [-jnqvDFKSV] device [blocks-count]
 +</code>
 +
 +Consultez maintenant les caractéristiques du système de fichier :
 +
 +<code>
 +[root@centos7 ~]# dumpe2fs /dev/sda11 | more
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem volume name:   <none>
 +Last mounted on:          <not available>
 +Filesystem UUID:          6300bd45-458a-40bd-a994-20c8fb202d93
 +Filesystem magic number:  0xEF53
 +Filesystem revision #:    1 (dynamic)
 +Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_i
 +size
 +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
 +Blocks per group:         8192
 +Fragments per group:      8192
 +Inodes per group:         2032
 +Inode blocks per group:   254
 +Flex block group size:    16
 +Filesystem created:       Thu Oct 22 11:51:48 2015
 +--More--
 +</code>
 +
 +===LAB #12 - Ajouter une Etiquette au Système de Fichiers Ext4===
 +
 +Utilisez la commande **e2label** pour associer une étiquette au système de fichiers :
 +
 +<code>
 +[root@centos7 ~]# e2label /dev/sda11 my_ext4
 +[root@centos7 ~]# dumpe2fs /dev/sda11 | more
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem volume name:   my_ext4
 +Last mounted on:          <not available>
 +Filesystem UUID:          6300bd45-458a-40bd-a994-20c8fb202d93
 +Filesystem magic number:  0xEF53
 +Filesystem revision #:    1 (dynamic)
 +Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_i
 +size
 +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
 +Blocks per group:         8192
 +Fragments per group:      8192
 +Inodes per group:         2032
 +Inode blocks per group:   254
 +Flex block group size:    16
 +Filesystem created:       Thu Oct 22 11:51:48 2015
 +--More--
 +</code>
 +
 +<WRAP center round important>
 +**Important** - Notez que l'étiquette doit être de 16 caractères maximum.
 +</WRAP>
 +
 +Sous RHEL/CentOS, créez un point de montage dans **/mnt** et essayez de monter **/dev/sda11** en tant qu'Ext3 :
 +
 +<code>
 +[root@centos7 ~]# mkdir /mnt/sda11
 +
 +[root@centos7 ~]# mount -t ext3 /dev/sda11 /mnt/sda11
 +mount: wrong fs type, bad option, bad superblock on /dev/sda11,
 +       missing codepage or helper program, or other error
 +
 +       In some cases useful info is found in syslog - try
 +       dmesg | tail or so.
 +</code>
 +
 +<WRAP center round important>
 +**Important** - Notez l'erreur qui est signalée.
 +</WRAP>
 +
 +Montez de nouveau la partition **sans** stipuler le type de système de fichiers :
 +
 +<code>
 +[root@centos7 ~]# mount /dev/sda11 /mnt/sda11
 +
 +[root@centos7 ~]# mount | grep sda11
 +/dev/sda11 on /mnt/sda11 type ext4 (rw,relatime,seclabel,data=ordered)
 +</code>
 +
 +<WRAP center round important>
 +**Important** - Constatez que la partition a été monté en tant qu'Ext4.
 +</WRAP>
 +
 +===LAB #13 - Convertir un Système de Fichiers Ext3 en Ext4===
 +
 +Créez un système de fichiers ext3 sur /dev/sda12 :
 +
 +<code>
 +[root@centos7 ~]# mkfs.ext3 /dev/sda12
 +mke2fs 1.42.9 (28-Dec-2013)
 +Filesystem label=
 +OS type: Linux
 +Block size=1024 (log=0)
 +Fragment size=1024 (log=0)
 +Stride=0 blocks, Stripe width=0 blocks
 +51200 inodes, 204800 blocks
 +10240 blocks (5.00%) reserved for the super user
 +First data block=1
 +Maximum filesystem blocks=67371008
 +25 block groups
 +8192 blocks per group, 8192 fragments per group
 +2048 inodes per group
 +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 
 +</code>
 +
 +Montez maintenant **/dev/sda12** sur /mnt/sda12 :
 +
 +<code>
 +[root@centos7 ~]# mount /dev/sda12 /mnt/sda12
 +
 +[root@centos7 ~]# ls -l /mnt/sda12
 +total 12
 +drwx------. 2 root root 12288 Oct 22 11:57 lost+found
 +</code>
 +
 +Créez le fichier **/mnt/sda12/check_file** :
 +
 +<code>
 +[root@centos7 ~]# touch /mnt/sda12/check_file
 +</code>
 +
 +Injectez la chaine **check file** dans le fichier /mnt/sda12/check_file puis démontez /dev/sda12 :
 +
 +<code>
 +[root@centos7 ~]# echo "check file" > /mnt/sda12/check_file
 +
 +[root@centos7 ~]# umount /dev/sda12
 +</code>
 +
 +Exécutez e2fsck sur /dev/sda12 :
 +
 +<code>
 +[root@centos7 ~]# e2fsck /dev/sda12
 +e2fsck 1.42.9 (28-Dec-2013)
 +/dev/sda12: clean, 12/51200 files, 12128/204800 blocks
 +</code>
 +
 +Convertissez /dev/sda12 en Ext4 :
 +
 +<code>
 +[root@centos7 ~]# tune2fs -O extents,uninit_bg,dir_index /dev/sda12
 +tune2fs 1.42.9 (28-Dec-2013)
 +</code>
 +
 +Optimisez le système de fichiers :
 +
 +<code>
 +[root@centos7 ~]# e2fsck -fDC0 /dev/sda12
 +e2fsck 1.42.9 (28-Dec-2013)
 +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/sda12: ***** FILE SYSTEM WAS MODIFIED *****
 +/dev/sda12: 12/51200 files (0.0% non-contiguous), 12128/204800 blocks
 +</code>
 +
 +Essayez de monter **/dev/sda12** en tant qu'Ext3 :
 +
 +<code>
 +[root@centos7 ~]# mount -t ext3 /dev/sda12 /mnt/sda12
 +mount: wrong fs type, bad option, bad superblock on /dev/sda12,
 +       missing codepage or helper program, or other error
 +
 +       In some cases useful info is found in syslog - try
 +       dmesg | tail or so.
 +</code>
 +
 +Montez /dev/sda12 sans spécifier le type de fichiers Ext3 et vérifiez le contenu du fichier **check_file** :
 +
 +<code>
 +[root@centos7 ~]# mount /dev/sda12 /mnt/sda12
 +
 +[root@centos7 ~]# ls -l /mnt/sda12
 +total 14
 +-rw-r--r--. 1 root root    11 Oct 22 11:59 check_file
 +drwx------. 2 root root 12288 Oct 22 11:57 lost+found
 +
 +[root@centos7 ~]# cat /mnt/sda12/check_file
 +check file
 +</code>
 +
 +Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez les commandes **dumpe2fs** et **grep** :
 +
 +<code>
 +[root@centos7 ~]# dumpe2fs /dev/sda11 | grep UUID
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem UUID:          6300bd45-458a-40bd-a994-20c8fb202d93
 +
 +[root@centos7 ~]# dumpe2fs /dev/sda12 | grep UUID
 +dumpe2fs 1.42.9 (28-Dec-2013)
 +Filesystem UUID:          090106dc-6331-41fe-aab6-0e9138af8f9e
 +</code>
 +
 +====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 7.
 +
 +Debian propose aussi une version 32 bits du système de fichiers XFS.
 +
 +Pour plus d'informations concernant XFS, consultez **[[http://en.wikipedia.org/wiki/XFS|cette page]]**.
 +
 +===LAB #14 - Créer un Système de Fichiers XFS===
 +
 +Démontez **/dev/sda12** :
 +
 +<code>
 +SUSE12SP1:~ # umount /dev/sda12
 +</code>
 +
 +Créez un système de fichiers XFS sur la partition **/dev/sda12** :
 +
 +<code>
 +[root@centos7 ~]# mkfs.xfs /dev/sda12
 +mkfs.xfs: /dev/sda12 appears to contain an existing filesystem (ext4).
 +mkfs.xfs: Use the -f option to force overwrite.
 +[root@centos7 ~]# mkfs.xfs -f /dev/sda12
 +meta-data=/dev/sda12             isize=256    agcount=4, agsize=12800 blks
 +                               sectsz=512   attr=2, projid32bit=1
 +                               crc=0        finobt=0
 +data                           bsize=4096   blocks=51200, imaxpct=25
 +                               sunit=0      swidth=0 blks
 +naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
 +log      =internal log           bsize=4096   blocks=853, version=2
 +                               sectsz=512   sunit=0 blks, lazy-count=1
 +realtime =none                   extsz=4096   blocks=0, rtextents=0
 +</code>
 +
 +<WRAP center round important>
 +**Important** - Notez l'utilisation de l'option **-f** afin d'écraser le système de fichiers Ext4 existant.
 +</WRAP>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# mkfs.xfs --help
 +mkfs.xfs: invalid option -- '-'
 +unknown option -- 
 +Usage: mkfs.xfs
 +/* blocksize */ [-b log=n|size=num]
 +/* metadata */ [-m crc=0|1,finobt=0|1]
 +/* data subvol */ [-d agcount=n,agsize=n,file,name=xxx,size=num,
 +     (sunit=value,swidth=value|su=num,sw=num|noalign),
 +     sectlog=n|sectsize=num
 +/* force overwrite */ [-f]
 +/* inode size */ [-i log=n|perblock=n|size=num,maxpct=n,attr=0|1|2,
 +     projid32bit=0|1]
 +/* no discard */ [-K]
 +/* log subvol */ [-l agnum=n,internal,size=num,logdev=xxx,version=n
 +     sunit=value|su=num,sectlog=n|sectsize=num,
 +     lazy-count=0|1]
 +/* label */ [-L label (maximum 12 characters)]
 +/* naming */ [-n log=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 log=n|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).
 +</code>
 +
 +Consultez maintenant les caractéristiques du système de fichier :
 +
 +<code>
 +[root@centos7 ~]# xfs_info /dev/sda12
 +xfs_info: /dev/sda12 is not a mounted XFS filesystem
 +
 +[root@centos7 ~]# mkdir /mnt/sda12
 +
 +[root@centos7 ~]# mount -t xfs /dev/sda12 /mnt/sda12
 +
 +[root@centos7 ~]# xfs_info /dev/sda12
 +meta-data=/dev/sda12             isize=256    agcount=4, agsize=12800 blks
 +                               sectsz=512   attr=2, projid32bit=1
 +                               crc=0        finobt=0
 +data                           bsize=4096   blocks=51200, imaxpct=25
 +                               sunit=0      swidth=0 blks
 +naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
 +log      =internal               bsize=4096   blocks=853, version=2
 +                               sectsz=512   sunit=0 blks, lazy-count=1
 +realtime =none                   extsz=4096   blocks=0, rtextents=0
 +</code>
 +
 +<WRAP center round important>
 +Notez que la partition XFS doit être monté pour pouvoir utiliser la commande **xfs_info**.
 +</WRAP>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# xfs_info --help
 +/sbin/xfs_info: illegal option -- -
 +Usage: xfs_info [-V] [-t mtab] mountpoint
 +</code>
 +
 +===LAB #15 - Ajouter une Etiquette au Système de Fichiers XFS===
 +
 +Utilisez la commande **xfs_admin** pour associer une étiquette au système de fichiers :
 +
 +<code>
 +[root@centos7 ~]# xfs_admin -L my_xfs /dev/sda12
 +xfs_admin: /dev/sda12 contains a mounted filesystem
 +
 +fatal error -- couldn't initialize XFS library
 +
 +[root@centos7 ~]# umount /dev/sda12
 +
 +[root@centos7 ~]# xfs_admin -L my_xfs /dev/sda12
 +writing all SBs
 +new label = "my_xfs"
 +</code>
 +
 +<WRAP center round important>
 +Notez que la partition XFS doit être démonté pour pouvoir utiliser la commande **xfs_admin**.
 +</WRAP>
 +
 +Pour voir l'étiquette, utilisez la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# xfs_admin -l /dev/sda12
 +label = "my_xfs"
 +</code>
 +
 +<WRAP center round important>
 +Notez que l'étiquette doit être de 12 caractères maximum.
 +</WRAP>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 ~]# xfs_admin --help
 +/sbin/xfs_admin: illegal option -- -
 +Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device
 +</code>
 +
 +Dernièrement, pour obtenir seul l'UUID du système de fichiers, utilisez la commande **xfs-admin** et l'option **-u** :
 +
 +<code>
 +[root@centos7 ~]# xfs_admin -u /dev/sda12
 +UUID = 15db1b62-0866-4aa4-9ac1-3ac325a4e20f
 +</code>
 +
 +<WRAP center round 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.
 +</WRAP>
 +
 +=====Autres Systèmes de Fichiers=====
 +
 +<WRAP center round important>
 +**Important** - Veuillez noter que le support des systèmes de fichiers **ReiserFS**, **JFS** et **Btrfs** est **absent** du noyau des distributions de Red Hat.
 +</WRAP>
 +
 +====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 **[[http://en.wikipedia.org/wiki/ReiserFS|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 **[[http://en.wikipedia.org/wiki/JFS_(file_system)|cette page]]**.
 +
 +====Btrfs====
 +
 +**[[https://btrfs.wiki.kernel.org/|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**.
 +
 +<code>
 +[root@centos7 ~]# swapon -s
 +Filename Type Size Used Priority
 +/dev/sda3                              partition 3071996 0 -1
 +</code>
 +
 +<WRAP center round important>
 +**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.
 +</WRAP>
 +
 +===Options de la Commande===
 +
 +Les options de la commande swapon sont :
 +
 +<code>
 +[root@centos7 ~]# swapon --help
 +
 +Usage:
 + swapon [options] [<spec>]
 +
 +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
 + -p, --priority <prio>    specify the priority of the swap device
 + -s, --summary            display summary about used swap devices
 +     --show[=<columns>  display summary in definable table
 +     --noheadings         don't print headings, use with --show
 +     --raw                use the raw output format, use with --show
 +     --bytes              display swap size in bytes in --show output
 + -v, --verbose            verbose mode
 +
 + -h, --help     display this help and exit
 + -V, --version  output version information and exit
 +
 +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. (swapon)
 + pages   : discard freed pages before they are reused.
 + * if no policy is selected both discard types are enabled. (default)
 +
 +Available columns (for --show):
 + NAME  device file or partition path
 + TYPE  type of the device
 + SIZE  size of the swap area
 + USED  bytes in use
 + PRIO  swap priority
 +
 +For more details see swapon(8).
 +</code>
 +
 +<WRAP center round important>
 +**Important** : L'option **-p** de la commande **swapon** permet de régler la priorité.
 +</WRAP>
 +
 +====La Commande swapoff====
 +
 +Dans le cas de notre exemple, la partition de swap se trouve sur **/dev/sda3**. Pour la désactiver, il convient de saisir la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# swapoff /dev/sda3
 +[root@centos7 ~]# swapon -s
 +[root@centos7 ~]# 
 +</code>
 +
 +===Options de la Commande===
 +
 +<code>
 +[root@centos7 ~]# swapoff --help
 +
 +Usage:
 + swapoff [options] [<spec>]
 +
 +Options:
 + -a, --all              disable all swaps from /proc/swaps
 + -v, --verbose          verbose mode
 +
 + -h, --help     display this help and exit
 + -V, --version  output version information and exit
 +
 +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).
 +</code>
 +
 +====LAB #16 - 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 :
 +
 +<code>
 +[root@centos7 ~]# dd if=/dev/zero of=/swap bs=1024k count=256
 +256+0 records in
 +256+0 records out
 +268435456 bytes (268 MB) copied, 0.263327 s, 1.0 GB/s
 +</code>
 +
 +Pour préparer le fichier en tant qu'espace de swap, saisissez la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# mkswap /swap
 +Setting up swapspace version 1, size = 262140 KiB
 +no label, UUID=30b30bab-19b2-42f5-bec7-8a6f9eca1b3c
 +</code>
 +
 +Pour activer le fichier avec une priorité de **3**, saisissez la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# swapon -p3 /swap
 +swapon: /swap: insecure permissions 0644, 0600 suggested.
 +[root@centos7 ~]# swapon /dev/sda3
 +</code>
 +
 +Pour visualiser les éspaces swap, saisissez la commande suivante :
 +
 +<code>
 +[root@centos7 ~]# swapon -s
 +Filename Type Size Used Priority
 +/swap                                  file 262140 0 3
 +/dev/sda3                              partition 3071996 0 -1
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Le fichier de swap ayant une priorité de 3 sera utilisé avant la partition de swap ayant une priorité de -1.
 +</WRAP>
 +
 +<WRAP center round important>
 +**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.
 +</WRAP>
 +
 +Désactivez maintenant le fichier swap :
 +
 +<code>
 +[root@centos7 ~]# swapoff /swap
 +[root@centos7 ~]# swapon -s
 +Filename Type Size Used Priority
 +/dev/sda3                              partition 3071996 0 -1
 +</code>
 +
 +Supprimez maintenant le fichier de swap :
 +
 +<code>
 +[root@centos7 ~]# rm /swap
 +rm: remove regular file ‘/swap’? o
 +</code>
 +
 +=====Gestion des Droits=====
 +
 +Dans sa conception de base, Linux utilise une approche sécurité de type **DAC**. Cette approche est maintenue dans la mise en place et l'utilisation des **ACL** et les **Attributs Etendus Ext2/Ext3/Ext4, JFS, ReiserFS, XFS et Btrfs** :
 +
 +^ Type de Sécurité  ^ Nom ^ Description ^
 +| DAC |  //Discretional Access Control//  | L'accès aux objets est en fonction de l'identité (utilisateur,groupe). Un utilisateur peut rendre accessible aux autres ses propres objets. |
 +
 +====Préparation====
 +
 +Dans votre répertoire personnel, créez un fichier tux.jpg grâce à la commande **touch**:
 +
 +  $ touch tux.jpg [Entrée]
 +
 +<code>
 +[trainee@centos7 ~]$ pwd
 +/home/trainee
 +[trainee@centos7 ~]$ touch tux.jpg
 +[trainee@centos7 ~]$ ls -l | grep tux.jpg
 +-rw-rw-r--. 1 trainee trainee    0 Oct 20 07:21 tux.jpg
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Notez que le fichier créé est un fichier **texte**. En effet, Linux ne tient pas compte de l'extension **.jpg**
 +</WRAP>
 +
 +====Les Droits Unix Simples====
 +
 +Les autorisations ou droits d’accès en Linux sont communiqués comme suit :
 +
 +{{free:fenestros_essentiels_img_9.jpg}}
 +
 +ou r = lecture, w = écriture et x = exécutable
 +
 +Dans chaque inode est stocké le numéro de l’utilisateur à qui appartient le fichier concerné ainsi que le numéro du groupe. Quand le fichier est ouvert le système compare le numéro de l’utilisateur (UID) avec le numéro de l’utilisateur stocké dans l’inode ( Utilisateur de Référence ). Si ces deux numéros sont identiques, l’utilisateur obtient les droits du propriétaire du fichier. Si les numéros diffèrent, le système vérifie si l’utilisateur est dans le groupe référencé dans l’inode. Si oui, l’utilisateur aura les droits spécifiés pour le groupe. Si aucune condition n’est remplie, l’utilisateur se voit attribuer les droits des «autres».
 +
 +Les droits pour les répertoires sont légèrement différents :
 +
 +^ r | Les éléments du répertoire sont accessible en lecture ( lister ) |
 +^ w | Les éléments du répertoire sont modifiables ( création et suppression ). |
 +^ x | Le nom du répertoire peut apparaître dans un chemin d'accès. |
 +
 +===La Modification des Droits===
 +
 +== La Commande chmod==
 +
 +==Mode Symbolique==
 +
 +Afin de modifier les droits d’accès aux fichiers, on utilise la commande chmod dont le syntaxe est le suivant :
 +
 +chmod [ -R ] catégorie opérateur permissions nom_du_fichier
 +
 +ou
 +
 +chmod [ -R ] ugoa +-= rwxXst nom_du_fichier
 +
 +
 +
 +^  u  | user |
 +^  g  | group |
 +^  o  | other |
 +^  a  | all |
 +^  +  | autorise un  accès |
 +^  -  | interdit  un accès |
 +^  =  | autorise exclusivement l’accès indiqué |
 +^  r  | read |
 +^  w  | write |
 +^  x  | execute |
 +^  X  | exécution si la cible est un répertoire ou si c'est un\\ fichier est déjà exécutable pour une des //catégories// (ugo)|
 +^  s  | SUID/SGID bit |
 +^  t  | sticky bit |
 +
 +par exemple :
 +
 +  $ chmod o+w tux.jpg [Entrée]
 +
 +donnera aux autres l’accès en écriture sur le fichier tux.jpg :
 +
 +<code>
 +[trainee@centos7 ~]$ chmod o+w tux.jpg
 +[trainee@centos7 ~]$ ls -l | grep tux.jpg
 +-rw-rw-rw-. 1 trainee trainee    0 Oct 20 07:21 tux.jpg
 +</code>
 +
 +Tandis que :
 +
 +  $ chmod ug-w tux.jpg [Entrée]
 +
 +ôtera les droit d’accès en écriture pour l’utilisateur et le groupe :
 +
 +<code>
 +[trainee@centos7 ~]$ chmod ug-w tux.jpg
 +[trainee@centos7 ~]$ ls -l | grep tux.jpg
 +-r--r--rw-. 1 trainee trainee    0 Oct 20 07:21 tux.jpg
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Seul le propriétaire du fichier ou root peuvent modifier les permissions.
 +</WRAP>
 +
 +==Mode Octal==
 +
 +La commande chmod peut également être utilisée avec une représentation octale ( base de 8 ). Les valeurs octales des droits d’accès sont :
 +
 +{{free:fenestros_essentiels_img_12.jpg}}
 +
 +<WRAP center round important>
 +**Important** : Ainsi les droits rwx rwx rwx correspondent à un chiffre de 777.
 +</WRAP>
 +
 +La commande chmod prend donc la forme suivante:
 +
 +  chmod [ -R ] mode_octal nom_fichier
 +
 +La commande suivante :
 +
 +  $ chmod 644 tux.jpg [Entrée]
 +
 +Correspond donc à l’attribution des droits : rw- r-- r--
 +
 +<code>
 +[trainee@centos7 ~]$ chmod 644 tux.jpg
 +[trainee@centos7 ~]$ ls -l | grep tux.jpg
 +-rw-r--r--. 1 trainee trainee    0 Oct 20 07:21 tux.jpg
 +</code>
 +
 +<WRAP center round important>
 +**Important** : Les droits d’accès par défaut lors de la création d’un objet sont :
 +^ Répertoires | rwx rwx rwx | 777 | 
 +^ Fichier normal | rw– rw– rw- | 666 |
 +</WRAP>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[trainee@centos7 ~]$ chmod --help
 +Usage: chmod [OPTION]... MODE[,MODE]... FILE...
 +  or:  chmod [OPTION]... OCTAL-MODE FILE...
 +  or:  chmod [OPTION]... --reference=RFILE FILE...
 +Change the mode of each FILE to MODE.
 +With --reference, change the mode of each FILE to that of RFILE.
 +
 +  -c, --changes          like verbose but report only when a change is made
 +  -f, --silent, --quiet  suppress most error messages
 +  -v, --verbose          output a diagnostic for every file processed
 +      --no-preserve-root  do not treat '/' specially (the default)
 +      --preserve-root    fail to operate recursively on '/'
 +      --reference=RFILE  use RFILE's mode instead of MODE values
 +  -R, --recursive        change files and directories recursively
 +      --help     display this help and exit
 +      --version  output version information and exit
 +
 +Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.
 +
 +GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
 +For complete documentation, run: info coreutils 'chmod invocation'
 +</code>
 +
 +==La Commande umask==
 +
 +L’utilisateur peut changer sa masque de permissions défaut lors de la création d’objets en utilisant la commande umask. 
 +
 +La valeur par défaut de l'umask sous RHEL/CentOS est différente pour un utilisateur normal et pour root :
 +
 +<code>
 +[trainee@centos7 ~]$ umask
 +0002
 +[trainee@centos7 ~]$ su -
 +Password: fenestros
 +Last login: Tue Oct 20 05:47:19 CEST 2015 on pts/0
 +[root@centos7 ~]# umask
 +0022
 +[root@centos7 ~]# exit
 +logout
 +</code>
 +
 +Par exemple dans le cas où l’utilisateur souhaite que les fichiers créés dans le futur comportent des droits d’écriture et de lecture pour l’utilisateur mais uniquement des droits de lecture pour le groupe et pour les autres, il utiliserait la commande :
 +
 +  $ umask 022 [Entrée]
 +
 +avant de créer son fichier. 
 +
 +<WRAP center round important>
 +umask sert à enlever des droits des droits maximaux :
 +^ Masque maximum lors de la création d’un fichier | rw- rw- rw- | 666 |
 +^ Droits à retirer | --- -w- -w- | 022 |
 +^ Résultat | rw-  r--  r-- | 644 |
 +</WRAP>
 +
 +Dans l'exemple qui suit, on utilise la commande touch pour créer un fichier vide ayant les nouveaux droits par défaut :
 +
 +<code>
 +[trainee@centos7 ~]$ umask 044
 +[trainee@centos7 ~]$ touch tux1.jpg
 +[trainee@centos7 ~]$ ls -l | grep tux1.jpg
 +-rw--w--w-. 1 trainee trainee    0 Oct 20 07:38 tux1.jpg
 +[trainee@centos7 ~]$ umask 002
 +[trainee@centos7 ~]$ umask
 +0002
 +</code>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[trainee@centos7 ~]$ help umask
 +umask: umask [-p] [-S] [mode]
 +    Display or set file mode mask.
 +    
 +    Sets the user file-creation mask to MODE.  If MODE is omitted, prints
 +    the current value of the mask.
 +    
 +    If MODE begins with a digit, it is interpreted as an octal number;
 +    otherwise it is a symbolic mode string like that accepted by chmod(1).
 +    
 +    Options:
 +      -p if MODE is omitted, output in a form that may be reused as input
 +      -S makes the output symbolic; otherwise an octal number is output
 +    
 +    Exit Status:
 +    Returns success unless MODE is invalid or an invalid option is given.
 +</code>
 +
 +===Modifier le propriétaire ou le groupe===
 +
 +<WRAP center round important>
 +**Important** - Le changement de propriétaire d’un fichier se fait uniquement par l'administrateur système - root.
 +</WRAP>
 +
 +==La Commande chown==
 +
 +Dans le cas du fichier tux.jpg appartenant à trainee, root peut changer le propriétaire de trainee à root avec la commande suivante :
 +
 +  # chown root tux.jpg [Entrée]
 +
 +<code>
 +[trainee@centos7 ~]$ su -
 +Password: fenestros
 +Last login: Tue Oct 20 07:35:01 CEST 2015 on pts/0
 +[root@centos7 ~]# cd /home/trainee
 +[root@centos7 trainee]# chown root tux.jpg 
 +[root@centos7 trainee]# ls -l | grep tux.jpg
 +-rw-r--r--. 1 root    trainee    0 Oct 20 07:21 tux.jpg
 +</code>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 trainee]# chown --help
 +Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE...
 +  or:  chown [OPTION]... --reference=RFILE FILE...
 +Change the owner and/or group of each FILE to OWNER and/or GROUP.
 +With --reference, change the owner and group of each FILE to those of RFILE.
 +
 +  -c, --changes          like verbose but report only when a change is made
 +  -f, --silent, --quiet  suppress most error messages
 +  -v, --verbose          output a diagnostic for every file processed
 +      --dereference      affect the referent of each symbolic link (this is
 +                         the default), rather than the symbolic link itself
 +  -h, --no-dereference   affect symbolic links instead of any referenced file
 +                         (useful only on systems that can change the
 +                         ownership of a symlink)
 +      --from=CURRENT_OWNER:CURRENT_GROUP
 +                         change the owner and/or group of each file only if
 +                         its current owner and/or group match those specified
 +                         here.  Either may be omitted, in which case a match
 +                         is not required for the omitted attribute
 +      --no-preserve-root  do not treat '/' specially (the default)
 +      --preserve-root    fail to operate recursively on '/'
 +      --reference=RFILE  use RFILE's owner and group rather than
 +                         specifying OWNER:GROUP values
 +  -R, --recursive        operate on files and directories recursively
 +
 +The following options modify how a hierarchy is traversed when the -R
 +option is also specified.  If more than one is specified, only the final
 +one takes effect.
 +
 +  -H                     if a command line argument is a symbolic link
 +                         to a directory, traverse it
 +  -L                     traverse every symbolic link to a directory
 +                         encountered
 +  -P                     do not traverse any symbolic links (default)
 +
 +      --help     display this help and exit
 +      --version  output version information and exit
 +
 +Owner is unchanged if missing.  Group is unchanged if missing, but changed
 +to login group if implied by a ':' following a symbolic OWNER.
 +OWNER and GROUP may be numeric as well as symbolic.
 +
 +Examples:
 +  chown root /u        Change the owner of /u to "root".
 +  chown root:staff /u  Likewise, but also change its group to "staff".
 +  chown -hR root /u    Change the owner of /u and subfiles to "root".
 +
 +GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
 +For complete documentation, run: info coreutils 'chown invocation'
 +</code>
 +
 +==La Commande chgrp==
 +
 +Le même cas de figure s’applique au groupe :
 +
 +  # chgrp root tux.jpg [Entrée]
 +
 +affectera le fichier au groupe root :
 +
 +<code>
 +[root@centos7 trainee]# chgrp root tux.jpg
 +[root@centos7 trainee]# ls -l | grep tux.jpg
 +-rw-r--r--. 1 root    root       0 Oct 20 07:21 tux.jpg
 +</code>
 +
 +<WRAP center round important>
 +**Rappel** : Seul root peut changer le propriétaire d'un fichier.
 +</WRAP>
 +
 +<WRAP center round important>
 +**Important** : Le droit de supprimer un fichier dépend des droits sur le répertoire dans lequel le fichier est stocké et non des droits du fichier lui-même.
 +</WRAP>
 +
 +Les options de cette commande sont :
 +
 +<code>
 +[root@centos7 trainee]# chgrp --help
 +Usage: chgrp [OPTION]... GROUP FILE...
 +  or:  chgrp [OPTION]... --reference=RFILE FILE...
 +Change the group of each FILE to GROUP.
 +With --reference, change the group of each FILE to that of RFILE.
 +
 +  -c, --changes          like verbose but report only when a change is made
 +  -f, --silent, --quiet  suppress most error messages
 +  -v, --verbose          output a diagnostic for every file processed
 +      --dereference      affect the referent of each symbolic link (this is
 +                         the default), rather than the symbolic link itself
 +  -h, --no-dereference   affect symbolic links instead of any referenced file
 +                         (useful only on systems that can change the
 +                         ownership of a symlink)
 +      --no-preserve-root  do not treat '/' specially (the default)
 +      --preserve-root    fail to operate recursively on '/'
 +      --reference=RFILE  use RFILE's group rather than specifying a
 +                         GROUP value
 +  -R, --recursive        operate on files and directories recursively
 +
 +The following options modify how a hierarchy is traversed when the -R
 +option is also specified.  If more than one is specified, only the final
 +one takes effect.
 +
 +  -H                     if a command line argument is a symbolic link
 +                         to a directory, traverse it
 +  -L                     traverse every symbolic link to a directory
 +                         encountered
 +  -P                     do not traverse any symbolic links (default)
 +
 +      --help     display this help and exit
 +      --version  output version information and exit
 +
 +Examples:
 +  chgrp staff /u      Change the group of /u to "staff".
 +  chgrp -hR staff /u  Change the group of /u and subfiles to "staff".
 +
 +GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
 +For complete documentation, run: info coreutils 'chgrp invocation'
 +</code>
 +
 +====Les Droits Unix Etendus====
 +
 +===SUID/SGID bit===
 +
 +Malgré ce que vous venez de voir, dans la première des deux fenêtres ci-dessous, vous noterez que le fichier **passwd** se trouvant dans le répertoire **/etc** possède les permissions **rw- r-- r--** et qu'il appartient à **root**. Autrement dit **seul** root peut écrire dans ce fichier. Or, quand un utilisateur normal change son mot de passe, il écrit dans ce fichier. Ceci semble donc être une contradiction.
 +
 +<code>
 +[root@centos7 trainee]# ls -l /etc/passwd /usr/bin/passwd
 +-rw-r--r--. 1 root root  2062 Oct 19 15:38 /etc/passwd
 +-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
 +</code>
 +
 +Pour remédier à cette apparente contradiction, Linux dispose de deux droits d’accès étendus :
 +
 +  * Set %%UserID%% bit ( SUID bit )
 +  * Set %%GroupID%% bit ( SGID bit )
 +
 +Quand le SUID bit est placé sur un programme, l’utilisateur qui lance ce programme se voit affecté le numéro d’utilisateur du propriétaire de ce programme et ce pour la durée de son exécution.
 +
 +Dans le cas du changement de mot de passe, chaque utilisateur qui lance le programme /usr/bin/passwd se trouve temporairement avec le numéro d’utilisateur du propriétaire du programme /usr/bin/passwd, c’est à dire root. De cette façon, l’utilisateur peut intervenir sur le fichier /etc/passwd. Ce droit est indiqué par la lettre s à la place de la lettre x.
 +
 +La même fonction existe pour le groupe à l’aide du SGID bit.
 +
 +Pour assigner les droits, vous utiliserez la commande chmod :
 +
 +  * chmod u+s nom_du_fichier
 +  * chmod g+s nom_du_fichier
 +
 +En base huit les valeurs sont les suivants :
 +
 +  * SUID = 4000
 +  * SGID = 2000
 +
 +<WRAP center round important>
 +**Important** : Afin d'identifier les exécutables ayant le SGID ou SUID bit, utilisez la commande suivante :
 +
 +  # find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls {} \; [Entrée]
 +
 +</WRAP>
 +
 +===Inheritance Flag===
 +
 +Le SGID bit peut également être affecté à un répertoire. De cette façon, les fichiers et répertoires créés à l'intérieur auront comme groupe le groupe du répertoire parent. Ce droit s'appelle donc l'**Inheritance Flag** ou le **Drapeau d'Héritage**.
 +
 +Par exemple :
 +
 +<code>
 +[root@centos7 trainee]# cd /tmp
 +[root@centos7 tmp]# mkdir inherit
 +[root@centos7 tmp]# chown root:trainee inherit
 +[root@centos7 tmp]# chmod g+s inherit
 +[root@centos7 tmp]# touch inherit/test.txt
 +[root@centos7 tmp]# mkdir inherit/testrep
 +[root@centos7 tmp]# cd inherit; ls -l
 +total 0
 +drwxr-sr-x. 2 root trainee 6 Oct 20 07:58 testrep
 +-rw-r--r--. 1 root trainee 0 Oct 20 07:58 test.txt
 +</code> 
 +
 +<WRAP center round important>
 +**Important** : Notez que malgré le fait que root a créé les deux objets, ceux-ci ne sont pas associés avec le groupe **root** mais avec le groupe **trainee**, le groupe du répertoire parent (inherit). Notez aussi que le système a posé le drapeau d'héritage sur le sous-répertoire **testrep**.
 +</WRAP>
 +
 +===Sticky bit===
 +
 +Il existe un dernier cas qui s’appelle le sticky bit. Le sticky bit est utilisé pour des répertoires ou tout le monde a tous les droits. Dans ce cas, tout le monde peut supprimer des fichiers dans le répertoire. En ajoutant le sticky bit, uniquement le propriétaire du fichier peut le supprimer.
 +
 +  # chmod o+t /répertoire 
 +
 +ou 
 +
 +  # chmod 1777 /répertoire
 +
 +Par exemple la ligne de commande:
 +
 +  # mkdir /tmp/repertoire_public; cd /tmp; chmod o+t repertoire_public [Entrée]
 +
 +ou
 +
 +  # mkdir /tmp/repertoire_public; cd /tmp; chmod 1777 repertoire_public [Entrée]
 +
 +créera un répertoire **repertoire_public** dans /tmp avec les droits suivants :
 +
 +<code>
 +[root@centos7 inherit]# mkdir /tmp/repertoire_public; cd /tmp; chmod o+t repertoire_public
 +[root@centos7 tmp]# ls -l | grep repertoire_public
 +drwxr-xr-t. 2 root    root         6 Oct 20 07:59 repertoire_public
 +</code>
 +
 +====Les Droits Unix Avancés====
 +
 +===Les ACL===
 +
 +Au delà des droits étendus d'Unix, Linux utilise un système d'ACL pour permettre une meilleure gestion des droits sur des fichiers.
 +
 +Pour connaître les ACL positionnés sur un fichier, il convient d'utiliser la commande **getfacl** :
 +
 +  # getfacl /home/trainee/tux.jpg [Entrée]
 +
 +En utilisant cette commande, vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +[root@centos7 tmp]# getfacl /home/trainee/tux.jpg
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/tux.jpg
 +# owner: root
 +# group: root
 +user::rw-
 +group::r--
 +other::r--
 +
 +</code>
 +
 +Pour positionner des ACL sur un fichier, il convient d'utiliser la commande **setfacl** :
 +
 +  # setfacl --set u::rwx,g::rx,o::-,u:trainee:rw /home/trainee/tux.jpg [Entrée]
 +
 +Utilisez la commande **getfacl** pour visualiser le résultat :
 +
 +  # getfacl /home/trainee/tux.jpg [Entrée]
 +
 +Vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +[root@centos7 tmp]# setfacl --set u::rwx,g::rx,o::-,u:trainee:rw /home/trainee/tux.jpg
 +[root@centos7 tmp]# getfacl /home/trainee/tux.jpg
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/tux.jpg
 +# owner: root
 +# group: root
 +user::rwx
 +user:trainee:rw-
 +group::r-x
 +mask::rwx
 +other::---
 +
 +</code>
 +
 +<WRAP center round important>
 +**Important** - Veuillez noter l'apparition de la ligne **mask**. Le mask indique les permissions maximales qui peuvent être acccordées à un utilisateur ou un groupe tiers.
 +</WRAP>
 +
 +Regardez maintenant l'effet des ACL sur un répertoire. Créez le répertoire /home/trainee/rep1 :
 +
 +  # mkdir /home/trainee/rep1 [Entrée]
 +
 +Positionnez des ACL le répertoire avec la commande **setfacl** :
 +
 +  # setfacl --set d:u::r,d:g::-,d:o::- /home/trainee/rep1 [Entrée]
 +
 +Notez l'utilisation de la lettre **d** pour indiquer une permission //par défaut//.
 +
 +Créez maintenant un fichier appelé fichier1 dans /home/trainee/rep1 :
 +
 +  # touch /home/trainee/rep1/fichier1 [Entrée]
 +
 +Utilisez la commande **getfacl** pour visualiser le résultat :
 +
 +  # getfacl /home/trainee/rep1 [Entrée]
 +
 +  # getfacl home/trainee/rep1/fichier1 [Entrée]
 +
 +Vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +[root@centos7 tmp]# mkdir /home/trainee/rep1
 +[root@centos7 tmp]# setfacl --set d:u::r,d:g::-,d:o::- /home/trainee/rep1
 +[root@centos7 tmp]# touch /home/trainee/rep1/fichier1
 +[root@centos7 tmp]# getfacl /home/trainee/rep1
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/rep1
 +# owner: root
 +# group: root
 +user::rwx
 +group::r-x
 +other::r-x
 +default:user::r--
 +default:group::---
 +default:other::---
 +
 +[root@centos7 tmp]# getfacl /home/trainee/rep1/fichier1
 +getfacl: Removing leading '/' from absolute path names
 +# file: home/trainee/rep1/fichier1
 +# owner: root
 +# group: root
 +user::r--
 +group::---
 +other::---
 +
 +</code>
 +
 +Notez que le fichier créé possède les ACL positionnés sur le répertoire rep1.
 +
 +Dernièrement, les systèmes de sauvegarde classiques sous Linux ne peuvent pas sauvegarder les ACL, sauf l'outil **star**. Si vous n'utilisez pas **star**, il convient donc de sauvegarder les ACL dans un fichier grâce à la commande suivante :
 +
 +  # getfacl -R --skip-base . > backup.acl [Entrée]
 +
 +La restauration des ACL se fait avec la commande **setfacl** :
 +
 +  # setfacl --restore=backup.acl [Entrée]
 +
 +Les options de la commande **getfacl** sont :
 +
 +<code>
 +[root@centos7 tmp]# getfacl --help
 +getfacl 2.2.51 -- get file access control lists
 +Usage: getfacl [-aceEsRLPtpndvh] file ...
 +  -a,  --access           display the file access control list only
 +  -d, --default           display the default access control list only
 +  -c, --omit-header       do not display the comment header
 +  -e, --all-effective     print all effective rights
 +  -E, --no-effective      print no effective rights
 +  -s, --skip-base         skip files that only have the base entries
 +  -R, --recursive         recurse into subdirectories
 +  -L, --logical           logical walk, follow symbolic links
 +  -P, --physical          physical walk, do not follow symbolic links
 +  -t, --tabular           use tabular output format
 +  -n, --numeric           print numeric user/group identifiers
 +  -p, --absolute-names    don't strip leading '/' in pathnames
 +  -v, --version           print version and exit
 +  -h, --help              this help text
 +</code>
 +
 +Les options de la commande **setfacl** sont :
 +
 +<code>
 +[root@centos7 tmp]# setfacl --help
 +setfacl 2.2.51 -- set file access control lists
 +Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ...
 +  -m, --modify=acl        modify the current ACL(s) of file(s)
 +  -M, --modify-file=file  read ACL entries to modify from file
 +  -x, --remove=acl        remove entries from the ACL(s) of file(s)
 +  -X, --remove-file=file  read ACL entries to remove from file
 +  -b, --remove-all        remove all extended ACL entries
 +  -k, --remove-default    remove the default ACL
 +      --set=acl           set the ACL of file(s), replacing the current ACL
 +      --set-file=file     read ACL entries to set from file
 +      --mask              do recalculate the effective rights mask
 +  -n, --no-mask           don't recalculate the effective rights mask
 +  -d, --default           operations apply to the default ACL
 +  -R, --recursive         recurse into subdirectories
 +  -L, --logical           logical walk, follow symbolic links
 +  -P, --physical          physical walk, do not follow symbolic links
 +      --restore=file      restore ACLs (inverse of `getfacl -R')
 +      --test              test mode (ACLs are not modified)
 +  -v, --version           print version and exit
 +  -h, --help              this help text
 +</code>
 +
 +===Les Attributs Etendus===
 +
 +Les attributs s'ajoutent aux caractéristiques classiques d'un fichier dans un système de fichiers Ext2/Ext3/Ext4, JFS, ReiserFS, XFS et Btrfs.
 +
 +Les principaux attributs sont :
 +
 +^ Attribut ^ Description ^
 +| a | Fichier journal - uniquement l'ajout de données au fichier est permis. Le fichier ne peut pas détruit |
 +| i | Le fichier ne peut ni être modifié, ni être détruit, ni être déplacé. Le placement d'un lien sur le fichier n'est pas permis |
 +| s | Le fichier sera physiquement détruit lors de sa suppression |
 +| D | Répertoire synchrone |
 +| S | Fichier synchrone |
 +| A | La date et l'heure de dernier accès ne seront pas mises à jour |
 +
 +<WRAP center round important>
 +**Important** - Un fichier synchrone et un répertoire synchrone impliquent que les modifications seront immédiatement inscrites sur disque.
 +</WRAP>
 +
 +Les commandes associées avec les attributs sont :
 +
 +^ Commande ^ description ^
 +| chattr | Modifie les attributs |
 +| lsattr | Visualise les attributs |
 +
 +Pour mieux comprendre, créez le répertoire **/root/attributs/rep** :
 +
 +<code>
 +[root@centos7 tmp]# cd /root
 +[root@centos7 ~]# mkdir -p attributs/rep
 +</code>
 +
 +Créez ensuite les fichier **fichier** et **rep/fichier1** :
 +
 +<code>
 +[root@centos7 ~]# touch attributs/fichier
 +[root@centos7 ~]# touch attributs/rep/fichier1
 +</code>
 +
 +Modifiez les attributs d'une manière récursive sur le répertoire **attributs** :
 +
 +<code>
 +[root@centos7 ~]# chattr +i -R attributs/
 +</code>
 +
 +Visualisez les attributs de l'arborescence **attributs** :
 +
 +<code>
 +[root@centos7 ~]# lsattr -R attributs
 +----i----------- attributs/rep
 +
 +attributs/rep:
 +----i----------- attributs/rep/fichier1
 +
 +----i----------- attributs/fichier
 +</code>
 +
 +<WRAP center round important>
 +**Important** - Notez que l'attribut **e** sous Ext4 indique l'utilisation des **Extents**. Cet attribut ne peut pas être enlever avec la commande **chattr**. Les Extents seront couverts dans le cours **Gestion des Disques, des Systèmes de Fichiers et le Swap**.
 +</WRAP>
 +
 +Essayez maintenant de déplacer le fichier **fichier**. Vous obtiendrez un résultat similaire à celui-ci :
 +
 +<code>
 +[root@centos7 ~]# cd attributs; mv /root/attributs/fichier /root/attributs/rep/fichier
 +mv: cannot move ‘/root/attributs/fichier’ to ‘/root/attributs/rep/fichier’: Permission denied
 +</code>
 +
 +Les options de la commande **chattr** sont :
 +
 +<code>
 +[root@centos7 ~]# chattr --help
 +Usage: chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files...
 +</code>
 +
 +Les options de la commande **lsattr** sont :
 +
 +<code>
 +[root@centos7 ~]# lsattr --help
 +lsattr: invalid option -- '-'
 +Usage: lsattr [-RVadlv] [files...]
 +</code>
 +
 +=====Rôle du noyau=====
 +
 +Le noyau ou //kernel// est la partie du système d'exploitation qui gère les entrées/sorties avec des périphériques. Dans certains cas il est préférable de recompiler le noyau de Linux. La motivation de cette recompilation peut être :
 +
 +  * la diminution de la taille du noyau,
 +  * la prise en charge de nouveau matériel,
 +  * l'ajout de fonctionnalités,
 +  * l'optimisation du code,
 +  * la correction de bogues,
 +  * le besoin d'une fonctionnalité expérimentale.
 +
 +Commencez par identifier le noyau utilisé par votre machine :
 +
 +<code>
 +[root@centos7 ~]# uname -r
 +3.10.0-327.13.1.el7.x86_64
 +</code>
 +
 +Dans le cas d'une utilisation courante de Linux, il est cependant préférable de faire appel aux **modules**. Les modules se trouvent dans le répertoire **/lib/modules/<version-du-noyau>** :
 +
 +<code>
 +[root@centos7 ~]# ls /lib/modules/`uname -r`/
 +build   modules.alias      modules.builtin      modules.dep.bin  modules.modesetting  modules.softdep      source   weak-updates
 +extra   modules.alias.bin  modules.builtin.bin  modules.devname  modules.networking   modules.symbols      updates
 +kernel  modules.block      modules.dep          modules.drm      modules.order        modules.symbols.bin  vdso
 +</code>
 +
 +Les commandes pour manipuler les modules sont :
 +
 +  * insmod
 +  * rmmod
 +  * lsmod
 +  * modprobe
 +
 +Par exemple :
 +
 +<code>
 +[root@centos7 ~]# lsmod
 +Module                  Size  Used by
 +ip6t_rpfilter          12546  1 
 +ip6t_REJECT            12939  2 
 +ipt_REJECT             12541 
 +xt_conntrack           12760 
 +ebtable_nat            12807  0 
 +ebtable_broute         12731 
 +bridge                119562  1 ebtable_broute
 +stp                    12976  1 bridge
 +llc                    14552  2 stp,bridge
 +ebtable_filter         12827 
 +ebtables               30913  3 ebtable_broute,ebtable_nat,ebtable_filter
 +ip6table_nat           12864 
 +nf_conntrack_ipv6      18738  6 
 +nf_defrag_ipv6         34768  1 nf_conntrack_ipv6
 +nf_nat_ipv6            14131  1 ip6table_nat
 +ip6table_mangle        12700  1 
 +ip6table_security      12710  1 
 +ip6table_raw           12683 
 +ip6table_filter        12815  1 
 +ip6_tables             27025  5 ip6table_filter,ip6table_mangle,ip6table_security,ip6table_nat,ip6table_raw
 +iptable_nat            12875  1 
 +nf_conntrack_ipv4      14862  5 
 +nf_defrag_ipv4         12729  1 nf_conntrack_ipv4
 +nf_nat_ipv4            14115  1 iptable_nat
 +nf_nat                 26146  2 nf_nat_ipv4,nf_nat_ipv6
 +nf_conntrack          105745  6 nf_nat,nf_nat_ipv4,nf_nat_ipv6,xt_conntrack,nf_conntrack_ipv4,nf_conntrack_ipv6
 +iptable_mangle         12695 
 +iptable_security       12705 
 +iptable_raw            12678  1 
 +iptable_filter         12810 
 +dm_mirror              22135  0 
 +dm_region_hash         20862  1 dm_mirror
 +dm_log                 18411  2 dm_region_hash,dm_mirror
 +dm_mod                113292  2 dm_log,dm_mirror
 +crc32_pclmul           13113 
 +ghash_clmulni_intel    13259  0 
 +aesni_intel            69884  0 
 +lrw                    13286  1 aesni_intel
 +gf128mul               14951  1 lrw
 +glue_helper            13990  1 aesni_intel
 +snd_intel8x0           38274 
 +ablk_helper            13597  1 aesni_intel
 +cryptd                 20359  3 ghash_clmulni_intel,aesni_intel,ablk_helper
 +snd_ac97_codec        130605  1 snd_intel8x0
 +ac97_bus               12730  1 snd_ac97_codec
 +ppdev                  17671  0 
 +snd_seq                66691  0 
 +snd_seq_device         14356  1 snd_seq
 +snd_pcm               105835  2 snd_ac97_codec,snd_intel8x0
 +pcspkr                 12718 
 +sg                     40721 
 +parport_pc             28165 
 +parport                42348  2 ppdev,parport_pc
 +snd_timer              29639  2 snd_pcm,snd_seq
 +snd                    83425  8 snd_ac97_codec,snd_intel8x0,snd_timer,snd_pcm,snd_seq,snd_seq_device
 +soundcore              15047  1 snd
 +i2c_piix4              22106  0 
 +video                  24400  0 
 +i2c_core               40582  1 i2c_piix4
 +nfsd                  302418 
 +auth_rpcgss            59343  1 nfsd
 +nfs_acl                12837  1 nfsd
 +lockd                  93600  1 nfsd
 +grace                  13295  2 nfsd,lockd
 +sunrpc                300464  7 nfsd,auth_rpcgss,lockd,nfs_acl
 +ip_tables              27240  5 iptable_security,iptable_filter,iptable_mangle,iptable_nat,iptable_raw
 +xfs                   939662 
 +libcrc32c              12644  1 xfs
 +sd_mod                 45497 
 +crc_t10dif             12714  1 sd_mod
 +crct10dif_generic      12647  0 
 +sr_mod                 22416 
 +cdrom                  42556  1 sr_mod
 +ata_generic            12910  0 
 +pata_acpi              13038  0 
 +ahci                   29907 
 +libahci                32031  1 ahci
 +ata_piix               35038 
 +crct10dif_pclmul       14289 
 +crct10dif_common       12595  3 crct10dif_pclmul,crct10dif_generic,crc_t10dif
 +crc32c_intel           22079 
 +serio_raw              13462  0 
 +libata                218730  5 ahci,pata_acpi,libahci,ata_generic,ata_piix
 +e1000                 149323 
 +</code>
 +
 +Pour ajouter un module, on peut utiliser la commande **insmod** ou **modprobe**. Cette dernière ajoute non seulement le module passé en argument mais également ses dépendances :
 +
 +<code>
 +[root@centos7 ~]# modprobe bonding
 +[root@centos7 ~]# lsmod | more
 +Module                  Size  Used by
 +bonding               136705 
 +ip6t_rpfilter          12546  1 
 +ip6t_REJECT            12939  2 
 +ipt_REJECT             12541 
 +xt_conntrack           12760 
 +ebtable_nat            12807  0 
 +ebtable_broute         12731 
 +bridge                119562  1 ebtable_broute
 +stp                    12976  1 bridge
 +llc                    14552  2 stp,bridge
 +ebtable_filter         12827 
 +ebtables               30913  3 ebtable_broute,ebtable_nat,ebtable_filter
 +ip6table_nat           12864 
 +nf_conntrack_ipv6      18738  6 
 +nf_defrag_ipv6         34768  1 nf_conntrack_ipv6
 +nf_nat_ipv6            14131  1 ip6table_nat
 +ip6table_mangle        12700  1 
 +ip6table_security      12710  1 
 +ip6table_raw           12683 
 +ip6table_filter        12815  1 
 +ip6_tables             27025  5 ip6table_filter,ip6table_mangle,ip6table_securit
 +y,ip6table_nat,ip6table_raw
 +--More--
 +</code>
 +
 +Pour supprimer un module, on peut utiliser la commande **rmmod** ou **modprobe -r**. Cette dernière essaie de supprimer les dépendances non-utilisées :
 +
 +<code>
 +[root@centos7 ~]# modprobe -r bonding
 +[root@centos7 ~]# lsmod | more
 +Module                  Size  Used by
 +ip6t_rpfilter          12546  1 
 +ip6t_REJECT            12939  2 
 +ipt_REJECT             12541 
 +xt_conntrack           12760 
 +ebtable_nat            12807  0 
 +ebtable_broute         12731 
 +bridge                119562  1 ebtable_broute
 +stp                    12976  1 bridge
 +llc                    14552  2 stp,bridge
 +ebtable_filter         12827 
 +ebtables               30913  3 ebtable_broute,ebtable_nat,ebtable_filter
 +ip6table_nat           12864 
 +nf_conntrack_ipv6      18738  6 
 +nf_defrag_ipv6         34768  1 nf_conntrack_ipv6
 +nf_nat_ipv6            14131  1 ip6table_nat
 +ip6table_mangle        12700  1 
 +ip6table_security      12710  1 
 +ip6table_raw           12683 
 +ip6table_filter        12815  1 
 +ip6_tables             27025  5 ip6table_filter,ip6table_mangle,ip6table_securit
 +y,ip6table_nat,ip6table_raw
 +iptable_nat            12875  1 
 +--More--
 +</code>
 +
 +Les dépendances des modules sont résolues par la commande **modprobe** grâce aux fichier **/lib/modules/<version-du-noyau>/modules.dep**. Ce dernier peut être créé manuellement grâce à la commande **depmod** :
 +
 +<code>
 +[root@centos7 ~]# more /lib/modules/`uname -r`/modules.dep
 +kernel/arch/x86/kernel/cpu/mcheck/mce-inject.ko:
 +kernel/arch/x86/kernel/test_nx.ko:
 +kernel/arch/x86/crypto/ablk_helper.ko: kernel/crypto/cryptd.ko
 +kernel/arch/x86/crypto/glue_helper.ko:
 +kernel/arch/x86/crypto/camellia-x86_64.ko: kernel/crypto/xts.ko kernel/crypto/lrw.ko kernel/crypto/gf128mul.ko kernel/arch/x86/crypto/glue_helper.ko
 +kernel/arch/x86/crypto/blowfish-x86_64.ko: kernel/crypto/blowfish_common.ko
 +kernel/arch/x86/crypto/twofish-x86_64.ko: kernel/crypto/twofish_common.ko
 +kernel/arch/x86/crypto/twofish-x86_64-3way.ko: kernel/arch/x86/crypto/twofish-x86_64.ko kernel/crypto/twofish_common.ko kernel/crypto/xts.ko kernel/cryp
 +to/lrw.ko kernel/crypto/gf128mul.ko kernel/arch/x86/crypto/glue_helper.ko
 +kernel/arch/x86/crypto/salsa20-x86_64.ko:
 +kernel/arch/x86/crypto/serpent-sse2-x86_64.ko: kernel/crypto/xts.ko kernel/crypto/serpent_generic.ko kernel/crypto/lrw.ko kernel/crypto/gf128mul.ko kern
 +el/arch/x86/crypto/glue_helper.ko kernel/arch/x86/crypto/ablk_helper.ko kernel/crypto/cryptd.ko
 +kernel/arch/x86/crypto/aesni-intel.ko: kernel/crypto/lrw.ko kernel/crypto/gf128mul.ko kernel/arch/x86/crypto/glue_helper.ko kernel/arch/x86/crypto/ablk_
 +helper.ko kernel/crypto/cryptd.ko
 +kernel/arch/x86/crypto/ghash-clmulni-intel.ko: kernel/crypto/cryptd.ko
 +kernel/arch/x86/crypto/crc32c-intel.ko:
 +kernel/arch/x86/crypto/sha-mb/sha1-mb.ko: kernel/crypto/mcryptd.ko
 +kernel/arch/x86/crypto/crc32-pclmul.ko:
 +kernel/arch/x86/crypto/sha512-ssse3.ko: kernel/crypto/sha512_generic.ko
 +kernel/arch/x86/crypto/crct10dif-pclmul.ko: kernel/crypto/crct10dif_common.ko
 +kernel/arch/x86/crypto/camellia-aesni-avx-x86_64.ko: kernel/arch/x86/crypto/camellia-x86_64.ko kernel/crypto/xts.ko kernel/crypto/lrw.ko kernel/crypto/g
 +f128mul.ko kernel/arch/x86/crypto/glue_helper.ko kernel/arch/x86/crypto/ablk_helper.ko kernel/crypto/cryptd.ko
 +kernel/arch/x86/crypto/cast5-avx-x86_64.ko: kernel/crypto/cast5_generic.ko kernel/crypto/cast_common.ko kernel/arch/x86/crypto/ablk_helper.ko kernel/cry
 +--More--(0%)
 +</code>
 +
 +Il est possible d'obtenir des informations sur un module grâce à la commande **modinfo** :
 +
 +<code>
 +[root@centos7 ~]# modinfo bonding
 +filename:       /lib/modules/3.10.0-327.13.1.el7.x86_64/kernel/drivers/net/bonding/bonding.ko
 +author:         Thomas Davis, tadavis@lbl.gov and many others
 +description:    Ethernet Channel Bonding Driver, v3.7.1
 +version:        3.7.1
 +license:        GPL
 +alias:          rtnl-link-bond
 +rhelversion:    7.2
 +srcversion:     49765A3F5CDFF2C3DCFD8E6
 +depends:        
 +intree:         Y
 +vermagic:       3.10.0-327.13.1.el7.x86_64 SMP mod_unload modversions 
 +signer:         CentOS Linux kernel signing key
 +sig_key:        6F:33:78:18:7D:83:CD:18:A4:3B:2E:0A:C4:9A:ED:8A:EF:FC:3A:C7
 +sig_hashalgo:   sha256
 +parm:           max_bonds:Max number of bonded devices (int)
 +parm:           tx_queues:Max number of transmit queues (default = 16) (int)
 +parm:           num_grat_arp:Number of peer notifications to send on failover event (alias of num_unsol_na) (int)
 +parm:           num_unsol_na:Number of peer notifications to send on failover event (alias of num_grat_arp) (int)
 +parm:           miimon:Link check interval in milliseconds (int)
 +parm:           updelay:Delay before considering link up, in milliseconds (int)
 +parm:           downdelay:Delay before considering link down, in milliseconds (int)
 +parm:           use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 for off, 1 for on (default) (int)
 +parm:           mode:Mode of operation; 0 for balance-rr, 1 for active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for balance-alb (charp)
 +parm:           primary:Primary network device to use (charp)
 +parm:           primary_reselect:Reselect primary slave once it comes up; 0 for always (default), 1 for only if speed of primary is better, 2 for only on active slave failure (charp)
 +parm:           lacp_rate:LACPDU tx rate to request from 802.3ad partner; 0 for slow, 1 for fast (charp)
 +parm:           ad_select:803.ad aggregation selection logic; 0 for stable (default), 1 for bandwidth, 2 for count (charp)
 +parm:           min_links:Minimum number of available links before turning on carrier (int)
 +parm:           xmit_hash_policy:balance-xor and 802.3ad hashing method; 0 for layer 2 (default), 1 for layer 3+4, 2 for layer 2+3, 3 for encap layer 2+3, 4 for encap layer 3+4 (charp)
 +parm:           arp_interval:arp interval in milliseconds (int)
 +parm:           arp_ip_target:arp targets in n.n.n.n form (array of charp)
 +parm:           arp_validate:validate src/dst of ARP probes; 0 for none (default), 1 for active, 2 for backup, 3 for all (charp)
 +parm:           arp_all_targets:fail on any/all arp targets timeout; 0 for any (default), 1 for all (charp)
 +parm:           fail_over_mac:For active-backup, do not set all slaves to the same MAC; 0 for none (default), 1 for active, 2 for follow (charp)
 +parm:           all_slaves_active:Keep all frames received on an interface by setting active flag for all slaves; 0 for never (default), 1 for always. (int)
 +parm:           resend_igmp:Number of IGMP membership reports to send on link failure (int)
 +parm:           packets_per_slave:Packets to send per slave in balance-rr mode; 0 for a random slave, 1 packet per slave (default), >1 packets per slave. (int)
 +parm:           lp_interval:The number of seconds between instances where the bonding driver sends learning packets to each slaves peer switch. The default is 1. (uint)
 +</code>
 +
 +Dernièrement, les fichiers dans le repertoire **/etc/modprobe.d** sont utilisés pour spécifier les options éventuelles à passer aux modules lors de leur chargement ainsi que les alias utilisés pour leur faire référence :
 +
 +<code>
 +[root@centos7 ~]# ls /etc/modprobe.d
 +mlx4.conf
 +
 +[root@centos7 ~]# cat /etc/modprobe.d/mlx4.conf
 +# This file is intended for users to select the various module options
 +# they need for the mlx4 driver.  On upgrade of the rdma package,
 +# any user made changes to this file are preserved.  Any changes made
 +# to the libmlx4.conf file in this directory are overwritten on
 +# pacakge upgrade.
 +#
 +# Some sample options and what they would do
 +# Enable debugging output, device managed flow control, and disable SRIOV
 +#options mlx4_core debug_level=1 log_num_mgm_entry_size=-1 probe_vf=0 num_vfs=0
 +#
 +# Enable debugging output and create SRIOV devices, but don't attach any of
 +# the child devices to the host, only the parent device
 +#options mlx4_core debug_level=1 probe_vf=0 num_vfs=7
 +#
 +# Enable debugging output, SRIOV, and attach one of the SRIOV child devices
 +# in addition to the parent device to the host
 +#options mlx4_core debug_level=1 probe_vf=1 num_vfs=7
 +#
 +# Enable per priority flow control for send and receive, setting both priority
 +# 1 and 2 as no drop priorities
 +#options mlx4_en pfctx=3 pfcrx=3
 +</code>
 +
 +=====Gestion des Quotas=====
 +
 +Sous Linux il est possible de mettre en place des quotas par utilisateur et par groupe. Ceci étant, Linux ne sait  pas gérer des quotas par répertoire, uniquement des 
 +quotas par partition. L'administrateur met souvent des quotas en place sur l'arborescence de /home pour limiter l'espace de stockage occupé par les utilisateurs.
 +
 +Déconnectez-vous et reconnectez-vous en tant que root.
 +
 +Avant de mettre en place des quotas, configurer SELINUX en mode **permissive** afin de ne pas avoir d'erreurs de ce dernier :
 +
 +<code>
 +[root@centos7 ~]# getenforce
 +Enforcing
 +[root@centos7 ~]# setenforce permissive
 +[root@centos7 ~]# getenforce
 +Permissive
 +</code>
 +
 +Editez ensuite le fichier /etc/sysconfig/selinux ainsi :
 +
 +<code>
 +[root@centos7 ~]# vi /etc/sysconfig/selinux
 +[root@centos7 ~]# cat /etc/sysconfig/selinux
 +
 +# This file controls the state of SELinux on the system.
 +# SELINUX= can take one of these three values:
 +#     enforcing - SELinux security policy is enforced.
 +#     permissive - SELinux prints warnings instead of enforcing.
 +#     disabled - No SELinux policy is loaded.
 +SELINUX=permissive
 +# SELINUXTYPE= can take one of three two values:
 +#     targeted - Targeted processes are protected,
 +#     minimum - Modification of targeted policy. Only selected processes are protected. 
 +#     mls - Multi Level Security protection.
 +SELINUXTYPE=targeted 
 +</code>
 +
 +====Déplacer /home====
 +
 +Créez une seule partition sur **/dev/sdb** :
 +
 +<code>
 +[root@centos7 ~]# fdisk /dev/sdb
 +Welcome to fdisk (util-linux 2.23.2).
 +
 +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
 +Building a new DOS disklabel with disk identifier 0x88708329.
 +
 +Command (m for help): n
 +Partition type:
 +     primary (0 primary, 0 extended, 4 free)
 +     extended
 +Select (default p): p
 +Partition number (1-4, default 1): 
 +First sector (2048-41943039, default 2048): 
 +Using default value 2048
 +Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
 +Using default value 41943039
 +Partition 1 of type Linux and of size 20 GiB is set
 +
 +Command (m for help): w
 +The partition table has been altered!
 +
 +Calling ioctl() to re-read partition table.
 +Syncing disks.
 +</code>
 +
 +Créez maintenant un système de fichiers ext4 sur **/dev/sdb1** :
 +
 +<code>
 +[root@centos7 ~]# mkfs.ext4 /dev/sdb1
 +mke2fs 1.42.9 (28-Dec-2013)
 +Filesystem label=
 +OS type: Linux
 +Block size=4096 (log=2)
 +Fragment size=4096 (log=2)
 +Stride=0 blocks, Stripe width=0 blocks
 +1310720 inodes, 5242624 blocks
 +262131 blocks (5.00%) reserved for the super user
 +First data block=0
 +Maximum filesystem blocks=2153775104
 +160 block groups
 +32768 blocks per group, 32768 fragments per group
 +8192 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 
 +</code>
 +
 +Montez **/dev/sdb1** sur /mnt :
 +
 +<code>
 +[root@centos7 ~]# mount /dev/sdb1 /mnt
 +</code>
 +
 +Copiez le contenu de /home vers /mnt :
 +
 +<code>
 +[root@centos7 ~]# cp -a /home/* /mnt
 +</code>
 +
 +Démontez /dev/sdb1 et déplacez /home vers /root :
 +
 +<code>
 +[root@centos7 ~]# umount /mnt
 +[root@centos7 ~]# mv /home /root
 +</code>
 +
 +Identifiez l'UUID de /dev/sdb1 :
 +
 +<code>
 +[root@centos7 ~]# ls -l /dev/disk/by-uuid/ | grep sdb1
 +lrwxrwxrwx. 1 root root 10  9 août  06:47 a5e2457f-7337-41f4-b958-e403eb419f94 -> ../../sdb1
 +</code>
 +
 +Editez le fichier **/etc/fstab** :
 +
 +<file txt /etc/fstab>
 +#
 +# /etc/fstab
 +# Created by anaconda on Sat Apr 30 11:27:02 2016
 +#
 +# 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
 +#
 +UUID=e65fe7da-cda8-4f5a-a827-1b5cabe94bed /                       xfs     defaults        0 0
 +UUID=2d947276-66e8-41f4-8475-b64b67d7a249 /boot                   xfs     defaults        0 0
 +UUID=3181601a-7295-4ef0-a92c-f21f76b18e64 swap                    swap    defaults        0 0
 +UUID=a5e2457f-7337-41f4-b958-e403eb419f94 /home           ext4   defaults       1 2
 +
 +</file>
 +
 +Créez le point de montage /home :
 +
 +<code>
 +[root@centos7 ~]# mkdir /home
 +</code>
 +
 +Montez /dev/sdb1 :
 +
 +<code>
 +[root@centos7 ~]# mount -a
 +[root@centos7 ~]# 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=236036k,nr_inodes=59009,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,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
 +pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
 +cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu)
 +cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
 +cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls)
 +cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
 +cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
 +cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
 +cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
 +cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
 +cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
 +configfs on /sys/kernel/config type configfs (rw,relatime)
 +/dev/sda2 on / type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
 +selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
 +systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=30,pgrp=1,timeout=300,minproto=5,maxproto=5,direct)
 +debugfs on /sys/kernel/debug type debugfs (rw,relatime)
 +hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
 +mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
 +tmpfs on /tmp type tmpfs (rw,seclabel)
 +sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
 +nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
 +/dev/sda1 on /boot type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
 +/dev/sdb1 on /home type ext4 (rw,relatime,seclabel,data=ordered)
 +tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,seclabel,size=50080k,mode=700,uid=1000,gid=1000)
 +</code>
 +
 +Notez la taille de /home :
 +
 +<code>
 +[trainee@centos7 ~]$ df -h
 +Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur
 +/dev/sda2          9,8G    4,4G  5,5G  45% /
 +devtmpfs           231M        231M   0% /dev
 +tmpfs              245M        245M   0% /dev/shm
 +tmpfs              245M    4,7M  240M   2% /run
 +tmpfs              245M        245M   0% /sys/fs/cgroup
 +tmpfs              245M     72K  245M   1% /tmp
 +/dev/sda1          197M    197M   20K 100% /boot
 +/dev/sdb1           20G     65M   19G   1% /home
 +tmpfs               49M         49M   0% /run/user/1000
 +</code>
 +
 +<WRAP center round todo>
 +Fermez la session de root et connectez-vous en tant que trainee.
 +</WRAP>
 +
 +====Mettre en Place des Quotas====
 +
 +Commencez par vérifiez que le paquet **quota** est bien installé :
 +
 +<code>
 +[root@centos7 ~]# rpm -qa | grep quota
 +quota-4.01-11.el7_2.1.x86_64
 +quota-nls-4.01-11.el7_2.1.noarch
 +</code>
 +
 +Editez le fichier **/etc/fstab** en ajoutant les options **usrquota** et **grpquota** à la ligne **/home** :
 +
 +<code>
 +[root@centos7 ~]# vi /etc/fstab
 +[root@centos7 ~]# cat /etc/fstab
 +
 +#
 +# /etc/fstab
 +# Created by anaconda on Sat Apr 30 11:27:02 2016
 +#
 +# 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
 +#
 +UUID=e65fe7da-cda8-4f5a-a827-1b5cabe94bed /                       xfs     defaults        0 0
 +UUID=2d947276-66e8-41f4-8475-b64b67d7a249 /boot                   xfs     defaults        0 0
 +UUID=3181601a-7295-4ef0-a92c-f21f76b18e64 swap                    swap    defaults        0 0
 +UUID=a080ac6a-d15c-48e2-8461-a7b1aa3ebf1a /home   ext4    defaults,usrquota,grpquota        1 2
 +</code>
 +
 +Démontez puis remontez /home :
 +
 +<code>
 +[root@centos7 ~]# umount /home
 +[root@centos7 ~]# mount -a
 +</code>
 +
 +Déconnectez-vous et reconnectez-vous en tant que trainee. Vérifiez ensuite que les options soient prises en compte :
 +
 +<code>
 +[root@centos7 ~]# cat /etc/mtab
 +rootfs / rootfs rw 0 0
 +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=236036k,nr_inodes=59009,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,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd 0 0
 +pstore /sys/fs/pstore pstore rw,nosuid,nodev,noexec,relatime 0 0
 +cgroup /sys/fs/cgroup/net_cls cgroup rw,nosuid,nodev,noexec,relatime,net_cls 0 0
 +cgroup /sys/fs/cgroup/memory cgroup rw,nosuid,nodev,noexec,relatime,memory 0 0
 +cgroup /sys/fs/cgroup/devices cgroup rw,nosuid,nodev,noexec,relatime,devices 0 0
 +cgroup /sys/fs/cgroup/hugetlb cgroup rw,nosuid,nodev,noexec,relatime,hugetlb 0 0
 +cgroup /sys/fs/cgroup/freezer cgroup rw,nosuid,nodev,noexec,relatime,freezer 0 0
 +cgroup /sys/fs/cgroup/blkio cgroup rw,nosuid,nodev,noexec,relatime,blkio 0 0
 +cgroup /sys/fs/cgroup/cpu,cpuacct cgroup rw,nosuid,nodev,noexec,relatime,cpuacct,cpu 0 0
 +cgroup /sys/fs/cgroup/perf_event cgroup rw,nosuid,nodev,noexec,relatime,perf_event 0 0
 +cgroup /sys/fs/cgroup/cpuset cgroup rw,nosuid,nodev,noexec,relatime,cpuset 0 0
 +configfs /sys/kernel/config configfs rw,relatime 0 0
 +/dev/sda2 / xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
 +selinuxfs /sys/fs/selinux selinuxfs rw,relatime 0 0
 +systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=23,pgrp=1,timeout=300,minproto=5,maxproto=5,direct 0 0
 +debugfs /sys/kernel/debug debugfs rw,relatime 0 0
 +hugetlbfs /dev/hugepages hugetlbfs rw,seclabel,relatime 0 0
 +tmpfs /tmp tmpfs rw,seclabel 0 0
 +mqueue /dev/mqueue mqueue rw,seclabel,relatime 0 0
 +sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
 +nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
 +/dev/sda1 /boot xfs rw,seclabel,relatime,attr2,inode64,noquota 0 0
 +tmpfs /run/user/0 tmpfs rw,seclabel,nosuid,nodev,relatime,size=50080k,mode=700 0 0
 +/dev/sdb1 /home ext4 rw,seclabel,relatime,quota,usrquota,grpquota,data=ordered 0 0
 +</code>
 +
 +====La Commande quotacheck====
 +
 +Pour activer les quotas sur /home, il convient d'utiliser la commande **quotacheck** :
 +
 +<code>
 +[root@centos7 ~]# quotacheck -cugvm -f /dev/sdb1
 +quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
 +quotacheck: Parcours de /dev/sdb1 [/home] terminé
 +quotacheck: Cannot stat old user quota file /home/aquota.user: Aucun fichier ou dossier de ce type. Usage will not be subtracted.
 +quotacheck: Cannot stat old group quota file /home/aquota.group: Aucun fichier ou dossier de ce type. Usage will not be subtracted.
 +quotacheck: Cannot stat old user quota file /home/aquota.user: Aucun fichier ou dossier de ce type. Usage will not be subtracted.
 +quotacheck: Cannot stat old group quota file /home/aquota.group: Aucun fichier ou dossier de ce type. Usage will not be subtracted.
 +quotacheck: Vérifié 100 répertoires et 230 fichiers
 +quotacheck: Ancien fichier non trouvé.
 +quotacheck: Ancien fichier non trouvé.
 +</code>
 +
 +Les options de la commande quotacheck sont :
 +
 +<code>
 +[root@centos7 ~]# quotacheck --help
 +Utility for checking and repairing quota files.
 +quotacheck [-gucbfinvdmMR] [-F <quota-format>] filesystem|-a
 +
 +-u, --user                check user files
 +-g, --group               check group files
 +-c, --create-files        create new quota files
 +-b, --backup              create backups of old quota files
 +-f, --force               force check even if quotas are enabled
 +-i, --interactive         interactive mode
 +-n, --use-first-dquot     use the first copy of duplicated structure
 +-v, --verbose             print more information
 +-d, --debug               print even more messages
 +-m, --no-remount          do not remount filesystem read-only
 +-M, --try-remount         try remounting filesystem read-only,
 +                          continue even if it fails
 +-R, --exclude-root        exclude root when checking all filesystems
 +-F, --format=formatname   check quota files of specific format
 +-a, --all                 check all filesystems
 +-h, --help                display this message and exit
 +-V, --version             display version information and exit
 +
 +Rapports de bugs à jack@suse.cz
 +</code>
 +
 +Les quotas ont été activés et les fichier **aquota.user** et **aquota.group** ont été créés dans le répertoire /home :
 +
 +<code>
 +[root@centos7 ~]# ls -la /home
 +total 44
 +drwxr-xr-x.  4 root    root     4096 11 août  13:39 .
 +dr-xr-xr-x. 18 root    root     4096 11 août  13:27 ..
 +-rw-------.  1 root    root     7168 11 août  13:39 aquota.group
 +-rw-------.  1 root    root     7168 11 août  13:39 aquota.user
 +drwx------.  2 root    root    16384 11 août  13:26 lost+found
 +drwx------. 14 trainee trainee  4096 30 avril 15:29 trainee
 +</code>
 +
 +Créez maintenant un utilisateur **fenestros** avec le mot de passe **fenestros** :
 +
 +<code>
 +[root@centos7 ~]# groupadd fenestros && useradd fenestros -c FenestrOs -d /home/fenestros -g fenestros -s /bin/bash
 +[root@centos7 ~]# passwd fenestros
 +Changement de mot de passe pour l'utilisateur fenestros.
 +Nouveau mot de passe : fenestros
 +MOT DE PASSE INCORRECT : Le mot de passe contient le nom d'utilisateur sous une forme
 +Retapez le nouveau mot de passe : fenestros
 +passwd : mise à jour réussie de tous les jetons d'authentification.
 +[root@centos7 ~]# 
 +</code>
 +
 +====La Commande edquota====
 +
 +Mettez en place maintenant un quota de 10Mo pour l'utilisateur **fenestros** :
 +
 +<code>
 +[root@centos ~]# edquota -u fenestros -f /home
 +</code>
 +
 +L'éditeur **vi** se lance et vous obtiendrez un résultat similaire à celui-ci :
 +
 +<file>
 +Quotas disque pour user fenestros (uid 1001) :
 + Système de fichiers           blocs       souple     stricte   inodes    souple   stricte
 +  /dev/sdb1                                  0          0          0        0        0
 +</file>
 +
 +Modifiez ce fichier ainsi :
 +
 +<file>
 +Quotas disque pour user fenestros (uid 1001) :
 + Système de fichiers           blocs       souple     stricte   inodes    souple   stricte
 +  /dev/sdb1                                8000       10000        0        0        0
 +</file>
 +
 +Les options de la commande **edquota** sont :
 +
 +<code>
 +[root@centos7 ~]# edquota --help
 +edquota: Usage:
 + edquota [-rm] [-u] [-F formatname] [-p username] [-f filesystem] username ...
 + edquota [-rm] -g [-F formatname] [-p groupname] [-f filesystem] groupname ...
 + edquota [-u|g] [-F formatname] [-f filesystem] -t
 + edquota [-u|g] [-F formatname] [-f filesystem] -T username|groupname ...
 +
 +-u, --user                    edit user data
 +-g, --group                   edit group data
 +-r, --remote                  edit remote quota (via RPC)
 +-m, --no-mixed-pathnames      trim leading slashes from NFSv4 mountpoints
 +-F, --format=formatname       edit quotas of a specific format
 +-p, --prototype=name          copy data from a prototype user/group
 +    --always-resolve          always try to resolve name, even if it is
 +                              composed only of digits
 +-f, --filesystem=filesystem   edit data only on a specific filesystem
 +-t, --edit-period             edit grace period
 +-T, --edit-times              edit grace time of a user/group
 +-h, --help                    display this help text and exit
 +-V, --version                 display version information and exit
 +
 +Rapports de bugs à : jack@suse.cz
 +</code>
 +
 +<WRAP center round important>
 +Pour mettre en place un quota par group, la procédure est similaire. Il suffit d'utiliser l'option -g de la commande edquota.
 +</WRAP>
 +
 +====La Commande quotaon====
 +
 +Appliquez maintenant les quotas :
 +
 +<code>
 +[root@centos7 ~]# quotaon -a
 +</code>
 +
 +Les options de la commande **quotaon** sont :
 +
 +<code>
 +[root@centos7 ~]# quotaon --help
 +quotaon: Usage:
 + quotaon [-guvp] [-F quotaformat] [-x state] -a
 + quotaon [-guvp] [-F quotaformat] [-x state] filesys ...
 +
 +-a, --all                turn quotas on for all filesystems
 +-f, --off                turn quotas off
 +-u, --user               operate on user quotas
 +-g, --group              operate on group quotas
 +-p, --print-state        print whether quotas are on or off
 +-x, --xfs-command=cmd    perform XFS quota command
 +-F, --format=formatname  operate on specific quota format
 +-v, --verbose            print more messages
 +-h, --help               display this help text and exit
 +-V, --version            display version information and exit
 +</code>
 +
 +De cette manière vous avez mis en place un quota **souple** pour fenestros de 8 000 Ko et un quota **stricte** de 10 000 Ko. 
 +
 +Quand l'utilisateur fenestros aura dépassé le quota **souple**, il recevra un message d'avertissement. Quand il dépasse le quota **stricte**, il ne pourra plus enregistrer dans /home, sauf dans le cas où il supprime des fichiers pour retomber en dessous de la limite **stricte**.
 +
 +Il est à noter que vous pouvez soit mettre en place un quota en taille, soit mettre en place un quota basé sur le nombre d'inodes utilisés par l'utilisateur.
 +
 +<WRAP center round important>
 +La commande pour désactivez les quotas est **quotaoff**. 
 +</WRAP>
 +
 +====La Commande repquota====
 +
 +Pour visualiser les quotas utilisez la commande **repquota** :
 +
 +<code>
 +[root@centos7 ~]# repquota /home
 +*** Rapport pour les quotas user sur le périphérique /dev/sdb1
 +Période de sursis bloc : 7days ; période de sursis inode : 7days
 +                        Block limits                File limits
 +Utilisateur     utilisé souple stricte sursis utilisé souple stricte sursis
 +----------------------------------------------------------------------
 +root      --      20                          2               
 +trainee   --   20484                        328               
 +   
 +</code>
 +
 +<WRAP center round important>
 +Notez que l'utilisateur fenestros ne figure pas dans la liste. Sous CentOS, le quota n'est pas visible tant que l'utilisateur ne s'est pas connecté pour la première fois. Notez aussi les période de grâce de **7** jours.
 +</WRAP>
 +
 +Les options de la commande **repquota** sont :
 +
 +<code>
 +[root@centos7 ~]# repquota --help
 +repquota: Utility for reporting quotas.
 +Usage:
 +repquota [-vugsi] [-c|C] [-t|n] [-F quotaformat] (-a | mntpoint)
 +
 +-v, --verbose               display also users/groups without any usage
 +-u, --user                  display information about users
 +-g, --group                 display information about groups
 +-s, --human-readable        show numbers in human friendly units (MB, GB, ...)
 +-t, --truncate-names        truncate names to 9 characters
 +-p, --raw-grace             print grace time in seconds since epoch
 +-n, --no-names              do not translate uid/gid to name
 +-i, --no-autofs             avoid autofs mountpoints
 +-c, --cache                 translate big number of ids at once
 +-C, --no-cache              translate ids one by one
 +-F, --format=formatname     report information for specific format
 +-a, --all                   report information for all mount points with quotas
 +-h, --help                  display this help message and exit
 +-V, --version               display version information and exit
 +
 +Rapports de bugs à jack@suse.cz
 +</code>
 +
 +====La Commande quota====
 +
 +Pour visualiser les quotas d'un utilisateur spécifique, il convient d'utiliser la commande **quota** :
 +
 +<code>
 +[root@centos7 ~]# quota fenestros
 +Disk quotas for user fenestros (uid 1001): aucun
 +[root@centos7 ~]# su - fenestros
 +[fenestros@centos7 ~]$ touch test
 +[fenestros@centos7 ~]$ exit
 +logout
 +[root@centos7 ~]# quota fenestros
 +Disk quotas for user fenestros (uid 1001): 
 +Système fichiers   blocs   quota  limite  sursisfichiers   quota  limite  sursis
 +      /dev/sdb1      24    8000   10000                                      
 +</code>
 +
 +Les options de la commande **quota** sont :
 +
 +<code>
 +[root@centos7 ~]# quota --help
 +quota: Usage: quota [-guqvswim] [-l | [-Q | -A]] [-F quotaformat]
 + quota [-qvswim] [-l | [-Q | -A]] [-F quotaformat] -u username ...
 + quota [-qvswim] [-l | [-Q | -A]] [-F quotaformat] -g groupname ...
 + quota [-qvswugQm] [-F quotaformat] -f filesystem ...
 +
 +-u, --user                display quota for user
 +-g, --group               display quota for group
 +-q, --quiet               print more terse message
 +-v, --verbose             print more verbose message
 +-s, --human-readable      display numbers in human friendly units (MB, GB...)
 +    --always-resolve      always try to translate name to id, even if it is
 +   composed of only digits
 +-w, --no-wrap             do not wrap long lines
 +-p, --raw-grace           print grace time in seconds since epoch
 +-l, --local-only          do not query NFS filesystems
 +-Q, --quiet-refuse        do not print error message when NFS server does
 +                          not respond
 +-i, --no-autofs           do not query autofs mountpoints
 +-F, --format=formatname   display quota of a specific format
 +-f, --filesystem-list     display quota information only for given filesystems
 +-A, --all-nfs             display quota for all NFS mountpoints
 +-m, --no-mixed-pathnames  trim leading slashes from NFSv4 mountpoints
 +    --show-mntpoint       show mount point of the file system in output
 +    --hide-device         do not show file system device in output
 +-h, --help                display this help message and exit
 +-V, --version             display version information and exit
 +
 +Rapports de bugs à : jack@suse.cz
 +</code>
 +
 +====La Commande warnquota====
 +
 +La commande **warnquota** vérifie le ou les disques et envoie un message par mail à tout utilisateur qui a dépassé la limite soft. Elle est enrègle générale appelée par un job cron. Cependant elle peut aussi est appelée d'une manière intéractive.
 +
 +Sous RHEL/CentOS 7, warnquota n'est pas installé par défaut :
 +
 +<code>
 +[root@centos7 ~]# yum install quota-warnquota
 +Modules complémentaires chargés : fastestmirror, langpacks
 +base                                                                                                                                             | 3.6 kB  00:00:00     
 +extras                                                                                                                                           | 3.4 kB  00:00:00     
 +updates                                                                                                                                          | 3.4 kB  00:00:00     
 +Loading mirror speeds from cached hostfile
 + * base: centos.quelquesmots.fr
 + * extras: miroir.univ-paris13.fr
 + * updates: miroir.univ-paris13.fr
 +Résolution des dépendances
 +--> Lancement de la transaction de test
 +---> Le paquet quota-warnquota.x86_64 1:4.01-11.el7_2.1 sera installé
 +--> Résolution des dépendances terminée
 +
 +Dépendances résolues
 +
 +========================================================================================================================================================================
 + Package                                     Architecture                       Version                                       Dépôt                               Taille
 +========================================================================================================================================================================
 +Installation :
 + quota-warnquota                             x86_64                             1:4.01-11.el7_2.1                             updates                              76 k
 +
 +Résumé de la transaction
 +========================================================================================================================================================================
 +Installation   1 Paquet
 +
 +Taille totale des téléchargements : 76 k
 +Taille d'installation : 137 k
 +Is this ok [y/d/N]: y
 +</code>
 +
 +Les options de la commande **warnquota** sont :
 +
 +<code>
 +[root@centos7 ~]# warnquota --help
 +warnquota: Usage:
 +  warnquota [-ugsid] [-F quotaformat] [-c configfile] [-q quotatabfile] [-a adminsfile] [filesystem...]
 +
 +-u, --user                      warn users
 +-g, --group                     warn groups
 +-s, --human-readable            send information in more human friendly units
 +-i, --no-autofs                 avoid autofs mountpoints
 +-d, --no-details                do not send quota information itself
 +-F, --format=formatname         use quotafiles of specific format
 +-c, --config=config-file        non-default config file
 +-q, --quota-tab=quotatab-file   non-default quotatab
 +-a, --admins-file=admins-file   non-default admins file
 +-h, --help                      display this help message and exit
 +-v, --version                   display version information and exit
 +
 +Rapports de bugs à jack@suse.cz
 +</code>
  
 ----- -----
  
-Copyright © 2023 Hugh Norris.+Copyright © 2024 Hugh Norris.
  
Menu