$ df /tmp
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 480589544 42607368 413546516 10% /
$ ls /dev/root
ls: cannot access /dev/root: No such file or directory
Quería verificar si mi instalación predeterminada de Debian se encuentra /tmp
en la RAM o en el disco, pero ahora estoy completamente confundido. ¿Por qué un dispositivo no existente se informa como un tipo de sistema de archivos? ¿Qué significa "montado en /"?
Aquí está la salida de mount
:
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro,data=ordered)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /run type tmpfs (rw,nosuid,noexec,relatime,size=811520k,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=1013960,mode=755)
tmpfs on /run/shm type tmpfs (rw,nosuid,nodev,noexec,relatime,size=1623020k)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
none_debugfs on /sys/kernel/debug type debugfs (rw,relatime)
cgroup on /sys/fs/cgroup type tmpfs (rw,relatime,size=12k)
cgmfs on /run/cgmanager/fs type tmpfs (rw,relatime,size=100k,mode=755)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,release_agent=/run/cgmanager/agents/cgm-release-agent.systemd,name=systemd)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=811520k,mode=700,uid=1000,gid=1000)
mount
partition
block-device
Vorac
fuente
fuente
mount
comando?/tmp
Es un punto de montaje. La pregunta que quiere hacer es "¿Qué partición / dispositivo está montado en / tmp?"/dev/root
es el dispositivo montado en la raíz del sistema de archivos (/
)Respuestas:
Si el resultado es el anterior, está en el disco duro. Puede obtener
/dev/root
mirando la línea de comandos del kernel:Entonces
/dev/root
es equivalente a la partición con el UUID impreso anteriormente; los tuyos serán diferentes. Para buscar este UUID, useComo puede ver, la partición correspondiente es
/dev/sda1
. Entonces tu/tmp
está en el disco duro. Otro regalo en la salida dedf
es el punto de montaje/
. Si montaste/tmp
en la RAM, en su lugar obtendríasfuente
La salida de
df /tmp
da la respuesta: la columna "Montado en" enumera/
, por lo que/tmp
es parte del sistema de archivos que está montado/
, es decir, el sistema de archivos raíz. No es un sistema de archivos separado.Para ser más exactos, debe ejecutar
df /tmp/
: si/tmp
es un enlace simbólico, luegodf /tmp
enumera información sobre la ubicación del enlace simbólico, mientras quedf /tmp/
enumera información sobre el directorio de destino.La mención de
/dev/root
en la columna del dispositivo se debe a que aparece en la lista/etc/mtab
. Puede encontrar el dispositivo real buscando/proc/mounts
con</proc/mounts awk '$2 == "/" {print $1}'
ofindmnt /
.fuente
df /tmp
yfindmnt /
.df /path/to/target
muestra qué sistema de archivos contiene el destino de la carpeta, el total de bytes, los bytes utilizados, el porcentaje disponible y el punto de montaje.En el ejemplo documentado en esta pregunta, la carpeta
/tmp/
se encuentra dentro del sistema de archivos etiquetadoroot
, que está en el dispositivo de bloque/dev/sda1
.mount | grep target
mostrará ningún sistemas de ficheros que contienen el nombre de destino que se enumeran en/etc/mtab
. Si la carpeta de destino no es un sistema de archivos separado, mount no le dará directamente información precisa.Sin embargo, para saber qué dispositivo contiene
/tmp/
, usedf
para obtener el nombre del sistema de archivos, (/dev/root
) y el punto de montaje, (/
), y luego busque la salida demount
para encontrar el dispositivo o punto de montaje y determine qué dispositivo de bloque contiene ese sistema de archivos.Es importante distinguir entre el dispositivo y el sistema de archivos porque no siempre hay una correlación 1: 1. El dispositivo de bloque se puede particionar y cada partición tendrá un sistema de archivos. Cada partición puede tener un tipo diferente de sistema de archivos. Cada partición tiene su propio nombre único y UUID y puede tener alias.
fuente
Para comprobar esto,
mount
es más apropiado. Puede probarlo y grep su salida en 'tmp'Ej :
Aquí dice que mi partición
/dev/shm
está montada con tmpfs (almacenamiento temporal de archivos, es decir, en RAM). Si su partición no está montada con tmpfs, entonces no está en la memoria volátil.fuente
tmpfs on /tmp
.df
da la información directamente, mientras quemount | grep
no reconocen la información fiable (que se perdería los casos en que/tmp
es un enlace simbólico, y que no funcionaría para algo así/var/tmp
, ya sea/var
o/var/tmp
podría ser un punto de montaje).mount
básicamente imprime el contenido del archivo mtab (/etc/mtab
). Esto muestra solo sistemas de archivos montados. Si la carpeta de destino no es un sistema de archivos separado, no lo encontrará utilizando mount. Sin embargo, si lo usadf /path/to/target
, le dirá positivamente qué dispositivo de bloque contiene la carpeta de destino y dónde está montado ese dispositivo. Luego puede usarmount
u otras herramientas para determinar qué tipo de sistema de archivos es y otra información. En el ejemplo de OP, su sugerencia no mostrará dónde está montada la carpeta / tmp /, ya que su / tmp / no es un sistema de archivos separado, sino parte de/
.