Comment créer un disque RAM?

55

Je veux faire une partition qui est faite de bélier ...

Exemple

Dans Windows 7, vous pouvez créer une partition en RAM.

entrez la description de l'image ici

J'ai créé 1 Go de partition en RAM. en utilisant Primo RamDisk

Y a-t-il une bonne alternative dans Ubuntu?

Un zéro
la source
3
Ubuntu est livré avec les tmpfs. Vous n'avez pas besoin de créer un RAMDISK.
mixdev
Selon le cas d'utilisation que vous envisagez, vous n'aurez peut-être pas besoin d'un disque virtuel pour Ubuntu (ou de la plupart des distributions Linux). Le système d'exploitation met en cache les activités de lecture et d'écriture sur la RAM pendant qu'il travaille avec des disques normaux. Si vous lisez un petit fichier plusieurs fois, il ne sera extrait qu'une seule fois du disque, puis de la mémoire cache RAM aux heures suivantes. Si vous avez beaucoup de RAM, tout ce que vous ferez sera mis en cache de cette manière, ce qui vous évitera très peu d’activité répétée sur le disque. Si vous souhaitez utiliser une mémoire rapide non persistante au lieu de fichiers, vous avez encore besoin d'un RAMDISK. Voir linuxatemyram.com pour plus de détails.
TafT

Réponses:

77

Cela vous montrera comment faire un RAMDISK très rapidement et facilement. Avec un disque RAMDISK, vous pouvez utiliser votre mémoire pour un espace temporaire. Elle est également beaucoup plus rapide que votre disque dur.

Maintenant, commençons par utiliser les 2 commandes suivantes pour créer votre RAMDISK.

Mettez tout ce que vous voulez que votre RAMDISK soit appelé là où j'ai écrit «nameme».

mkdir -p /media/nameme

mount -t tmpfs -o size=2048M tmpfs /media/nameme/
Les commandes ci-dessus utiliseraient 2 Go de ma RAM pour le RAMDISK. Si vous n'avez pas autant de bélier que moi, j'utiliserais 512 Mo ou 1 Go. Nous allons donc créer une commande pour Terminal qui créera automatiquement le RAMDISK pour vous.

Source: Comment créer un RAMDISK sous Linux

Mitch
la source
3
Comment puis-je faire cela persister entre les redémarrages?
Chovy
1
Comme c'est de la RAM, c'est volatile, lorsque vous redémarrez, tout est perdu, même si un démarrage à chaud comme le BIOS / EFI efface la RAM. Le mieux que vous puissiez faire est de créer un script shell qui exécute les commandes lors de la connexion.
Brandon MacEachern
1
@chovy à persister, vous avez plusieurs options, je pense à 2 pour le moment. 1. écrire api pour écrire sur le disque virtuel et écriture asynchrone sur le disque dur. Toujours lire à partir de la mémoire, uniquement lors du démarrage du disque. 2. appelez de temps en temps un script qui copie tout ce qui se trouve sur le disque virtuel sur un disque dur et le recopie une fois après le démarrage.
Lukas
une autre option serait de désigner quelque chose comme /tmp/cachevotre répertoire de cache, où ce répertoire est en fait le point de montage d'un overlayfs (en utilisant un tmpfs comme upperdir, et tout ce que vous utiliseriez normalement avec votre système de fichiers normal avec lessdir). cela vous laisserait une couche rapide, éphémère et quelque chose qui pourrait être synchronisé de manière triviale si vous vouliez occasionnellement en rendre des parties persistantes.
Mway
chovy l'ajouter à /etc/rc.local et il montera automatiquement la partition ... mais les données seront perdues.
777Anon
49

Le système de fichiers tmpfs est un RAMDISK. Ce qui suit va créer un RAMDISK 2G qui sera toujours disponible.

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

Le dossier du disque mémoire appartient à root car il doit être disponible au redémarrage. Les autorisations du disque mémoire doivent être accessibles en écriture pour tout le monde. Les autorisations par défaut de tmpfs (chmod 1777) sont correctes.

sudo chmod 1777 /media/ramdisk
drwxrwxrwt 2 root root 180 Apr 23 07:34 /media/ramdisk

Pour rendre le disque mémoire disponible en permanence, ajoutez-le à / etc / fstab.

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

Vous verrez la ligne déplacée de mtab à fstab. Cela ressemblera à quelque chose comme ça.

tmpfs /media/ramdisk tmpfs rw,size=2048M 0 0

Le RAMDISK ne consommera pas de mémoire tant que vous ne l'utiliserez pas. Vérifiez vos besoins en mémoire lors de la charge maximale du système. Si le RAMDISK est trop volumineux, votre système utilisera de la mémoire de stockage pour compenser la différence.

Pour ajuster la taille du disque RAMDISK, éditez le fichier / etc / fstab et vérifiez-le en remontant le disque mémoire (vous perdrez votre contenu RAMDISK actuel comme lors du redémarrage). Ce qui suit changera la taille du disque mémoire en 512M

# Check the existing ramdisk size.
df /media/ramdisk
# change size=512M for a 512 megabyte ram drive.
sudo vi /etc/fstab
# Remount the ramdisk, you will lose any existing content.
sudo mount -a /media/ramdisk
# Verify the new ramdisk size.
df /media/ramdisk
Rickfoosusa
la source
1
Techniquement, tmpfsest un ramfsnon RAMDISK .
Heemayl
2
Se mettre d'accord. J'ai choisi d'utiliser RAMDISK car c'est le nom commun utilisé sous Windows.
rickfoosusa
Comment vérifier si le disque mémoire est vraiment utilisé? Je le vois toujours comme utilisé 0%.
BTR Naidu
9

Ajout de mon 2 centimes pour le cas où vous n'avez pas les privilèges root:

Citant cette réponse de unix.stackexchange

Linux fournit un périphérique tmpfs que tout utilisateur peut utiliser, / dev / shm. Il n'est pas monté par défaut sur un répertoire spécifique, mais vous pouvez toujours l'utiliser comme tel.

Créez simplement un répertoire dans / dev / shm, puis créez un lien symbolique où vous le souhaitez. Vous pouvez accorder au répertoire créé toutes les autorisations de votre choix, afin que les autres utilisateurs ne puissent pas y accéder.

Il s’agit d’un périphérique sauvegardé en RAM, donc ce qu’il ya en mémoire par défaut. Vous pouvez créer tous les répertoires dont vous avez besoin dans / dev / shm

Naturellement, les fichiers placés ici ne survivront pas à un redémarrage, et si votre machine commence à permuter, / dev / shm ne vous aidera pas.

Yuval Atzmon
la source