Dernière mise-à-jour : 2020/01/30 03:27

104.2 - Maintenir l'intégrité des systèmes de fichiers (2/60)

Systèmes de Fichiers Journalisés

Présentation

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

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

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

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

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

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

Ext3

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

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

Pour plus d'information concernant Ext3, consultez cette page

Gestion d'Ext3

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

root@debian8:~# fdisk -l

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

Device     Boot    Start      End  Sectors  Size Id Type
/dev/sda1  *        2048 19531775 19529728  9.3G 83 Linux
/dev/sda2       19533822 41943039 22409218 10.7G  5 Extended
/dev/sda5       19533824 23437311  3903488  1.9G 82 Linux swap / Solaris
/dev/sda6       23439360 24416255   976896  477M fd Linux raid autodetect
/dev/sda7       24418304 24809471   391168  191M 8e Linux LVM
/dev/sda8       24811520 25397247   585728  286M 8e Linux LVM
/dev/sda9       25399296 26374143   974848  476M fd Linux raid autodetect
/dev/sda10      26376192 27158527   782336  382M 8e Linux LVM
/dev/sda11      27160576 28137471   976896  477M fd Linux raid autodetect
/dev/sda12      28139520 29114367   974848  476M fd Linux raid autodetect
/dev/sda13      29116416 29507583   391168  191M 83 Linux

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

Dans ce cas, il s'agit de /dev/sda13.

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

root@debian8:~# mke2fs -j /dev/sda13
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 195584 1k blocks and 48960 inodes
Filesystem UUID: 955fc810-ca1f-4bd9-b71b-4c1f8cf41aea
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

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

Les options de la commande mke2fs sont :

root@debian8:~# 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]

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

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

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

root@debian8:~# dumpe2fs -h /dev/sda13
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          955fc810-ca1f-4bd9-b71b-4c1f8cf41aea
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:              48960
Block count:              195584
Reserved block count:     9779
Free blocks:              183740
Free inodes:              48949
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2040
Inode blocks per group:   255
Filesystem created:       Thu Oct 22 15:31:22 2015
Last mount time:          n/a
Last write time:          Thu Oct 22 15:31:22 2015
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Oct 22 15:31:22 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:      5a87e558-f510-4ec5-8c63-de8c025def85
Journal backup:           inode blocks
Journal features:         (none)
Journal size:             4113k
Journal length:           4096
Journal sequence:         0x00000001
Journal start:            0

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

Les options de cette commande sont :

root@debian8:~# dumpe2fs --help
dumpe2fs 1.42.12 (29-Aug-2014)
dumpe2fs: invalid option -- '-'
Usage: dumpe2fs [-bfhixV] [-o superblock=<num>] [-o blocksize=<num>] device

Pour supprimer Ext3 sur cette partition, il convient d'utiliser la commande tune2fs

root@debian8:~# tune2fs -O ^has_journal /dev/sda13
tune2fs 1.42.12 (29-Aug-2014)

Les options de cette commande sont :

root@debian8:~# tune2fs --help
tune2fs 1.42.12 (29-Aug-2014)
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[,...]]
	[-Q quota_options]
	[-E extended-option[,...]] [-T last_check_time] [-U UUID]
	[ -I new_inode_size ] device

Constatez le résultat de cette commande :

root@debian8:~# dumpe2fs -h /dev/sda13
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          955fc810-ca1f-4bd9-b71b-4c1f8cf41aea
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:              48960
Block count:              195584
Reserved block count:     9779
Free blocks:              187853
Free inodes:              48949
First block:              1
Block size:               1024
Fragment size:            1024
Reserved GDT blocks:      256
Blocks per group:         8192
Fragments per group:      8192
Inodes per group:         2040
Inode blocks per group:   255
Filesystem created:       Thu Oct 22 15:31:22 2015
Last mount time:          n/a
Last write time:          Thu Oct 22 15:34:23 2015
Mount count:              0
Maximum mount count:      -1
Last checked:             Thu Oct 22 15:31:22 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:      5a87e558-f510-4ec5-8c63-de8c025def85
Journal backup:           inode blocks

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

Supprimez maintenant l'inode du journal :

root@debian8:~# fsck /dev/sda13
fsck from util-linux 2.25.2
e2fsck 1.42.12 (29-Aug-2014)
/dev/sda13: clean, 11/48960 files, 7731/195584 blocks

Créez un point de montage pour /dev/sda13 :

root@debian8:~# mkdir /mnt/sda13

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

root@debian8:~# mount -t ext3 /dev/sda13 /mnt/sda13
mount: wrong fs type, bad option, bad superblock on /dev/sda13,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

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

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

