Cómo montar y desmontar dispositivos de almacenamiento desde la terminal de Linux

  • Dave McKay

    @TheGurkha

  • Actualizado el 28 de mayo de 2019, 5:15pm EDT
Fatmawati Achmad Zaenuri/.com

Los sistemas de archivos en Linux y los sistemas operativos tipo Unix como macOS pueden montarse, desmontarse y volverse a montar utilizando el terminal. Esta es una herramienta poderosa y versátil-aquí está todo lo que necesitas saber.

El sistema de archivos de Linux

Los sistemas de archivos en Linux, macOS y otros sistemas operativos tipo Unix no utilizan identificadores de volumen separados para los dispositivos de almacenamiento de la manera 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 una parte integral de un sistema de archivos cohesivo. El sistema de archivos recién montado será accesible a través del directorio en el que está montado. Ese directorio se llama el punto de montaje para ese sistema de archivos.

Publicidad

Muchos sistemas de archivos se montan automáticamente en el momento del arranque o sobre la marcha como volúmenes de almacenamiento conectados al ordenador durante el tiempo de ejecución. Los administradores de sistemas precavidos pueden desactivar las funciones de montaje automático en tiempo de ejecución para poder controlar las conexiones al sistema.

Esto significa que los dispositivos de almacenamiento conectados durante el tiempo de ejecución podrían no montarse automáticamente y requerir un 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 sólo lectura o de lectura y escritura.

Ya sea por necesidad o por elección, los comandos mountumount y remount te dan la posibilidad de tomar el control de este importante aspecto de tu sistema Linux.

Interroga tu sistema de archivos con mount

Mount tiene una gran cantidad de opciones, pero para listar todos los sistemas de archivos montados en tu ordenador no requiere ninguna opción. Simplemente escriba mount y pulse Enter:

Publicidad

mount listará todos los sistemas de archivos conectados en la ventana del terminal.

Puede ser difícil escoger a través de ese volcado de datos para encontrar lo que estás buscando.

Puedes refinar la salida pidiendo a mount que liste sólo los sistemas de archivos que te interesan. La opción -t (type) le dice a mount qué tipo de sistema de archivos debe informar.

mount -t tmpfs
mount -t ext4

Como ejemplo, hemos pedido a mount que liste sólo tmpfs sistemas de archivos. Obtenemos una salida mucho más manejable.

Publicidad

Un tmpfs sistema de archivos aparece como si fuera un sistema de archivos normal y montado, pero en realidad se almacena en la memoria volátil-el tmp significa temporal-en lugar de en un dispositivo de almacenamiento persistente.

Deberás sustituir el parámetro tmpfs por el tipo de archivo que te interesa.

También hemos emitido un comando para listar los sistemas de archivos ext4. En este ordenador de prueba, hay un único ext4 sistema de archivos, está en el dispositivo sda-el primer dispositivo de almacenamiento montado, normalmente 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 es legible y escribible.
  • relatime: El kernel está utilizando un esquema optimizado para registrar los metadatos de acceso y modificación de los archivos.
  • errors=remount -o: Si se detecta un error lo suficientemente grave, el sistema de archivos se volverá a montar en modo de sólo lectura para permitir el diagnóstico.
  • Relacionado: ¿Qué sistema de archivos de Linux deberías usar?

    Interroga tu sistema de archivos con df

    El comando df también puede utilizarse para mostrar qué sistemas de archivos están montados y dónde están sus puntos de montaje.

    Publicidad

    df utilizado sin parámetros da el mismo problema de sobrecarga de información que mount. Como ejemplo, en Ubuntu Linux, hay un squashfs pseudo-archivo creado para todas y cada una de las aplicaciones que se han instalado usando el comando snap. Quién quiere ver todos esos?

    Para obligar a df a ignorarlos -o a cualquier otro tipo de sistema de archivos- utiliza la opción -x (excluir):

df -x squashfs

Podrás ver fácilmente los nombres de los sistemas de archivos, sus capacidades, el espacio usado y libre, y sus puntos de montaje.

Relacionado: Cómo ver el espacio libre y el uso del disco desde el terminal de Linux

Montar todos los sistemas de archivos en fstab

Todos los sistemas de archivos montados en el arranque tienen entradas en un archivo llamado fstab, que es la tabla de sistemas de archivos situada dentro de /etc.

Publicidad

Puede utilizar mount para forzar un «refresco» y volver a montar todos los sistemas de archivos listados en fstab. En condiciones normales de funcionamiento esto no es necesario. Realmente es útil si tienes problemas con varios sistemas de archivos.

Tendrás que usar sudo, por lo que se te pedirá la contraseña.

sudo mount -a

Hay que reconocer que en un ordenador que funciona correctamente, es un poco decepcionante.

En un ordenador con problemas en el sistema de archivos, sin embargo, 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 le guiarán para buscar la causa del problema.

