tmpfs (Français)

É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