TP5 - Systèmes de fichiers
1. Création d'un système de fichiers
Pour ce TP, utilisez l'image QEMU dédié à votre filer (Debian). Vous pouvez utiliser un nouveau disque virtuel pour faire vos essais en toute tranquillité, sa taille pouvant être minimale:
$ qemu-img create filesys-test.img 50M $ qemu -hdb filesys-test.img debian.img [ .... votre système boote, puis dans votre système virtuel: ] # cfdisk /dev/hdb [ Créez une simple partition ] # mke2fs /dev/hdb1
Notez bien la taille exacte de votre partition. Puis étudiez les options de création ext2/ext3 avec man mke2fs
:
- Comment expliquez-vous l'unité de l'option -i (inodes/octet) ? Quelle est la différence avec l'option -I ?
- Créez un système de fichier avec la valeur minimale pour l'option -i, montez-le et observez les valeurs pour l'espace total et l'espace libre du système de fichier: comment expliquez vous les différences avec la taille de la partition ? (Aide: regardez -m)
- Mêmes questions (création et montage du système de fichier) mais avec la valeur maximale de l'option -i
2. Liens
Créez un fichier de test avec un contenu quelconque dénommé original. Créez ensuite un lien symbolique vers ce fichier appelé symbolique puis un lien hard hard.
- Utilisez
stat
sur le fichier original et ses liens, qu'observez-vous ? Que veut-dire le champ Links ? - Pouvez-vous créer ces mêmes liens sur un autre système de fichier ? (ex: dans /tmp)
3. Trous
Trouvez une façon de créer un "fichier à trou" dont la taille apparente est deux fois supérieure à la capacité de votre système de fichier, à l'aide de la commande dd
.
Trouvez deux manières d'afficher (commandes Unix) la taille réellement occupée sur le disque par ce fichier.
Pouvez-vous l'archiver de manière intelligente avec tar
?
4. Attributs
Quelle est la différence entre la dernière date de modification et celle de "changement" affichés par la commande stat
? Quel est l'interêt de l'option de montage noatime
(man mount
) ?
Pourriez-vous rendre un fichier in-modifiable et indestructible pour toute application et/ou utilisateur ne connaissant pas chattr
?
Quel est l'intérêt de chattr -j
?
Si le système de fichier est monté avec l'option noexec
(man mount
), pouvez-vous trouver un moyen d'exécuter un script présent sur ce sytème de fichier ?