web-dev-qa-db-fra.com

Ramdisk / tmpfs qui ne supprime pas les sous-dossiers et les liens symboliques au redémarrage

J'ai créé un disque dur temporaire qui utilise la mémoire système (ramdisk) avec ces commandes:

Sudo mkdir -p /media/ramdisk
Sudo mount -t tmpfs -o size=2048M tmpfs /media/ramdisk

Après cela, j'ai créé un sous-dossier (flux) sur le disque virtuel

J'ai réussi à garder le ramdisk au redémarrage en ajoutant cette ligne:

grep /media/ramdisk /etc/mtab | Sudo tee -a /etc/fstab

Et j'ai créé un lien symbolique depuis mon dossier/home/ubuntumaster/stream vers mon dossier/media/ramdisk/stream avec la commande suivante:

ln -s /media/ramdisk/stream /home/ubuntumaster/streamer/stream

Mais lors du redémarrage, le lien symbolique et le sous-dossier du ramdisk sont supprimés. Comment rendre permanent ce lien symbolique? Il en va de même pour le sous-dossier du disque virtuel.

Sinon, je devrai créer le sous-dossier sur le ramdisk et le lien symbolique à chaque redémarrage.

1
Sambir

Un redémarrage n'est pas nécessaire pour vider une monture tmpfs. Si vous mount un montage tmpfs, puis remplissez-le (par exemple, créez un sous-répertoire sous le montage), puis umount, votre sous-répertoire a disparu (si vous refaites le monter, il commence vide). Si vous voulez la persistance entre les montages (et encore moins les redémarrages), tmpfs en lui-même ne suffira pas.

Une façon d'utiliser tmpfs de telle manière que le montage est initialement non vide consiste à utiliser OverlayFS , avec un répertoire inférieur non vide et un montage tmpfs comme supérieur annuaire.

Votre question dit que le lien symbolique disparaît à la suite du redémarrage, mais je ne pense pas que ce soit le cas. Le lien symbolique, dans un répertoire persistant, pointe vers un répertoire (éventuellement inexistant) dans le montage tmpfs.

Une approche plus simple qui pourrait convenir à vos besoins consiste à remplacer le lien symbolique par un point de montage tmpfs, en utilisant quelque chose comme ceci:

rm /home/ubuntumaster/streamer/stream
mkdir /home/ubuntumaster/streamer/stream
Sudo mount -t tmpfs -o size=2048M tmpfs /home/ubuntumaster/streamer/stream

Si vous choisissez d'utiliser /home/ubuntumaster/streamer/stream comme point de montage plutôt que comme lien symbolique, le /etc/fstab car cela pourrait ressembler à ceci:

tmpfs /home/ubuntumaster/streamer/stream tmpfs rw,size=2048M 0 0

Si vous préférez utiliser un lien symbolique, la cible du lien symbolique peut être le point de montage tmpfs; cela pourrait ressembler à ceci:

Sudo mkdir -p /media/stream
Sudo mount -t tmpfs -o size=2048M tmpfs /media/stream
ln -s /media/stream /home/ubuntumaster/streamer/stream

Vous pouvez éviter les problèmes lors du redémarrage en testant les modifications apportées à /etc/fstab en utilisant la commande mount avant de redémarrer. Dans le cas où /home/ubuntumaster/streamer/stream n'est pas un lien symbolique, c'est peut-être cela (après avoir modifié /etc/fstab):

Sudo mount /home/ubuntumaster/streamer/stream

Si, par exemple, vous ignorez par erreur le mkdir, mount se plaindra du point de montage manquant.

0
Eirik Fuller