root@debian8:~# mount -t ext2 /dev/sda13 /mnt/sda13
root@debian8:~# 

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

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

root@debian8:~# umount /mnt/sda13

root@debian8:~# tune2fs -j /dev/sda13
tune2fs 1.42.12 (29-Aug-2014)
Creating journal inode: done

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

LAB #3 - Placer le Journal sur un autre Partition

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

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

root@debian8:~# mke2fs -O journal_dev /dev/sda12
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 487424 1k blocks and 0 inodes
Filesystem UUID: afc7fa56-461a-469b-b3fa-44f3dab662dc
Superblock backups stored on blocks: 

Zeroing journal device: root@debian8:~# 

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

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

                     
root@debian8:~# mke2fs -j -J device=/dev/sda12 /dev/sda13
mke2fs 1.42.12 (29-Aug-2014)
Using journal device's blocksize: 1024
/dev/sda13 contains a ext3 file system
	last mounted on Fri Oct 23 09:45:20 2015
Proceed anyway? (y,n) y
Creating filesystem with 195584 1k blocks and 48960 inodes
Filesystem UUID: 7576f36e-5e43-484c-868a-e63da2d7a068
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

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

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

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

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

root@debian8:~# tune2fs -i 100d /dev/sda13
tune2fs 1.42.12 (29-Aug-2014)
Setting interval between checks to 8640000 seconds

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

root@debian8:~# dumpe2fs /dev/sda13 | grep UUID
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem UUID:          7576f36e-5e43-484c-868a-e63da2d7a068
Journal UUID:             afc7fa56-461a-469b-b3fa-44f3dab662dc

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 cette page.

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

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

root@debian8:~# mkfs.ext4 /dev/sda12
mke2fs 1.42.12 (29-Aug-2014)
/dev/sda12 contains a jbd file system
Proceed anyway? (y,n) y
Creating filesystem with 487424 1k blocks and 121920 inodes
Filesystem UUID: 93bcb045-0c3a-4b26-8407-6b33c84ba4cb
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

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

Les options de cette commande sont :

root@debian8:~# 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]

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

root@debian8:~# dumpe2fs /dev/sda12 | more
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          93bcb045-0c3a-4b26-8407-6b33c84ba4cb
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              121920
Block count:              487424
Reserved block count:     24371
Free blocks:              461526
Free inodes:              121909
First block:              1
Block size:               1024
Fragment size:            1024
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:       Fri Oct 23 09:57:16 2015
Last mount time:          n/a
Last write time:          Fri Oct 23 09:57:16 2015
Mount count:              0
--More--

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

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

root@debian8:~# e2label /dev/sda12 my_ext4
root@debian8:~# dumpe2fs /dev/sda12 | more
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem volume name:   my_ext4
Last mounted on:          <not available>
Filesystem UUID:          93bcb045-0c3a-4b26-8407-6b33c84ba4cb
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              121920
Block count:              487424
Reserved block count:     24371
Free blocks:              461526
Free inodes:              121909
First block:              1
Block size:               1024
Fragment size:            1024
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:       Fri Oct 23 09:57:16 2015
Last mount time:          n/a
Last write time:          Fri Oct 23 10:00:09 2015
Mount count:              0
--More--

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

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

root@debian8:~# mkdir /mnt/sda12

root@debian8:~# 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.

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

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

root@debian8:~# mount /dev/sda12 /mnt/sda12

root@debian8:~# mount | grep sda12
/dev/sda12 on /mnt/sda12 type ext4 (rw,relatime,data=ordered)

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

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

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

root@debian8:~# mkfs.ext3 /dev/sda13
mke2fs 1.42.12 (29-Aug-2014)
/dev/sda13 contains a ext3 file system
	created on Fri Oct 23 09:52:56 2015
Proceed anyway? (y,n) y
Creating filesystem with 195584 1k blocks and 48960 inodes
Filesystem UUID: 637d05dc-c5df-4785-89a0-37138ff94ce5
Superblock backups stored on blocks: 
	8193, 24577, 40961, 57345, 73729

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

Montez maintenant /dev/sda13 sur /mnt/sda13 :

root@debian8:~# mount /dev/sda13 /mnt/sda13

root@debian8:~# ls -l /mnt/sda13
total 12
drwx------ 2 root root 12288 Oct 23 10:18 lost+found

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

root@debian8:~# touch /mnt/sda13/check_file

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

root@debian8:~# echo "check file" > /mnt/sda13/check_file

root@debian8:~# umount /mnt/sda13

Exécutez e2fsck sur /dev/sda13 :

root@debian8:~# e2fsck /dev/sda13
e2fsck 1.42.12 (29-Aug-2014)
/dev/sda13: clean, 12/48960 files, 11845/195584 blocks