Relacionado: ¿Qué es el archivo fstab de Linux y cómo funciona?

Montar una imagen ISO

Es fácil montar una imagen ISO para poder acceder a su contenido como parte del sistema de archivos.

Publicidad

Esto funcionará con cualquier imagen ISO. En este ejemplo, resulta que usamos una ISO de Tiny Core Linux porque es convenientemente pequeña y rápida de descargar. (¡Una diminuta 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. Sustituye el nombre del archivo ISO que estás montando.

sudo mount -t iso9660 -o loop TinyCore-current.iso /mnt

Como tenemos que usar sudo tendrás que introducir tu contraseña.

Publicidad

La opción -t (type) nos indica mount qué tipo de sistema de archivos estamos montando. Se trata de un archivo ISO, por lo que proporcionamos el iso9660 especificador de tipo.

La bandera -o (opciones) se utiliza para pasar parámetros extra a mount. Nuestro parámetro es loop.

Estamos usando loop para forzar a mount a usar un archivo de dispositivo de bucle para conectarse 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 normal del sistema de archivos. Esto es parte de la filosofía de diseño de todo en Linux es un archivo.

Publicidad

Hay muchos tipos diferentes de archivos de dispositivo. Ya vimos uno antes cuando observamos que el único ext4 sistema de archivos de esta máquina de pruebas estaba montado en / y se llamaba sda.

Para ser más exactos, 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 de ese dispositivo de almacenamiento montado en /.

Tenemos que proporcionar el nombre de la imagen ISO, por supuesto, y tenemos que hacer saber a mount dónde queremos que se monte el sistema de archivos. Hemos elegido /mnt.

Publicidad

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 sólo lectura.

Explorando la imagen ISO

Ahora que está montada podemos navegar por los directorios de la imagen ISO de la misma manera que por cualquier otra parte del sistema de archivos. Vamos a listar los archivos de la imagen ISO. Está montada en /mnt recuerda.

ls /mnt
ls /mnt/cde/

Desmontando la imagen ISO

Para desmontar un sistema de archivos montado, utiliza el comando umount. Tenga en cuenta que no hay una «n» entre la «u» y la «m»: el comando es umount y no «unmount».

Debe indicar a umount qué sistema de archivos está desmontando. Hazlo proporcionando el punto de montaje del sistema de archivos.

sudo umount /mnt

Ninguna noticia es buena. Si no hay nada que informar, entonces todo ha ido bien.

Creando un punto de montaje

Puedes crear y utilizar tus propios puntos de montaje. Vamos a crear uno llamado isomnt y montaremos nuestra imagen ISO en él. Un punto de montaje es sólo un directorio. Así que podemos usar mkdir para crear nuestro nuevo punto de montaje.

sudo mkdir /media/dave/isomnt
Publicidad

Ahora podemos usar el mismo formato de comando que antes para montar nuestra imagen ISO. Esta vez no la montaremos en /mnt, la 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/optional

Pero esos caminos se están haciendo muy largos. Eso se va a convertir rápidamente en algo tedioso. Hagamos algo al respecto.

Enlazando un punto de montaje

Puedes enlazar un punto de montaje a otro directorio. El sistema de archivos montado puede entonces ser accedido a través del punto de montaje original o a través del directorio que está vinculado a él.

Publicidad

Aquí tenemos un ejemplo trabajado. Crearemos un directorio en nuestro directorio principal llamado iso. A continuación, enlazaremos el punto de montaje de la imagen ISO /media/dave/isomnt al nuevo directorio iso de nuestro directorio principal.

Podremos acceder a la imagen ISO a través del punto de montaje original /media/dave/isomnt y a través del nuevo directorio iso. La opción -B (bind) requiere el nombre del punto de montaje y el nombre del directorio al que se va a vincular.

mkdir iso
sudo mount -B /media/dave/isomnt/ iso
ls iso
ls /media/dave/isomnt
cd iso
ls
cd cde

Usando umount con Binds

Un sistema de archivos que ha tenido su punto de montaje ligado a otro directorio requiere ser desmontado de su punto de montaje y del punto de bind.

Publicidad

Incluso si desmontamos el sistema de archivos desde su punto de montaje original, todavía se puede acceder al sistema de archivos desde su directorio vinculado. El sistema de archivos debe ser desmontado desde ese directorio también.

sudo umount /media/dave/isomnt
ls iso 
sudo umount iso
ls iso

Montar un disquete

Una disquetera (con un disquete dentro) 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 siguiente archivo de dispositivo sd libre. Podemos hacerlo canalizando la salida de df a través de grep y buscando entradas con «sd» en ellas.

df | grep /dev/sd

En este ordenador, hay un único archivo de dispositivo sd en uso. Este es /dev/sda. El siguiente archivo de dispositivo sd emitido será /dev/sdb. Eso significa que cuando conectemos la disquetera al ordenador, Linux utilizará /dev/sdb para conectarse a la disquetera.

Le diremos a mount que monte el sistema de archivos del disquete en la disquetera que está conectada a /dev/sdb al punto de montaje /mnt.

Publicidad

Inserte el disquete en la unidad de disquetes y conecte la unidad de disquetes a un puerto USB del ordenador. Emite el siguiente comando:

sudo mount /dev/sdb /mnt

Etiquetas del sistema de archivos

Podemos utilizar la opción -l (label) con mount para averiguar qué etiqueta, si es que 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 opción -t (type) para pedirle a mount que informe sobre vfat sistemas de archivos solamente.

mount -l -t vfat

Encontrarás la etiqueta entre corchetes al final del listado. La etiqueta de esta disquetera es NORTUN.

Publicidad

Podemos acceder a la disquetera a través del punto de montaje /mnt.

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 fue modificado por última vez en octubre de 1992. Probablemente sea más antiguo que muchos de nuestros lectores. (Ni que decir tiene que el significado de NORTUN como etiqueta se pierde en la noche de los tiempos.)

Si repetimos nuestro comando df canalizado a través de grep para listar los archivos del dispositivo sd, veremos que ahora son dos.

df | grep /dev/sd

Nuestra disquetera se muestra como montada en /dev/sdb como esperábamos. El sistema de archivos del disquete de la unidad está montado en /mnt .

Publicidad

Para desmontar el disquete utilizamos umount y le pasamos el archivo del dispositivo como parámetro.

sudo umount /dev/sdb

La opción umount Lazy

¿Qué ocurre si tú (u otro usuario) estás usando el sistema de archivos cuando intentas 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 dejarte serrar la rama en la que estás sentado.

Para superar esto utiliza la opción -l (lazy). Esto hace que umount espere hasta que el sistema de archivos pueda ser desmontado con seguridad.

sudo umount -l /dev/sdb
ls
cd ~
ls /mnt
Publicidad

Aunque se emita el comando umount, el sistema de archivos sigue montado, y el usuario puede listar los archivos con normalidad.

En cuanto el usuario cambia de directorio a su directorio personal, el sistema de archivos del disquete se libera y se desmonta. Intentar listar los archivos en /mnt no produce ningún resultado.

Montar un recurso compartido de Samba

Samba es un conjunto de servicios de software que permiten acceder a los recursos compartidos de red indistintamente entre los sistemas operativos Linux y similares a Unix, y los sistemas operativos Windows.

La configuración de Samba está fuera del alcance de este artículo. Pero, si tienes acceso autorizado a un recurso compartido de Samba que se ha puesto a tu disposición, así es como puedes montarlo en Linux.

Publicidad

Una Raspberry Pi conectada a la misma red que la máquina de pruebas tiene un recurso compartido de Samba en ella. Se trata de un directorio llamado Backup al que se le ha dado el nombre Samba de «share». Hagamos una conexión SSH a él y miremos 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 [email protected]
ls /media/pi/USB64/Backup
exit

El usuario emite el comando SSH y se le pide la contraseña de su Raspberry Pi.

Proporcionan su contraseña y se autentifican. El prompt de la ventana de terminal cambia a [email protected] porque está conectado a la Raspberry Pi.

Publicidad

Listan el contenido del directorio compartido en /media/pi/USB64/Backup . El contenido son dos directorios, uno llamado dave y otro llamado pat. Así que ahora sabemos qué esperar cuando montamos el recurso compartido de Samba.

Escriben exit para desconectarse de la Raspberry Pi y el prompt cambia de nuevo a [email protected].

Para usar Samba, debes instalar el paquete cifs-utils.

Usa apt-get para instalar este paquete en tu sistema si estás usando Ubuntu u otra distribución basada en Debian. En otras distribuciones de Linux, utilice la herramienta de gestión de paquetes de su distribución de Linux en su lugar.

sudo apt-get install cifs-utils

Cuando la instalación se haya completado, 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

Desglosemos 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 las opciones son la ruta de acceso a un archivo llamado creds que está asegurado y contiene el nombre de usuario y la contraseña del usuario de la 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 Samba en él, y el nombre Samba del directorio compartido. La raíz del recurso compartido es un directorio llamado Backup, pero su nombre de recurso compartido Samba está configurado como share.
  • /media/dave/NAS: El nombre del punto de montaje. Hay que crear el punto de montaje previamente.
Publicidad

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 en la Raspberry Pi llamadas dave y pat.

cd /media/dave/NAS

Crear y montar un sistema de archivos

Puedes usar el comando dd para crear un archivo de imagen, y luego usar mkfs para crear un sistema de archivos dentro de él. Ese sistema de archivos puede entonces ser montado. Esta es una buena manera de practicar y experimentar con mount.

Utilizamos la opción if (archivo de entrada) para decirle a dd que utilice el flujo de valores cero de /dev/zero como archivo de entrada.

El of (archivo de salida) es un nuevo archivo llamado geek_fs.

Publicidad

Estamos utilizando la opción bs (tamaño de bloque) para solicitar un tamaño de bloque de 1 MB.

Usamos la opción count para decirle a dd que incluya 20 bloques en el archivo de salida.

dd if=/dev/zero of./geek_fs bs=1M count=20

Eso nos crea nuestro archivo de imagen. No contiene nada más que valores cero.

Podemos crear un sistema de archivos de trabajo dentro del archivo geek_fs utilizando el comando mkfs. La opción -t (type) nos permite seleccionar el tipo de sistema de archivos. Vamos a crear un sistema ext4.

mkfs -t ext4 ./geek_fs
Publicidad

Es todo lo que hace falta para tener un sistema de archivos en funcionamiento.

Montémoslo en /media/dave/geek y luego utilicemos chown para establecer las titularidades de propietario y grupo para permitir el acceso al mismo.

sudo mount ./geek_fs /media/dave/geek
sudo chown dave:users /media/dave/geek

¿Funciona? Cambiemos al nuevo sistema de archivos y copiemos un archivo para ver.

cd /media/dave/geek
cp /etc/fstab . 
ls -l

Hemos podido cambiar de directorio al nuevo sistema de archivos, y hemos hecho con éxito una copia del archivo /etc/fstab. ¡Ya está funcionando!

Publicidad

Si usamos mount para listar los sistemas de archivos montados pero restringimos su salida a los sistemas de archivos ext4 usando la opción -t (tipo), veremos que ahora hay dos sistemas de archivos montados ext4.

mount -t ext4

Remontando un sistema de archivos

El montaje de un sistema de archivos utiliza la opción -o remount. Se suele hacer para cambiar un sistema de archivos de un estado de sólo lectura (pruebas) a un estado de lectura-escritura (producción).

Volvamos a montar nuestra disquetera. Esta vez usaremos la bandera -r (sólo lectura). Luego canalizaremos mount a través de grep y miraremos los detalles del sistema de archivos del disquete.

sudo mount -r /dev/sdb /mnt
mount | grep /mnt

Como puedes ver el resaltado ro indica que el sistema de archivos está montado de sólo lectura.

Publicidad

Usando la opción -o remount con la bandera rw (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 remount,rw /mnt

Repetir la canalización de mount a través de grep nos muestra que el ro ha sido sustituido por rw (resaltado). El sistema de archivos está ahora en modo lectura-escritura.

mount | grep /mnt

(No) mover un sistema de archivos

Antes podías desmontar un sistema de archivos y volver a montarlo en otro punto de montaje con un solo comando.

La opción -M (mover) en mount existe específicamente para permitirte hacer eso. Pero ya no funciona en las distribuciones de Linux que han pasado a systemd. Y esa es la mayoría de los grandes nombres.

Publicidad

Si intentamos mover un sistema de archivos de /mnt a ./geek, falla y da el mensaje de error que se muestra a continuación. Al intentar listar los archivos en el sistema de archivos a través de ./geek no se obtienen resultados.

sudo mount -M /mnt ./geek
ls ./geek

La solución es utilizar la opción -B (bind) que utilizamos anteriormente para enlazar el punto de montaje original con el nuevo punto de montaje.

sudo mount -B /mnt ./geek
ls ./geek

Aparte de no liberar el punto de montaje original, esto tendrá el mismo resultado práctico.

Observaciones finales

Usando la opción --make-private era posible forzar el movimiento para que tuviera lugar en systemd versiones de Linux. Esa técnica no se presenta aquí por dos razones.

  1. Puede tener un comportamiento imprevisible.
  2. No era persistente y tendría que repetirse en cada reinicio.
Publicidad

Devuan Linux utiliza SysV init no systemd. Se cargó un ordenador con la última versión de Devuan y se probó. La opción -M (mover) funcionó como se esperaba en ese sistema.

Aparte de los problemas de systemd con la opción -M (mover), deberías encontrar el uso de mount y umount sencillo. Estos comandos son muy útiles cuando el sistema está dañado y hay que empezar a reconstruir el sistema de archivos a mano.

Dave McKay
Dave McKay utilizó por primera vez los ordenadores cuando la cinta de papel perforada estaba de moda, y ha estado programando desde entonces. Tras más de 30 años en el sector de la informática, ahora es un periodista tecnológico a tiempo completo. A lo largo de su carrera, ha trabajado como programador independiente, director de un equipo internacional de desarrollo de software, gestor de proyectos de servicios informáticos y, más recientemente, como responsable de protección de datos. Dave es un evangelista de Linux y defensor del código abierto.Leer Biografía Completa «

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *