El sistema de archivos de Linux
Los sistemas de archivos en Linux, macOS y otros sistemas operativos similares a Unix no usan identificadores de volumen separados para dispositivos de almacenamiento de la forma en que, por ejemplo, lo hace Windows. Windows asigna a cada volumen una letra de unidad como C: o D: y el sistema de archivos para cada volumen es un árbol de directorios que se encuentra debajo de esa letra de unidad.
En Linux, el sistema de archivos es un árbol de directorios todo en uno. Un dispositivo de almacenamiento montado tiene su sistema de archivos injertado en ese árbol para que parezca ser una parte integral de un sistema de archivos cohesivo. Se podrá acceder al sistema de archivos recién montado a través del directorio en el que está montado. Ese directorio se denomina punto de montaje para ese sistema de archivos.
Muchos sistemas de archivos se montan automáticamente en el momento del arranque o sobre la marcha como volúmenes de almacenamiento conectados a la computadora durante el tiempo de ejecución. Los administradores del sistema cautelosos pueden desactivar las funciones de montaje automático en tiempo de ejecución para poder controlar las conexiones al sistema.
Esto significa que es posible que los dispositivos de almacenamiento conectados durante el tiempo de ejecución no se monten automáticamente y requieran el montaje manual. Montar un sistema de archivos manualmente le permite tomar decisiones sobre ese sistema de archivos, como dónde estará el punto de montaje y si el sistema de archivos será de solo lectura o de lectura y escritura.
Ya sea por necesidad o por elección, los comandos mount
, umount
y le remount
brindan la capacidad de tomar el control de este importante aspecto de su sistema Linux.
Interrogue su sistema de archivos con mount
Mount tiene muchas opciones , pero para enumerar todos los sistemas de archivos montados en su computadora no requiere ninguna opción. Simplemente escriba mount
y presione Enter:
mount
enumerará todos los sistemas de archivos conectados en la ventana del terminal.
Puede ser difícil revisar ese volcado de datos para encontrar lo que está buscando.
Puede refinar la salida solicitando mount
que se enumeren solo los sistemas de archivos que le interesan. La -t
opción (tipo) indica sobre mount
qué tipo de sistema de archivos informar.
mount -t tmpfs
montaje -t ext4
Como ejemplo, hemos solicitado mount
enumerar solo tmpfs
los sistemas de archivos. Obtenemos una salida mucho más manejable.
Un tmpfs
sistema de archivos parece como si fuera un sistema de archivos montado normal, pero en realidad está almacenado en una memoria volátil ( tmp significa temporal) en lugar de en un dispositivo de almacenamiento persistente.
Querrá sustituir el tmpfs
parámetro por el tipo de archivo que le interesa.
También emitimos un comando para enumerar ext4
los sistemas de archivos. En esta computadora de prueba, hay un único ext4
sistema de archivos, está en el dispositivo ( sda
el primer dispositivo de almacenamiento montado, generalmente el disco duro principal) y montado en /
, que es la raíz del árbol del sistema de archivos.
Los otros indicadores significan:
- rw : el sistema de archivos se puede leer y escribir.
- relatime : el kernel utiliza un esquema optimizado para registrar el acceso a archivos y los metadatos de modificación.
- errors = remount -o : Si se detecta un error suficientemente grave, el sistema de archivos se volverá a montar en modo de solo lectura para permitir el diagnóstico.
Interrogue su sistema de archivos con df
El df
comando también se puede utilizar para mostrar qué sistemas de archivos están montados y dónde están sus puntos de montaje.
df
utilizado sin parámetros le da el mismo problema de sobrecarga de información que mount
. Como ejemplo, en Ubuntu Linux, hay un squashfs
pseudo sistema de archivos creado para todas y cada una de las aplicaciones que se han instalado usando el snap
comando. ¿Quién quiere ver todos esos?
Para forzar df
a ignorarlos, o cualquier otro tipo de sistema de archivos, use la -x
opción (excluir):
df -x squashfs
Puede ver fácilmente los nombres de los sistemas de archivos, sus capacidades, el espacio utilizado y libre y sus puntos de montaje.
Volver a montar todos los sistemas de archivos en fstab
Todos los sistemas de archivos montados en el momento del arranque tienen entradas en un archivo llamado fstab
, que es la tabla del sistema de archivos que se encuentra dentro /etc
.
Puede usar mount
para forzar una "actualización" y volver a montar todos los sistemas de archivos enumerados en fstab
. En condiciones normales de funcionamiento, esto no es necesario. Realmente se destaca si tiene problemas con varios sistemas de archivos.
Deberá usar sudo
, por lo que se le pedirá su contraseña.
sudo mount -a
Es cierto que, en una computadora que funciona correctamente, es un poco decepcionante.
Sin embargo, en una computadora con problemas con el sistema de archivos, el remontaje podría solucionar los problemas. Si eso no sucede, al menos obtendrá mensajes de diagnóstico en la pantalla y en los registros del sistema que lo guiarán para buscar la causa del problema.
Montaje de una imagen ISO
Es fácil montar una imagen ISO para que pueda acceder a su contenido como parte del sistema de archivos.
Esto funcionará con cualquier imagen ISO. En este ejemplo, estamos usando un ISO de Tiny Core Linux porque es convenientemente pequeño y rápido de descargar. (¡Una pequeña distribución de Linux con una GUI, en 18 MB! Probablemente tenga archivos .mp3 más grandes que eso).
En el mismo directorio que la imagen ISO, emita este comando. Sustituya el nombre del archivo ISO que está montando.
sudo mount -t iso9660 -o loop TinyCore-current.iso / mnt
Debido a que necesitamos usar sudo
, deberá ingresar su contraseña.
La -t
opción (tipo) indica mount
qué tipo de sistema de archivos estamos montando. Es un archivo ISO, por lo que proporcionamos el iso9660
especificador de tipo.
La -o
bandera (opciones) se utiliza para pasar parámetros adicionales a mount
. Nuestro parámetro es loop
.
Estamos usando loop
para forzar el mount
uso de un archivo de dispositivo de bucle para conectarnos a nuestra imagen ISO. Un archivo de dispositivo de bucle permite montar un archivo (como la imagen ISO) y tratarlo como si fuera un dispositivo de almacenamiento.
Los archivos de dispositivo son archivos especiales que se utilizan como interfaz para que los dispositivos conectados aparezcan como si fueran un archivo de sistema de archivos normal. Esto es parte de todo lo que en Linux es una filosofía de diseño de archivos.
Hay muchos tipos diferentes de archivos de dispositivo. Vimos uno antes cuando notamos que el único ext4
sistema de archivos en esta máquina de prueba estaba montado /
y se llamaba sda
.
Para ser más precisos, ese ext4
sistema de archivos está en un dispositivo de almacenamiento conectado al sistema de archivos a través del /dev/sda
archivo del dispositivo y el sistema de archivos en ese dispositivo de almacenamiento montado en /
.
Tenemos que proporcionar el nombre de la imagen ISO, por supuesto, y debemos informar mount
dónde nos gustaría que se montara el sistema de archivos. Hemos elegido /mnt
.
La imagen ISO está montada. En la ventana del terminal aparece un recordatorio de que las imágenes ISO siempre se montan en modo de solo lectura.
Explorando la imagen ISO
Ahora que está montado, podemos navegar por los directorios de la imagen ISO de la misma forma que en cualquier otra parte del sistema de archivos. Hagamos una lista de los archivos en la imagen ISO. Está montado en /mnt
recordar.
ls / mnt
ls / mnt / cde /
Desmontaje de la imagen ISO
Para desmontar un sistema de archivos montado, use el umount
comando. Tenga en cuenta que no hay una "n" entre la "u" y la "m"; el comando es umount
y no "desmontar".
Debe indicar umount
qué sistema de archivos está desmontando. Hágalo proporcionando el punto de montaje del sistema de archivos.
sudo umount / mnt
La ausencia de malas noticias son buenas noticias. Si no hay nada que informar, todo salió bien.
Crear un punto de montaje
Puede crear y utilizar sus propios puntos de montaje. Vamos a crear uno llamado isomnt
y montar nuestra imagen ISO en él. Un punto de montaje es solo un directorio. Entonces podemos usar mkdir
para crear nuestro nuevo punto de montaje.
sudo mkdir / media / dave / isomnt
Ahora podemos usar el mismo formato de comando que antes para montar nuestra imagen ISO. Esta vez no lo montaremos /mnt
, lo montaremos en /media/dave/isomnt/
:
sudo mount -r -t iso9660 -o loop TinyCore-current.iso / media / dave / isomnt /
Ahora podemos acceder al sistema de archivos montado desde nuestro nuevo punto de montaje.
ls / media / dave / isomnt / cde / opcional
Pero esos caminos se están volviendo muy largos. Eso se volverá aburrido rápidamente. Hagamos algo al respecto.
Vincular un punto de montaje
Puede vincular un punto de montaje a otro directorio. A continuación, se puede acceder al sistema de archivos montado a través del punto de montaje original o mediante el directorio que está vinculado a él.
Aquí tienes un ejemplo trabajado. Crearemos un directorio en nuestro directorio de inicio llamado iso
. Luego enlazaremos el punto de montaje de la imagen ISO /media/dave/isomnt
al nuevo iso
directorio en nuestro directorio de inicio.
Podremos acceder a la imagen ISO a través del punto de montaje original /media/dave/isomnt
y a través del nuevo iso
directorio. La -B
opción (enlazar) requiere el nombre del punto de montaje y el nombre del directorio al que enlazarlo.
mkdir iso
sudo mount -B / media / dave / isomnt / iso
ls iso
ls / media / dave / isomnt
cd iso
ls
cd cde
Uso de umount con enlaces
Un sistema de archivos que ha tenido su punto de montaje enlazado a otro directorio requiere desmontarlo de su punto de montaje y el punto de enlace.
Incluso si desmontamos el sistema de archivos de su punto de montaje original, aún puede acceder al sistema de archivos desde su directorio vinculado. El sistema de archivos también debe desmontarse de ese directorio.
sudo umount / media / dave / isomnt
ls iso
sudo umount iso
ls iso
Montaje de un disquete
Una unidad de disquete (con un disquete) es un dispositivo de almacenamiento. Eso significa que se utilizará un archivo de dispositivo sd (para dispositivo de almacenamiento) para conectarse al dispositivo físico. Debemos establecer cuál es el próximo archivo de dispositivo sd gratuito. Podemos hacer esto canalizando la salida de df
through grep
y buscando entradas con "sd" en ellas.
df | grep / dev / sd
En esta computadora, hay un solo archivo de dispositivo sd en uso. Esto es /dev/sda
. El próximo archivo de dispositivo sd emitido será /dev/sdb
. Eso significa que cuando conectamos la disquetera a la computadora, Linux la usará /dev/sdb
para conectarse a la disquetera.
Le diremos mount
a montar el sistema de archivos en el disquete en la unidad de disco que está conectado a /dev/sdb
al /mnt
punto de montaje.
Inserte el disquete en la disquetera y conecte la disquetera a un puerto USB de la computadora. Emita el siguiente comando:
sudo mount / dev / sdb / mnt
Etiquetas del sistema de archivos
Podemos usar la -l
opción (etiqueta) con mount
para averiguar qué etiqueta, si hay alguna, está adjunta a un sistema de archivos. Las etiquetas no son más que nombres arbitrarios. No tienen ningún propósito funcional.
Estamos usando la -t
opción (tipo) para solicitar mount
un informe solo sobre vfat
sistemas de archivos.
montaje -l -t vfat
Encontrará la etiqueta entre corchetes al final de la lista. La etiqueta de esta unidad de disquete es NORTUN.
Podemos acceder a la disquetera a través del /mnt
punto de montaje.
cd / mnt
ls
ls -l AMATCH.C
El disquete contiene archivos de código fuente en lenguaje C. El sello de fecha de un archivo muestra que se modificó por última vez en octubre de 1992. Probablemente sea más antiguo que muchos de nuestros lectores. (No hace falta decir que el significado de NORTUN como etiqueta se pierde en la bruma del tiempo).
Si repetimos nuestro comando df
canalizado grep
para listar archivos de dispositivo sd, veremos que ahora hay dos de ellos.
df | grep / dev / sd
Nuestra unidad de disquete se muestra tan montada /dev/sdb
como esperábamos. El sistema de archivos del disquete de la unidad está montado en /mnt
.
Para desmontar el disquete usamos umount
y le pasamos el archivo del dispositivo como parámetro.
sudo umount / dev / sdb
La opción perezosa de umount
¿Qué sucede si usted (u otro usuario) está utilizando el sistema de archivos cuando intenta desmontarlo? El desmontaje fallará.
sudo umount / dev / sdb
Falló porque el directorio de trabajo actual del usuario está dentro del sistema de archivos que está intentando desmontar. Linux es lo suficientemente inteligente como para no permitirle cortar la rama en la que está sentado.
Para superar esto, use la -l
opción (lazy). Esto hace umount
que se espere hasta que el sistema de archivos se pueda desmontar de forma segura.
sudo umount -l / dev / sdb
ls
cd ~
ls / mnt
Aunque umount
se emite el comando, el sistema de archivos sigue montado y el usuario puede enumerar los archivos de forma normal.
Tan pronto como el usuario cambia de directorio a su directorio de inicio, el sistema de archivos del disquete se libera y se desmonta. Intentar enumerar los archivos en /mnt
no produce resultados.
Montaje de un recurso compartido de Samba
Samba es un conjunto de servicios de software que permiten acceder a los recursos compartidos de red de manera intercambiable entre los sistemas operativos Linux y Unix, y los sistemas operativos Windows.
La configuración de Samba está más allá del alcance de este artículo. Pero, si tiene acceso autorizado a un recurso compartido de Samba que se ha puesto a su disposición, así es como puede montarlo en Linux.
Una Raspberry Pi conectada a la misma red que la máquina de prueba tiene un recurso compartido de Samba. Es un directorio llamado Backup que ha dado el nombre de Samba de "compartir". Hagamos una conexión SSH y veamos el contenido del directorio compartido. El directorio compartido está en una memoria USB montada en la Pi.
El nombre de usuario es pi
y el nombre de red de la Raspberry Pi es marineville.local
.
ssh pi@marineville.local
ls / media / pi / USB64 / Copia de seguridad
Salida
El usuario emite el SSH
comando y se le solicita su contraseña de Raspberry Pi.
Proporcionan su contraseña y están autenticados. El indicador de la ventana del terminal cambia a pi@marineville
porque está conectado a la Raspberry Pi.
Enumeran el contenido del directorio compartido en /media/pi/USB64/Backup
. Los contenidos son dos directorios, uno llamado dave
y otro llamado pat
. Entonces ahora sabemos qué esperar cuando montamos el recurso compartido de Samba.
Escriben exit
para desconectarse de la Raspberry Pi y el mensaje vuelve a cambiar a dave@howtogeek
.
Para usar Samba, debe instalar el cifs-utils
paquete.
Úselo apt-get
para instalar este paquete en su sistema si está usando Ubuntu u otra distribución basada en Debian. En otras distribuciones de Linux, utilice la herramienta de administración de paquetes de su distribución de Linux.
sudo apt-get install cifs-utils
Cuando se haya completado la instalación, monte el recurso compartido con un comando como el siguiente, cambiando la dirección IP, el nombre del recurso compartido y el punto de montaje (que ya debe existir) para adaptarse a sus circunstancias.
sudo mount -t cifs -o credentials = / etc / samba / creds, uid = 1000, gid = 1000 //192.168.4.13/share / media / dave / NAS
Analicemos las partes de ese comando.
- -t cifs : el tipo de sistema de archivos es cifs.
- -o credentials = / etc / samba / creds, uid = 1000, gid = 1000 : Los parámetros de opciones son la ruta a un archivo llamado
creds
que está protegido y contiene el nombre de usuario y la contraseña del usuario de Raspberry Pi; el ID de usuario (UID) y el ID de grupo (GID) que se utilizan para establecer el propietario y el grupo de la raíz del sistema de archivos. - //192.168.4.13/share : La ubicación de red del dispositivo con el recurso compartido de Samba y el nombre de Samba del directorio compartido. La raíz del recurso compartido es un directorio llamado
Backup
, pero su nombre de recurso compartido de Samba está configurado enshare
. - / media / dave / NAS : el nombre del punto de montaje. Debes crear tu punto de montaje con anticipación.
Al acceder a nuestro punto de montaje en /media/dave/NAS
, estamos accediendo al directorio compartido en la Raspberry Pi a través de la red. Podemos ver las dos carpetas de la Raspberry Pi llamadas dave
y pat
.
cd / media / dave / NAS
Creación y montaje de un sistema de archivos
Puede usar el dd
comando para crear un archivo de imagen y luego usarlo mkfs
para crear un sistema de archivos dentro de él. A continuación, se puede montar ese sistema de archivos. Esta es una buena forma de practicar y experimentar mount
.
Usamos la if
opción (archivo de entrada) para decirle dd
que use la secuencia de valores cero de /dev/zero
como archivo de entrada.
El of
(archivo de salida) es un archivo nuevo llamado geek_fs
.
Estamos usando la bs
opción (tamaño de bloque) para solicitar un tamaño de bloque de 1 MB.
Usamos la count
opción para indicar dd
que se incluyan 20 bloques en el archivo de salida.
dd if = / dev / zero of./geek_fs bs = 1M count = 20
Eso crea nuestro archivo de imagen para nosotros. No contiene nada más que valores cero.
Podemos crear un sistema de archivos de trabajo dentro del geek_fs
archivo usando el mkfs
comando. La -t
opción (tipo) nos permite seleccionar el tipo de sistema de archivos . Estamos creando un ext4
sistema.
mkfs -t ext4 ./geek_fs
Eso es todo lo que se necesita para tener un sistema de archivos que funcione.
Vamos a montarlo /media/dave/geek
y luego usarlo chown
para configurar el propietario y las propiedades del grupo para permitir el acceso a él.
sudo mount ./geek_fs / media / dave / geek
sudo chown dave: usuarios / media / dave / geek
¿Funciona? Cambiemos al nuevo sistema de archivos y copiemos en un archivo para ver.
cd / media / dave / geek
cp / etc / fstab.
ls -l
Pudimos cambiar el directorio al nuevo sistema de archivos e hicimos una copia del /etc/fstab
archivo con éxito . ¡Esta funcionando!
Si usamos mount
para listar los sistemas de archivos montados pero restringimos su salida a ext4
los sistemas de archivos usando la -t
opción (tipo), veremos que ahora hay dos ext4
sistemas de archivos montados .
montaje -t ext4
Volver a montar un sistema de archivos
Para volver a montar un sistema de archivos se usa la -o remount
opción. Por lo general, se hace para cambiar un sistema de archivos de un estado de solo lectura (prueba) a un estado de lectura y escritura (producción).
Montemos nuestra disquetera de nuevo. Esta vez usaremos la -r
bandera (solo lectura). A continuación, vamos a la tubería mount
a través grep
y ver los detalles del sistema de archivos de disco.
sudo mount -r / dev / sdb / mnt
montar | grep / mnt
Como puede ver, el resaltado ro
indica que el sistema de archivos está montado como de solo lectura.
Usando la -o remount
opción con el rw
indicador (lectura-escritura) podemos desmontar y volver a montar el sistema de archivos con la nueva configuración, todo en un solo comando.
sudo mount -o remontaje, rw / mnt
La repetición de la tubería de a mount
través grep
nos muestra que el ro
ha sido reemplazado por rw
(resaltado). El sistema de archivos ahora está en modo lectura-escritura.
montar | grep / mnt
(No) mover un sistema de archivos
Solía poder desmontar un sistema de archivos y volver a montarlo en otro punto de montaje con un solo comando.
La -M
opción (mover) en mount
existe específicamente para permitirle hacer eso. Pero ya no funciona en las distribuciones de Linux que se han trasladado a systemd
. Y esa es la mayoría de los grandes nombres.
Si intentamos mover un sistema de archivos de /mnt
a ./geek
, falla y da el mensaje de error que se muestra a continuación. Intentar enumerar los archivos en el sistema de archivos ./geek
no arroja resultados.
montaje sudo -M / mnt ./geek
ls ./geek
La solución es usar la -B
opción (vincular) que usamos anteriormente para vincular el punto de montaje original al nuevo punto de montaje.
sudo mount -B / mnt ./geek
ls ./geek
Además de no liberar el punto de montaje original, esto tendrá el mismo resultado práctico.
Observaciones finales
Usando la --make-private
opción fue posible forzar el movimiento para que ocurriera en systemd
versiones de Linux. Esa técnica no se presenta aquí por dos razones.
- Puede tener un comportamiento impredecible.
- No era persistente y tendría que repetirse en cada reinicio.
Devuan Linux usa SysV
init no systemd
. Se cargó una computadora con la última versión de Devuan y se probó. La -M
opción (mover) funcionó como se esperaba en ese sistema.
Aparte de los systemd
problemas con la -M
opción (mover), debería encontrar el uso de mount
y umount
sencillo. Estos son excelentes comandos para tener bajo la manga cuando se enfrenta a un sistema dañado, y debe comenzar a reconstruir el sistema de archivos a mano.
0 Comentarios