En el proc
manual, nombra la cuarta columna mountinfo
como "raíz" y la describe como "la ruta del directorio en el sistema de archivos que forma la raíz de este montaje". ¿Pero cómo entenderlo?
Pensé que los elementos básicos de un montaje son la ruta de origen y de destino, ya que el "origen de montaje" es la décima columna y el destino en la quinta columna, entonces, ¿para qué se usa la raíz?
Para la mayoría de la información de montaje, la raíz es simplemente /
, parece no tener sentido. Solo encuentro que los montajes de enlace tienen una raíz diferente /
, por lo que solo es útil en montajes de enlace. Y en caso de enlace, ¿por qué no mostrar la ruta absoluta en la raíz? Por ejemplo, cuando se vincula a /run/test_dir/a
, /run/test_dir/b
la columna raíz muestra /test_dir/a
, ¿por qué ocultar la /run
parte?
Respuesta1
Es difícil explicarlo con elementos del lenguaje (al menos con mis habilidades en inglés), así que decidí dar una respuesta basada en un ejemplo:
El directorio raíz a menudo se denominamás altoomás altodirectorio. Esto sólo es parcialmente cierto. este directoriose suponecomo elmás altodirectorio. Podría describirlo con "comenzaré desde este directorio; supongo que este es el directorio más alto y no hay nada arriba".
Algunos ejemplos para aclarar qué significa "raíz":
- Imagine que ejecuta un servidor web y configura la raíz de un dominio
example.com
en/var/www/html/example.com
. Ahora creas un archivo/var/www/html/example.com/test.html
. Si abreshttps://example.com/test.html
en tu navegador. obtienes el contenido del archivo creado. Si lo configura/var/www/html
como root, debe abrirhttps://example.com/example.com/test.html
- Si
chroot
ingresa al directorio/home/test/testSystem/
. La raíz de este entorno sería/home/test/testSystem
. Si lo hacesls
dentro del entorno chroot,ls /
obtendrás el contenido de/home/test/testSystem/
Punto de montaje con raíz/
Por ejemplo un USB contiene:
/
├── dir1
│ ├── subfile1
│ └── subfile2
├── file1
├── file2
└── file3
Si monta este USB, /mnt
obtendrá el resultado normal que espera porque usa el /
directorio del USB como raíz:
531 137 0:52 / /mnt rw,nosuid,nodev shared:75 - /dev/sdb [...]
Entonces, en la mayoría de los casos, la raíz de los puntos de montaje sería efectivamente /
.
Punto de montaje con raíz diferente a la/
Puede intentar esto usted mismo: vincule dos directorios en su sistema de archivos junto con
$ mount --bind /var/test1 /var/test2
La salida de mountinfo
sería algo como:
564 29 0:26 /var/test1 /var/test2 rw,relatime shared:1 - ext4 /dev/sda rw [...]
La raíz del punto de montaje ubicado debajo /var/test2
es /var/test1
. La fuente de montaje (lo que has montado) es/dev/sda
Volviendo al ejemplo del USB: si ahora monta el contenido /mnt/dir1
en otra cosa, obtendrá la raíz del montaje /dir1
y la fuente del montaje sería /dev/sdb
(el USB). La /mnt
parte se deja caer aquí.
"¿Por qué ocultar la parte /run?"
En resumen: /run
se elimina porque es una partición tmpfs. ¿Por qué se eliminan esas partes?
En el ejemplo de USB montamos dir1
en /dev/sdb
. /home/test/usbmnt/
La salida sería:
564 29 0:26 /dir1 /home/test/usbmnt/ rw,relatime shared:1 - ext4 /dev/sdb rw [...]
Verá, montamos el contenido de /dir1 (desde el USB y NO desde su disco duro) en un directorio llamado usbmnt. Quizás sea útil leerlo como /dev/sdb/dir1
.
Si se proporcionara la raíz porque /mnt/usb/dir1
no podemos saber cuál es la ubicación real en el USB: podría ser /dir1
, /usb/dir1
o tal vez/mnt/usb/dir1