tmpfs (Français) - ArchWiki

Jump to content
From ArchWiki

État de la traduction: Cet article est la version francophone de Tmpfs. Date de la dernière traduction: 2022-10-03. Vous pouvez aider à synchroniser la traduction s'il y a eu des changements dans la version anglaise.

tmpfs est un système de fichiers temporaire qui réside en mémoire et/ou sur une ou plusieurs partitions d'échange. Monter des répertoires en tant que tmpfs peut être un moyen efficace d'accélérer les accès à leurs fichiers ou de s'assurer que leur contenu est automatiquement effacé au redémarrage.

Astuce: Les fichiers temporaires dans les répertoires tmpfs peuvent être recréés au démarrage en utilisant systemd-tmpfiles.

## Utilisation

Les répertoires où tmpfs(5) est couramment utilisé sont /tmp, /var/lock et /var/run. Ne l'utilisez pas sur /var/tmp, car ce répertoire est destiné aux fichiers temporaires qui sont préservés lors des redémarrages.

Arch utilise un répertoire tmpfs `/run`, avec `/var/run` et `/var/lock` existant simplement comme liens symboliques pour la compatibilité. Il est également utilisé pour `/tmp` par la configuration par défaut de systemd et ne nécessite pas d'entrée dans fstab sauf si une configuration spécifique est nécessaire.

glibc 2.2 et supérieur s'attend à ce que tmpfs soit monté sur `/dev/shm` pour POSIX shared memory. Le montage de tmpfs sur `/dev/shm` est géré automatiquement par systemd et une configuration manuelle dans fstab n'est pas nécessaire.

En général, les tâches et les programmes qui exécutent des opérations de lecture/écriture fréquentes peuvent bénéficier de l'utilisation d'un répertoire tmpfs. Certaines applications peuvent même bénéficier d'un gain substantiel en déchargeant une partie (ou la totalité) de leurs données sur la mémoire partagée. Par exemple, la relocalisation du profil de Firefox en RAM montre une amélioration significative des performances.

## Exemples

Note: La consommation réelle de mémoire/swap dépend de la quantité utilisée, car les partitions tmpfs ne consomment pas de mémoire avant d'en avoir réellement besoin.

Par défaut, la taille maximale d'une partition tmpfs est fixée à la moitié de la RAM disponible, mais il est possible de modifier cette valeur. Pour définir explicitement une taille maximale, dans cet exemple pour remplacer le montage `/tmp` par défaut, utilisez l'option de montage `size` :

    /etc/fstab

    tmpfs /tmp tmpfs rw,nodev,nosuid,size=2G 0 0

Pour spécifier un montage plus sécurisé, spécifiez l'option de montage suivante :

    /etc/fstab

    tmpfs /www/cache tmpfs rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=user,gid=group,mode=1700 0 0

Consultez la page de manuel tmpfs(5) et Security#File systems pour plus d'informations.

Redémarrez pour que les changements prennent effet. Notez que même s'il peut être tentant d'exécuter simplement `mount -a` pour que les changements prennent effet immédiatement, cela rendra inaccessibles tous les fichiers résidant actuellement dans ces répertoires (ceci est particulièrement problématique pour l'exécution de programmes avec des fichiers de verrouillage, par exemple). Cependant, si tous ces répertoires sont vides, il devrait être sûr d'exécuter `mount -a` au lieu de redémarrer (ou de les monter individuellement).

Après avoir appliqué les changements, vérifiez qu'ils ont pris effet en regardant dans `/proc/mounts` et en utilisant `findmnt` :

    $ findmnt /tmp

    SOURCE CIBLE OPTIONS FSTYPE
    /tmp tmpfs tmpfs rw,nosuid,nodev,relatime

Les tmpfs peuvent également être temporairement redimensionnés sans avoir besoin de redémarrer, par exemple lorsqu'un gros travail de compilation doit être exécuté prochainement. Dans ce cas, exécutez :

    # mount -o remount,size=4G /tmp

## Désactiver le montage automatique

Sous systemd, `/tmp` est automatiquement monté en tant que tmpfs, si ce n'est pas déjà un point de montage dédié (soit tmpfs, soit sur le disque) dans `/etc/fstab`. Pour désactiver le montage automatique, masquez l'unité `tmp.mount`.

Les fichiers ne seront plus stockés dans un tmpfs, mais sur le périphérique de type bloc à la place. Le contenu de `/tmp` sera maintenant préservé entre les redémarrages, ce qui peut ne pas être le comportement souhaité. Pour retrouver le comportement précédent et nettoyer le répertoire `/tmp` automatiquement au redémarrage, pensez à utiliser tmpfiles.d(5) :

    /etc/tmpfiles.d/tmp.conf

    # consultez tmpfiles.d(5)
    # toujours activer le nettoyage du répertoire /tmp
    D ! /tmp 1777 root root 0

    # supprimer les fichiers de /var/tmp vieux de plus de 10 jours
    D /var/tmp 1777 root root 10d

    # les points de montage des espaces de noms (PrivateTmp=yes) sont exclus de la suppression
    x /tmp/systemd-private-*
    x /var/tmp/systemd-private-*
    X /tmp/systemd-private-*/tmp
    X /var/tmp/systemd-private-*/tmp

## Dépannage

### L'ouverture de liens symboliques dans tmpfs en tant que root échoue

Si `/tmp` utilise tmpfs, changez le répertoire actuel en `/tmp`, puis créez un fichier et un lien symbolique vers ce fichier dans le même répertoire `/tmp`. Il faut s'attendre à des erreurs de permission refusée lors de la tentative de lecture du lien symbolique car `/tmp` a le bit collant activé.

Ce comportement peut être contrôlé via `/proc/sys/fs/protected_symlinks` ou simplement via sysctl : `sysctl -w fs.protected_symlinks=0`. Consultez Sysctl#Configuration pour rendre cela permanent.

Attention: Modifier ce comportement peut entraîner des problèmes de sécurité!

## Voir aussi

- Documentation du noyau Linux

Category:

- File systems (Français)