Convertissez /dev/sda13 en Ext4 :

root@debian8:~# tune2fs -O extents,uninit_bg,dir_index /dev/sda13
tune2fs 1.42.12 (29-Aug-2014)

Optimisez le système de fichiers :

root@debian8:~# e2fsck -fDC0 /dev/sda13
e2fsck 1.42.12 (29-Aug-2014)
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/sda13: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sda13: 12/48960 files (0.0% non-contiguous), 11845/195584 blocks

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

root@debian8:~# mount -t ext3 /dev/sda13 /mnt/sda13
mount: wrong fs type, bad option, bad superblock on /dev/sda13,
       missing codepage or helper program, or other error

       In some cases useful info is found in syslog - try
       dmesg | tail or so.

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

root@debian8:~# mount /dev/sda13 /mnt/sda13

root@debian8:~# ls -l /mnt/sda13
total 13
-rw-r--r-- 1 root root    11 Oct 23 10:20 check_file
drwx------ 2 root root 12288 Oct 23 10:18 lost+found

root@debian8:~# cat /mnt/sda13/check_file
check file

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

root@debian8:~# dumpe2fs /dev/sda12 | grep UUID
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem UUID:          93bcb045-0c3a-4b26-8407-6b33c84ba4cb

root@debian8:~# dumpe2fs /dev/sda13 | grep UUID
dumpe2fs 1.42.12 (29-Aug-2014)
Filesystem UUID:          637d05dc-c5df-4785-89a0-37138ff94ce5

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 cette page.

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

Installez le paquet xfsprogs :

root@debian8:~# apt-get install xfsprogs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  mc-data
Use 'apt-get autoremove' to remove it.
Suggested packages:
  xfsdump attr quota
The following NEW packages will be installed:
  xfsprogs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 721 kB of archives.
