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

Fatmawati Achmad Zaenuri / Shutterstock.com

Los sistemas de archivos en Linux y sistemas operativos similares a Unix como macOS se pueden montar, desmontar y volver a montar utilizando la terminal. Esta es una herramienta poderosa y versátil; aquí está todo lo que necesita saber.

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 de modo que parece ser 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 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 que puedan 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 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 solo lectura o de lectura y escritura.

Ya sea por necesidad o por elección, los comandos mount, umounty le remountbrindan 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 mounty presione Enter:

comando de montaje en una ventana de terminal

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

salida del montaje en una ventana de terminal

Puede ser difícil revisar ese volcado de datos para encontrar lo que está buscando.

Puede refinar la salida solicitando mountque se enumeren solo los sistemas de archivos que le interesan. La -topción (tipo) indica sobre  mountqué tipo de sistema de archivos informar.

mount -t tmpfs
montaje -t ext4

montar con la opción -t en una ventana de terminal

Como ejemplo, hemos solicitado mountenumerar solo  tmpfssistemas de archivos. Obtenemos una salida mucho más manejable.

Un  tmpfssistema de archivos parece como si fuera un sistema de archivos montado normal, pero en realidad se almacena en una memoria volátil ( tmp significa temporal) en lugar de en un dispositivo de almacenamiento persistente.

Querrá sustituir el tmpfsparámetro por el tipo de archivo que le interesa.

