Cree un disco RAM en Linux que no cambie el sistema de archivos después de reiniciar

Cree un disco RAM en Linux que no cambie el sistema de archivos después de reiniciar

Creo un disco RAM en Ubuntu 16.10 (ejecutándose dentro de una VM) con los siguientes comandos

sudo mkdir -p /media/RAMDisk
sudo mount -t tmpfs -o tamaño=2048M tmpfs /media/RAMDisk

Después de esto, si entro en el disco RAM y hago esto

df.

me sale lo siguiente

tmpfs 2097152 0 2097152 0% /medios/RAMDisk

Hasta ahora, todo bien.

Luego reinicio Ubuntu (que reinicia la VM que se ejecuta a través de Workstation Pro).

Después de reiniciar, espero que la /media/RAMDiskcarpeta no exista en absoluto o que exista comotmpfssistema de archivos sin contenido en él.

La /media/RAMDiskcarpeta existe sin contenido, pero sorprendentemente como un /dev/sda1sistema de archivos. Cuando lo hago df .con /media/RAMDisk, veo esto:

    /dev/sda1 17413904 9577448 6928836 59% /

Ahora, podría poner fácilmente los comandos dentro de mi .bashrcy ejecutarlos y hacer las cosas correctas cada vez, pero necesito saber qué está pasando.

Además, ¿podría estar haciendo algo el administrador de mi máquina virtual, Workstation Pro?

Respuesta1

¿Qué está pasando?

Nada inusual.

df /media/RAMDisk, cuando se refiere a /dev/sda1, le indica que el directorio que en ese momento pertenece al sistema de archivos en /dev/sda1el que está montado /.

Esto se debe a que el efecto de su mountcomando no es permanente y no sobrevive al reinicio. Por otro lado, el mkdircomando creó un directorio dentro del sistema de archivos /dev/sda1y este sistema de archivos se monta después de cada reinicio para que el directorio sobreviva, pero como parte del /dev/sda1sistema de archivos.

Debe montarlo RAMDiskdespués (o en) cada arranque de alguna manera.


¿Cómo montar?

Huir mountdesde dentro .bashrcno es una buena idea porqueeste archivo puede tener varias fuentesdurante una sola sesión. Como lo necesita sudode todos modos, será mejor usar /etc/rc.localel que se ejecuta una vez cuando se inicia el sistema operativo.

Pero la forma aún mejor puede ser agregar la siguiente línea a su /etc/fstab:

tmpfs /media/RAMDisk tmpfs defaults,nosuid,nodev,size=2048M 0 0

Investigue userlas noautoopciones (ver man 5 fstab) y tal vez le gustaría usarlas e invocarlas mount /media/RAMDisksolo bajo demanda.


systemd?

Este sitioMe hace creer que puedes ejecutar una systemdunidad cuando un usuario determinado inicia sesión por primera vez y finalizarla tan pronto como se cierre la última sesión del usuario. No estoy muy familiarizado con systemd, así que no puedo decirte cómo (si) puedes hacerlo con .mountla unidad.

Pero si lo usas systemd, entonces ya deberías tener un archivo personal tmpfsmontado en /run/user/<UID>. El de todo el sistema debería estar activado /dev/shm.


Acerca de/media/

Ubuntu también /media/utiliza la nota para crear puntos de montaje, por ejemplo, para unidades USB externas (creo que udisks2es responsable). Puede que parezcan así /media/<username>/<label>, supongo /media/RAMDiskque no van a chocar con nada. En general, evitaría utilizar esta ubicación. En mis sistemas (Debian, Kubuntu, Raspbian, OpenWRT) uso /mnt/<something>y nunca he tenido problemas.

información relacionada