After this operation, 3,851 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main xfsprogs i386 3.2.1 [721 kB]
Fetched 721 kB in 11s (61.9 kB/s) 
Selecting previously unselected package xfsprogs.
(Reading database ... 159613 files and directories currently installed.)
Preparing to unpack .../xfsprogs_3.2.1_i386.deb ...
Unpacking xfsprogs (3.2.1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up xfsprogs (3.2.1) ...
Processing triggers for libc-bin (2.19-18+deb8u1) ...

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

root@debian8:~# mkfs.xfs /dev/sda11
meta-data=/dev/sda11             isize=256    agcount=4, agsize=30528 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=122112, 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

Les options de cette commande sont :

root@debian8:~# 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).

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

root@debian8:~# xfs_info /dev/sda11
xfs_info: /dev/sda11 is not a mounted XFS filesystem

root@debian8:~# mkdir /mnt/sda11

root@debian8:~# mount -t xfs /dev/sda11 /mnt/sda11

root@debian8:~# xfs_info /dev/sda11
meta-data=/dev/sda11             isize=256    agcount=4, agsize=30528 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0        finobt=0
data     =                       bsize=4096   blocks=122112, 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

Notez que la partition XFS doit être monté pour pouvoir utiliser la commande xfs_info.

Les options de cette commande sont :

root@debian8:~# xfs_info --help
Illegal option --
Usage: xfs_info [-V] [-t mtab] mountpoint

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

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

root@debian8:~# xfs_admin -L my_xfs /dev/sda11
xfs_admin: /dev/sda11 contains a mounted filesystem

fatal error -- couldn't initialize XFS library

root@debian8:~# umount /dev/sda11

root@debian8:~# xfs_admin -L my_xfs /dev/sda11
writing all SBs
new label = "my_xfs"

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

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

root@debian8:~# xfs_admin -l /dev/sda11
label = "my_xfs"

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

Les options de cette commande sont :

root@debian8:~# xfs_admin --help
Illegal option --
Usage: xfs_admin [-efjlpuV] [-c 0|1] [-L label] [-U uuid] device

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

root@debian8:~# xfs_admin -u /dev/sda11
UUID = 07e8787d-23d6-451e-9bb7-e3d02ae2f075

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.

Important - Veuillez noter que le support des systèmes de fichiers ReiserFS, JFS et Btrfs est absent du noyau des distributions de Red Hat. Pour cette raison, l'étude de ces trois systèmes de fichiers doit être faite en utilisant la VM Debian 8.

ReiserFS

ReiserFS permet :

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

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

Avant de continuer, installer le paquet reiserfsprogs :

root@debian8:~# apt-get install reiserfsprogs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  mc-data
Use 'apt-get autoremove' to remove it.
The following NEW packages will be installed:
  reiserfsprogs
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 229 kB of archives.
After this operation, 1,103 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main reiserfsprogs i386 1:3.6.24-1 [229 kB]
Fetched 229 kB in 0s (324 kB/s)       
Selecting previously unselected package reiserfsprogs.
(Reading database ... 159667 files and directories currently installed.)
Preparing to unpack .../reiserfsprogs_1%3a3.6.24-1_i386.deb ...
Unpacking reiserfsprogs (1:3.6.24-1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up reiserfsprogs (1:3.6.24-1) ...

LAB #10 - Créer un Système de Fichiers ReiserFS

Créez un système de fichiers ReiserFS sur la partition /dev/sda9 :

root@debian8:~# mkfs.reiserfs /dev/sda9
mkfs.reiserfs 3.6.24

Guessing about desired format.. Kernel 3.16.0-4-586 is running.
Format 3.6 with standard journal
Count of blocks on the device: 121856
Number of blocks consumed by mkreiserfs formatting process: 8215
Blocksize: 4096
Hash function used to sort names: "r5"
Journal Size 8193 blocks (first block 18)
Journal Max transaction length 1024
inode generation number: 0
UUID: 19ef2a56-7b36-4c8c-a5f9-420cf95bf87f
ATTENTION: YOU SHOULD REBOOT AFTER FDISK!
	ALL DATA WILL BE LOST ON '/dev/sda9'!
Continue (y/n):y
Initializing journal - 0%....20%....40%....60%....80%....100%
Syncing..ok
ReiserFS is successfully created on /dev/sda9.

Les options de cette commande sont :

root@debian8:~# mkfs.reiserfs --help
mkfs.reiserfs: unrecognized option '--help'
Usage: mkfs.reiserfs [options]  device [block-count]

Options:

  -b | --block-size N              size of file-system block, in bytes
  -j | --journal-device FILE       path to separate device to hold journal
  -s | --journal-size N            size of the journal in blocks
  -o | --journal-offset N          offset of the journal from the start of
                                   the separate device, in blocks
  -t | --transaction-max-size N    maximal size of transaction, in blocks
  -B | --badblocks file            store all bad blocks given in file on the fs
  -h | --hash rupasov|tea|r5       hash function to use by default
  -u | --uuid UUID                 store UUID in the superblock
  -l | --label LABEL               store LABEL in the superblock
  --format 3.5|3.6                 old 3.5 format or newer 3.6
  -f | --force                     specified once, make mkreiserfs the whole
                                   disk, not block device or mounted partition;
                                   specified twice, do not ask for confirmation
  -q | --quiet                     quiet work without messages, progress and
                                   questions. Useful if run in a script. For use
                                   by end users only.
  -d | --debug                     print debugging information during mkreiser
  -V                               print version and exit

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

root@debian8:~# debugreiserfs /dev/sda9
debugreiserfs 3.6.24


Filesystem state: consistent

Reiserfs super block in block 16 on 0x809 of format 3.6 with standard journal
Count of blocks on the device: 121856
Number of bitmaps: 4
Blocksize: 4096
Free blocks (count of blocks - used [journal, bitmaps, data, reserved] blocks): 113641
Root block: 8211
Filesystem is clean
Tree height: 2
Hash function used to sort names: "r5"
Objectid map size 2, max 972
Journal parameters:
	Device [0x0]
	Magic [0x4c47fce6]
	Size 8193 blocks (including 1 for journal header) (first block 18)
	Max transaction length 1024 blocks
	Max batch size 900 blocks
	Max commit age 30
Blocks reserved by journal: 0
Fs state field: 0x0:
sb_version: 2
inode generation number: 0
UUID: 19ef2a56-7b36-4c8c-a5f9-420cf95bf87f
LABEL: 
Set flags in SB:
	ATTRIBUTES CLEAN
Mount count: 1
Maximum mount count: 30
Last fsck run: Fri Oct 23 10:52:48 2015
Check interval in days: 180

Les options de cette commande sont :

root@debian8:~# debugreiserfs --help
debugreiserfs: invalid option -- '-'
debugreiserfs: invalid option -- 'h'
debugreiserfs: invalid option -- 'e'
Usage: debugreiserfs [options] device

Options:
  -d		print blocks details of the internal tree
  -D		print blocks details of all used blocks
  -B file	extract list of badblocks
  -m		print bitmap blocks
  -o		print objectid map

  -J		print journal header
  -j filename
		print journal located on the device 'filename'
  		stores the journal in the specified file 'filename.
  -p		send filesystem metadata to stdout
  -u		read stdin and unpack the metadata
  -S		handle all blocks, not only used
  -1 block	block to print
  -q		no speed info
  -V		print version and exit

LAB #11 - Ajouter une Etiquette au Système de Fichiers ReiserFS

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

root@debian8:~# reiserfstune -l my_reiserfs /dev/sda9
reiserfstune: Journal device has not been specified. Assuming journal is on the main device (/dev/sda9).

Current parameters:

Filesystem state: consistent

Reiserfs super block in block 16 on 0x809 of format 3.6 with standard journal
Count of blocks on the device: 121856
Number of bitmaps: 4
Blocksize: 4096
Free blocks (count of blocks - used [journal, bitmaps, data, reserved] blocks): 113641
Root block: 8211
Filesystem is clean
Tree height: 2
Hash function used to sort names: "r5"
Objectid map size 2, max 972
Journal parameters:
	Device [0x0]
	Magic [0x4c47fce6]
	Size 8193 blocks (including 1 for journal header) (first block 18)
	Max transaction length 1024 blocks
	Max batch size 900 blocks
	Max commit age 30
Blocks reserved by journal: 0
Fs state field: 0x0:
sb_version: 2
inode generation number: 0
UUID: 19ef2a56-7b36-4c8c-a5f9-420cf95bf87f
LABEL: my_reiserfs
Set flags in SB:
	ATTRIBUTES CLEAN
Mount count: 1
Maximum mount count: 30
Last fsck run: Fri Oct 23 10:52:48 2015
Check interval in days: 180

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

Les options de cette commande sont :

root@debian8:~# reiserfstune --help
reiserfstune: Usage: reiserfstune [options] device [block-count]

Options:

  -j | --journal-device file	current journal device
  --journal-new-device file	new journal device
  -o | --journal-new-offset N	new journal offset in blocks
  -s | --journal-new-size N	new journal size in blocks
  -t | --trans-max-size N	new journal max transaction size in blocks
  --no-journal-available	current journal is not available
  --make-journal-standard	new journal to be standard
  -b | --add-badblocks file	add to bad block list
  -B | --badblocks file		set the bad block list
  -u | --uuid UUID|random	set new UUID
  -l | --label LABEL		set new label
  -f | --force			force tuning, less confirmations
  -c | --check-interval		set interval in days for fsck -a to check,
                       		"disable" to disable check,
                       		or "default" to restore default
  -C | --time-last-checked	set the time the filesystem was last checked
                          	(now or YYYYMMDD[HH[MM[SS]]])
  -m | --max-mnt-count		set maximum number of mounts before fsck -a
                      		checks, "disable" to disable check,
                      		or "default" to restore default
  -M | --mnt-count		set the number of times the filesystem
                  		has been mounted
  -h | --help			print help and exit
  -V				print version and exit

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

root@debian8:~# debugreiserfs /dev/sda9 | grep UUID
debugreiserfs 3.6.24

UUID: 19ef2a56-7b36-4c8c-a5f9-420cf95bf87f

JFS

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

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

Avant de continuer, installer le paquet jfsutils :

root@debian8:~# apt-get install jfsutils
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  mc-data
Use 'apt-get autoremove' to remove it.
The following NEW packages will be installed:
  jfsutils
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 292 kB of archives.
After this operation, 1,128 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main jfsutils i386 1.1.15-2.1 [292 kB]
Fetched 292 kB in 0s (308 kB/s)
Selecting previously unselected package jfsutils.
(Reading database ... 159695 files and directories currently installed.)
Preparing to unpack .../jfsutils_1.1.15-2.1_i386.deb ...
Unpacking jfsutils (1.1.15-2.1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up jfsutils (1.1.15-2.1) ...

LAB #12 - Créer un Système de Fichiers JFS

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

root@debian8:~# mkfs.jfs /dev/sda6
mkfs.jfs version 1.1.15, 04-Mar-2011
Warning!  All data on device /dev/sda6 will be lost!

Continue? (Y/N) y
   |

Format completed successfully.

488448 kilobytes total disk space.

Les options de cette commande sont :

root@debian8:~# mkfs.jfs --help
mkfs.jfs version 1.1.15, 04-Mar-2011
mkfs.jfs: invalid option -- '-'

Usage:  mkfs.jfs [-cOqV] [-j log_device] [-J options] [-L vol_label] [-s log_size] device [ blocks ]

Emergency help:
 -c            Check device for bad blocks before building file system.
 -O            Provide case-insensitive support for OS/2 compatability.
 -q            Quiet execution.
 -V            Print version information only.
 -j log_device Set external journal device.
 -J options    Set external journal options.
 -L vol_label  Set volume label for the file system.
 -s log_size   Set log size (in megabytes).

NOTE: -j and -J cannot be used at the same time.

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

root@debian8:~# jfs_tune -l /dev/sda6
jfs_tune version 1.1.15, 04-Mar-2011

JFS filesystem superblock:

JFS magic number:	'JFS1'
JFS version:		1
JFS state:		clean
JFS flags:		JFS_LINUX  JFS_COMMIT  JFS_GROUPCOMMIT  JFS_INLINELOG  
Aggregate block size:	4096 bytes
Aggregate size:		972360 blocks
Physical block size:	512 bytes
Allocation group size:	8192 aggregate blocks
Log device number:	0x0
Filesystem creation:	Fri Oct 23 11:00:25 2015
Volume label:		''

Les options de cette commande sont :

root@debian8:~# jfs_tune --help
jfs_tune version 1.1.15, 04-Mar-2011
jfs_tune: invalid option -- '-'

Usage:  jfs_tune [-J options] [-l] [-L vol_label] [-U uuid] [-V] device

Emergency help:
 -J options    Set external journal options.
 -l            Display superblock
 -L vol_label  Set volume label.
 -U uuid       Set UUID.
 -V            Print version information only.

LAB #13 - Ajouter une Etiquette au Système de Fichiers JFS

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

root@debian8:~# jfs_tune -L my_jfs /dev/sda6
jfs_tune version 1.1.15, 04-Mar-2011
Volume label updated successfully.

root@debian8:~# jfs_tune -l /dev/sda6
jfs_tune version 1.1.15, 04-Mar-2011

JFS filesystem superblock:

JFS magic number:	'JFS1'
JFS version:		1
JFS state:		clean
JFS flags:		JFS_LINUX  JFS_COMMIT  JFS_GROUPCOMMIT  JFS_INLINELOG  
Aggregate block size:	4096 bytes
Aggregate size:		972360 blocks
Physical block size:	512 bytes
Allocation group size:	8192 aggregate blocks
Log device number:	0x0
Filesystem creation:	Fri Oct 23 11:00:25 2015
Volume label:		'my_jfs'

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

Créez maintenant un UUID pour le système de fichiers :

root@debian8:~# jfs_tune -U random /dev/sda6
jfs_tune version 1.1.15, 04-Mar-2011
UUID updated successfully.

Dernièrement, pour visualiser l'UUID du système de fichiers, utilisez les commandes jfs_tune et grep :

root@debian8:~# jfs_tune -l /dev/sda6 | grep UUID
File system UUID:	5a98ef13-e89f-4b00-addc-f6477e3747e2
External log UUID:	00000000-0000-0000-0000-000000000000

Btrfs

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

A noter sont les points suivants :

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

Avant de continuer, installer le paquet btrfs-tools :

root@debian8:~# apt-get install btrfs-tools
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following package was automatically installed and is no longer required:
  mc-data
Use 'apt-get autoremove' to remove it.
The following NEW packages will be installed:
  btrfs-tools
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 460 kB of archives.
After this operation, 3,227 kB of additional disk space will be used.
Get:1 http://httpredir.debian.org/debian/ jessie/main btrfs-tools i386 3.17-1.1 [460 kB]
Fetched 460 kB in 1s (400 kB/s)      
Selecting previously unselected package btrfs-tools.
(Reading database ... 159719 files and directories currently installed.)
Preparing to unpack .../btrfs-tools_3.17-1.1_i386.deb ...
Unpacking btrfs-tools (3.17-1.1) ...
Processing triggers for man-db (2.7.0.2-5) ...
Setting up btrfs-tools (3.17-1.1) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools (0.120) ...
update-initramfs: Generating /boot/initrd.img-3.16.0-4-586
Processing triggers for libc-bin (2.19-18+deb8u1) ...

LAB #14 - Créer un Système de Fichiers Btrfs

Créez un système de fichiers Btrfs sur /dev/mapper/vg0-lv1 :

root@debian8:~# mkfs.btrfs /dev/mapper/vg0-lv1
SMALL VOLUME: forcing mixed metadata/data groups
Btrfs v3.17
See http://btrfs.wiki.kernel.org for more information.

Turning ON incompat feature 'mixed-bg': mixed data and metadata block groups
Turning ON incompat feature 'extref': increased hardlink limit per file to 65536
Created a data/metadata chunk of size 8388608
fs created label (null) on /dev/mapper/vg0-lv1
	nodesize 4096 leafsize 4096 sectorsize 4096 size 104.00MiB

Les options de cette commande sont :

root@debian8:~# mkfs.btrfs --help
mkfs.btrfs: unrecognized option '--help'
usage: mkfs.btrfs [options] dev [ dev ... ]
options:
	 -A --alloc-start the offset to start the FS
	 -b --byte-count total number of bytes in the FS
	 -d --data data profile, raid0, raid1, raid5, raid6, raid10, dup or single
	 -f --force force overwrite of existing filesystem
	 -l --leafsize size of btree leaves
	 -L --label set a label
	 -m --metadata metadata profile, values like data profile
	 -M --mixed mix metadata and data together
	 -n --nodesize size of btree nodes
	 -s --sectorsize min block allocation (may not mountable by current kernel)
	 -r --rootdir the source directory
	 -K --nodiscard do not perform whole device TRIM
	 -O --features comma separated list of filesystem features
	 -U --uuid specify the filesystem UUID
	 -V --version print the mkfs.btrfs version and exit
Btrfs v3.17

Montez la partition btrfs sur /mnt :

root@debian8:~# mount -t btrfs /dev/vg0/lv1 /mnt/
root@debian8:~# mount | grep btrfs
/dev/mapper/vg0-lv1 on /mnt type btrfs (rw,relatime,space_cache)

Sous Btrfs, il est possible de créer des sous volumes. Pour comprendre, comparez notre partition Btrfs à un VG et des sous volumes comme des LV :

root@debian8:~# btrfs subvolume create /mnt/volume1
Create subvolume '/mnt/volume1'
root@debian8:~# btrfs subvolume list /mnt/
ID 256 gen 6 top level 5 path volume1
root@debian8:~# ls -l /mnt
total 0
drwxr-xr-x 1 root root 0 Oct 23 11:50 volume1

Important - L'ID identifie le volume d'une manière unique.

LAB #15 - Convertir un Système de Fichiers Ext4 en Brtfs

Agrandisez le volume logique /dev/vg0/lv2 :

root@debian8:~# lvextend -L +600M /dev/vg0/lv2
  Using stripesize of last segment 64.00 KiB
  Rounding size (89 extents) up to stripe boundary size for segment (90 extents)
  Size of logical volume vg0/lv2 changed from 112.00 MiB (14 extents) to 720.00 MiB (90 extents).
  Logical volume lv2 successfully resized

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

root@debian8:~# mkfs.ext4 /dev/vg0/lv2
mke2fs 1.42.12 (29-Aug-2014)
Creating filesystem with 184320 4k blocks and 46080 inodes
Filesystem UUID: 78894e95-7847-419c-b41d-458a1115c5ad
Superblock backups stored on blocks: 
	32768, 98304, 163840

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

Convertissez maintenant le systèm de fichiers Ext4 en Btrfs :

root@debian8:~# btrfs-convert /dev/vg0/lv2
creating btrfs metadata.
creating ext2fs image file.
cleaning up system chunk.
conversion complete. 

Visualisez les systèmes de fichiers Btrfs :

root@debian8:~# btrfs filesystem show
Label: none  uuid: c4441ea1-0b4b-4d7a-9777-5663b542c74e
	Total devices 1 FS bytes used 36.00KiB
	devid    1 size 104.00MiB used 12.00MiB path /dev/mapper/vg0-lv1

Label: none  uuid: d24a3b9f-2ebd-4321-a408-91e0fa698f0a
	Total devices 1 FS bytes used 28.08MiB
	devid    1 size 720.00MiB used 720.00MiB path /dev/mapper/vg0-lv2

Btrfs v3.17

Ajouter la partition /dev/vg0/lv2 à /mnt :

root@debian8:~# btrfs device add /dev/vg0/lv2 /mnt/
/dev/vg0/lv2 appears to contain an existing filesystem (btrfs).
Use the -f option to force overwrite.

root@debian8:~# btrfs device add -f /dev/vg0/lv2 /mnt/

root@debian8:~# btrfs filesystem show
Label: none  uuid: c4441ea1-0b4b-4d7a-9777-5663b542c74e
	Total devices 2 FS bytes used 36.00KiB
	devid    1 size 104.00MiB used 12.00MiB path /dev/mapper/vg0-lv1
	devid    2 size 720.00MiB used 0.00B path /dev/mapper/vg0-lv2

Btrfs v3.17

root@debian8:~# df -h
Filesystem           Size  Used Avail Use% Mounted on
/dev/sda1            9.1G  4.1G  4.5G  48% /
udev                  10M     0   10M   0% /dev
tmpfs                202M  4.9M  197M   3% /run
tmpfs                505M  220K  504M   1% /dev/shm
tmpfs                5.0M  4.0K  5.0M   1% /run/lock
tmpfs                505M     0  505M   0% /sys/fs/cgroup
tmpfs                101M  8.0K  101M   1% /run/user/119
tmpfs                101M   12K  101M   1% /run/user/1000
/dev/mapper/vg0-lv1  824M   36K  819M   1% /mnt

LAB #16 - Créer un Snapshot

Creéz un snapshot du volume /mnt :

root@debian8:~# btrfs subvolume snapshot /mnt /mnt/snapshot
Create a snapshot of '/mnt' in '/mnt/snapshot'

root@debian8:~# ls -l /mnt
total 4
drwxr-xr-x 1 root root 14 Oct 23 11:47 snapshot
drwxr-xr-x 1 root root  0 Oct 23 11:50 volume1

Démontez le système de fichiers btrfs :

root@debian8:~# umount /mnt

Montez ensuite le snapshot :

root@debian8:~# mount -o subvol=snapshot /dev/vg0/lv1 /mnt/
root@debian8:~# ls -l /mnt
total 0
drwxr-xr-x 1 root root 0 Oct 23 13:46 volume1
root@debian8:~# btrfs filesystem df /mnt/
System, single: total=4.00MiB, used=4.00KiB
Data+Metadata, single: total=8.00MiB, used=44.00KiB
GlobalReserve, single: total=4.00MiB, used=0.00B

LAB #17 - Ajouter une Etiquette au Système de Fichiers Btrfs

Pour voir les caractéristques du système de fichiers Btrfs, utilisez la commande suivante :

root@debian8:~# btrfs-show-super /dev/vg0/lv1
superblock: bytenr=65536, device=/dev/vg0/lv1
---------------------------------------------------------
csum			0xb649976a [match]
bytenr			65536
flags			0x1
magic			_BHRfS_M [match]
fsid			c4441ea1-0b4b-4d7a-9777-5663b542c74e
label			
generation		12
root			4218880
sys_array_size		97
chunk_root_generation	8
root_level		1
chunk_root		135168
chunk_root_level	0
log_root		0
log_root_transid	0
log_root_level		0
total_bytes		864026624
bytes_used		49152
sectorsize		4096
nodesize		4096
leafsize		4096
stripesize		4096
root_dir		6
num_devices		2
compat_flags		0x0
compat_ro_flags		0x0
incompat_flags		0x45
			( MIXED_BACKREF |
			  MIXED_GROUPS |
			  EXTENDED_IREF )
csum_type		0
csum_size		4
cache_generation	12
uuid_tree_generation	12
dev_item.uuid		0eeb0660-05cc-400c-89be-a26210567872
dev_item.fsid		c4441ea1-0b4b-4d7a-9777-5663b542c74e [match]
dev_item.type		0
dev_item.total_bytes	109051904
dev_item.bytes_used	12582912
dev_item.io_align	4096
dev_item.io_width	4096
dev_item.sector_size	4096
dev_item.devid		1
dev_item.dev_group	0
dev_item.seek_speed	0
dev_item.bandwidth	0
dev_item.generation	0

Créez un une etiquette avec la commande btrfs filesystem label :

root@debian8:~# btrfs filesystem label /mnt my_btrfs
root@debian8:~# btrfs-show-super /dev/vg0/lv1
superblock: bytenr=65536, device=/dev/vg0/lv1
---------------------------------------------------------
csum			0x1ad1feb0 [match]
bytenr			65536
flags			0x1
magic			_BHRfS_M [match]
fsid			c4441ea1-0b4b-4d7a-9777-5663b542c74e
label			my_btrfs
generation		13
root			4202496
sys_array_size		97
chunk_root_generation	8
root_level		1
chunk_root		135168
chunk_root_level	0
log_root		0
log_root_transid	0
log_root_level		0
total_bytes		864026624
bytes_used		49152
sectorsize		4096
nodesize		4096
leafsize		4096
stripesize		4096
root_dir		6
num_devices		2
compat_flags		0x0
compat_ro_flags		0x0
incompat_flags		0x45
			( MIXED_BACKREF |
			  MIXED_GROUPS |
			  EXTENDED_IREF )
csum_type		0
csum_size		4
cache_generation	13
uuid_tree_generation	13
dev_item.uuid		0eeb0660-05cc-400c-89be-a26210567872
dev_item.fsid		c4441ea1-0b4b-4d7a-9777-5663b542c74e [match]
dev_item.type		0
dev_item.total_bytes	109051904
dev_item.bytes_used	12582912
dev_item.io_align	4096
dev_item.io_width	4096
dev_item.sector_size	4096
dev_item.devid		1
dev_item.dev_group	0
dev_item.seek_speed	0
dev_item.bandwidth	0
dev_item.generation	0

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

<html>

Copyright © 2004-2016 Hugh Norris.<br><br> <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”><img alt=“Licence Creative Commons” style=“border-width:0” src=“http://i.creativecommons.org/l/by-nc-nd/3.0/fr/88x31.png” /></a><br />Ce(tte) oeuvre est mise à disposition selon les termes de la <a rel=“license” href=“http://creativecommons.org/licenses/by-nc-nd/3.0/fr/”>Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Pas de Modification 3.0 France</a>.

</html>


Menu