También emitimos un comando para enumerar ext4los sistemas de archivos. En esta computadora de prueba, hay un único ext4sistema de archivos, está en el dispositivo ( sdael 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 está utilizando un esquema optimizado para registrar el acceso a archivos y 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 dfcomando 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 squashfspseudo sistema de archivos creado para todas y cada una de las aplicaciones que se han instalado usando el snapcomando. ¿Quién quiere ver todos esos?

Para forzar dfa ignorarlos, o cualquier otro tipo de sistema de archivos, use la -xopción (excluir):

df -x squashfs

comando df con la opción -x excluir en una ventana de terminal

Puede ver fácilmente los nombres de los sistemas de archivos, sus capacidades, 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 mountpara 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.

Relacionado:  Cómo usar el comando time en Linux

Necesitará usar sudo, por lo que se le pedirá su contraseña.

sudo mount -a

mount -a comando en una ventana de terminal

Es cierto que, en una computadora que funcione 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

montar una imagen ISO en una ventana de terminal

Debido a que necesitamos usar sudo, deberá ingresar su contraseña.

La -topción (tipo) indica mountqué tipo de sistema de archivos estamos montando. Es un archivo ISO, por lo que proporcionamos el iso9660especificador de tipo.

La -obandera (opciones) se usa para pasar parámetros adicionales a mount. Nuestro parámetro es loop.

Estamos usando  looppara forzar el mountuso 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 ext4sistema de archivos en esta máquina de prueba estaba montado /y se llamaba sda.

Para ser más precisos, ese ext4sistema 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 mountdónde nos gustaría que se montara el sistema de archivos. Hemos elegido /mnt.

La imagen ISO está montada. Un recordatorio de que las imágenes ISO siempre se montan en modo de solo lectura aparece en la ventana del terminal.

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 /

enumerar los archivos en una imagen ISO montada en una ventana de terminal

Desmontar la imagen ISO

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

Debe indicar umountqué sistema de archivos está desmontando. Hágalo proporcionando el punto de montaje del sistema de archivos.

sudo umount / mnt

comando umount en una ventana de terminal

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 isomnty montar nuestra imagen ISO en ese. Un punto de montaje es solo un directorio. Entonces podemos usar mkdirpara crear nuestro nuevo punto de montaje.

sudo mkdir / media / dave / isomnt

mkdir en una ventana de terminal

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 /

montaje de ISO en / media / dave / isomnt en una ventana de terminal

Ahora podemos acceder al sistema de archivos montado desde nuestro nuevo punto de montaje.

ls / media / dave / isomnt / cde / opcional

comando ls en un nuevo punto de montaje en una ventana de terminal

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í hay 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/isomntal nuevo isodirectorio en nuestro directorio de inicio.

Podremos acceder a la imagen ISO a través del punto de montaje original /media/dave/isomnty a través del nuevo isodirectorio. La -Bopció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

unión de puntos de montaje en una ventana de terminal

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

desmontar puntos de montaje enlazados en una ventana de terminal

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 dfthrough grepy buscando entradas con «sd» en ellas.

df | grep / dev / sd

tubería df a través de grep en una ventana de terminal

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/sdbpara conectarse a la disquetera.

Relacionado:  Cómo auditar la seguridad de su sistema Linux con Lynis

Le diremos mounta montar el sistema de archivos en el disquete en la unidad de disco que está conectado a /dev/sdbal /mntpunto 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

montaje de una unidad de disquete en una ventana de terminal

Etiquetas del sistema de archivos

Podemos usar la -lopción (etiqueta) con mountpara 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 -topción (tipo) para solicitar  mountun informe solo sobre vfatsistemas de archivos.

montaje -l -t vfat

montar con la opción -l etiqueta en una ventana de terminal

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 /mntpunto de montaje.

cd / mnt
ls
ls -l AMATCH.C

contenido de un disquete en una ventana de terminal

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 greppara listar archivos de dispositivo sd, veremos que ahora hay dos de ellos.

df | grep / dev / sd

tubería df a través de grep con una unidad de disquete conectada en una ventana de terminal

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

Para desmontar el disquete usamos umounty le pasamos el archivo del dispositivo como parámetro.

sudo umount / dev / sdb

desmontar una unidad de disquete en una ventana de terminal

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

umount falla en una ventana de terminal

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 -lopción (lazy). Esto hace umountque se espere hasta que el sistema de archivos se pueda desmontar de forma segura.

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

umount -l opción perezosa en una ventana de terminal

Aunque umountse emite el comando, el sistema de archivos todavía está 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 de disquete se libera y se desmonta. Intentar enumerar los archivos en /mntno 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 sistemas operativos Linux y similares a Unix, y sistemas operativos Windows.

La configuración de Samba está fuera 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 el Pi.

El nombre de usuario es piy el nombre de red de la Raspberry Pi es marineville.local.

ssh [email protected]
ls / media / pi / USB64 / Copia de seguridad
salida

ssh a una frambuesa pi en una ventana de terminal

El usuario emite el SSHcomando y se le solicita su contraseña de Raspberry Pi.

Proporcionan su contraseña y están autenticados. El indicador de la ventana de la terminal cambia a pi@marinevilleporque está conectado a la Raspberry Pi.

Enumeran el contenido del directorio compartido en /media/pi/USB64/Backup. Los contenidos son dos directorios, uno llamado davey otro llamado pat. Entonces ahora sabemos qué esperar cuando montamos el recurso compartido de Samba.

Escriben exitpara desconectarse de la Raspberry Pi y el mensaje vuelve a cambiar a dave@howtogeek.

Para usar Samba, debe instalar el cifs-utilspaquete.

Úselo apt-getpara 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

instalar cifs en una ventana de terminal

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

montar un recurso compartido de samba en una ventana de terminal

Analicemos las partes de ese comando.

  • -t cifs : el tipo de sistema de archivos es cifs.
  • -o credenciales = / etc / samba / creds, uid = 1000, gid = 1000 : Los parámetros de opciones son la ruta a un archivo llamado credsque 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 en share.
  • / media / dave / NAS : el nombre del punto de montaje. Debes crear tu punto de montaje con anticipación.
Relacionado:  Cómo mostrar la fecha y la hora en la terminal de Linux (y usarla en scripts Bash)

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 davey pat.

cd / media / dave / NAS

acceder a directorios compartidos de samba en una ventana de terminal

Creación y montaje de un sistema de archivos

Puede usar el ddcomando para crear un archivo de imagen y luego usarlo mkfspara 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 ifopción (archivo de entrada) para decirle ddque use la secuencia de valores cero de /dev/zerocomo archivo de entrada.

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

Estamos usando la  bsopción (tamaño de bloque) para solicitar un tamaño de bloque de 1 MB.

Usamos la countopción para indicar ddque se incluyan 20 bloques en el archivo de salida.

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

usando dd para crear un sistema de archivos en un archivo en una ventana de terminal

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_fsarchivo usando el mkfscomando. La -topción (tipo) nos permite seleccionar el tipo de sistema de archivos . Estamos creando un ext4sistema.

mkfs -t ext4 ./geek_fs

el comando mkfs en una ventana de terminal

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

montar y configurar el acceso a un sistema de archivos en una ventana de terminal

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

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

Explorando el sistema de archivos en un archivo en una ventana de terminal

Pudimos cambiar el directorio al nuevo sistema de archivos e hicimos una copia del /etc/fstabarchivo con éxito . ¡Esta funcionando!

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

montaje -t ext4

enumerar los sistemas de archivos ext4 en una ventana de terminal

Volver a montar un sistema de archivos

Para volver a montar un sistema de archivos se usa la -o remountopción. Por lo general, se hace para cambiar un sistema de archivos de un estado de solo lectura (prueba) a un estado de lectura-escritura (producción).

Montemos nuestra disquetera de nuevo. Esta vez usaremos la -rbandera (solo lectura). A continuación, vamos a la tubería mounta través grepy ver los detalles del sistema de archivos de disco.

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

volver a montar un sistema de archivos en una ventana de terminal

Como puede ver, el resaltado roindica que el sistema de archivos está montado como de solo lectura.

Usando la  -o remountopción con el rwindicador (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 mounttravés grepnos muestra que roha 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 -Mopción (mover) en  mountexiste 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 /mnta ./geek, falla y da el mensaje de error que se muestra a continuación. Intentar enumerar los archivos en el sistema de archivos ./geekno arroja resultados.

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

mover un sistema de archivos en una ventana de terminal

La solución es utilizar 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-privateopción fue posible forzar el movimiento para que ocurriera en systemdversiones de Linux. Esa técnica no se presenta aquí por dos razones.

  1. Puede tener un comportamiento impredecible.
  2. 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 -Mopción (mover) funcionó como se esperaba en ese sistema.

Aparte de los systemdproblemas con la -M opción (mover), debería encontrar el uso de mounty umount sencillo. Estos son comandos excelentes para tener bajo la manga cuando se enfrenta a un sistema dañado, y debe comenzar a reconstruir el sistema de archivos a mano.