Almacenamiento de datos

Montar y desmontar particiones en Linux

 
 

En este artículo veremos algunos métodos para montar y desmontar particiones en Linux desde la interfaz de línea de comandos (CLI).

Índice General

  1. Introducción
  2. Conceptos a tener en cuenta antes de montar las unidades
  3. Montar una unidad o partición por demanda con el comando mount
  4. Desmontar una unidad o partición por demanda con el comando umount
  5. Montar una unidad o partición al inicio del sistema
     

  1. Introducción (Volver al índice General)
    En Linux podemos montar las unidades de almacenamiento desde el entorno de escritorio (KDE, Gnome, Xfce, etc) o también desde la interfaz de línea de comandos (CLI). En este artículo nos centraremos en los comandos a utilizar desde la interfaz de línea de comandos (CLI) ya que hay situaciones, como en la administración de servidores sin entorno de escritorio, en las que no nos queda más remedio que recurrir a la consola.

    Con los comandos de consola no solo aprenderemos a montar una unidad de almacenamiento por demanda, también aprenderemos a configurar nuestro sistema para que monte dichas unidades al inicio del mismo.

  2.  

  3. Conceptos a tener en cuenta antes de montar las unidades (Volver al índice General)
    Antes de empezar, tenemos que conocer algunos conceptos importantes. Estos conceptos son los siguientes:

       

    • Cómo se nombran las unidades y particiones en Linux (Volver al índice General)
      En Linux no existen las unidades de la A a la Z como en Windows, se nombran de forma muy distinta. Podría decirse que en Linux todo son archivos. Los dispositivos de almacenamiento como discos duros, CD/DVD, floppies, unidades de cinta, memorias USB, etc, e incluso las terminales, puertos serie, interfaces de red, etc, todos ellos están enlazados a un archivo de dispositivo, es decir, el archivo de dispositivo representa al dispositivo, ya sea físico o virtual, para comunicarlo con programas que se ejecutan en la máquina. No es un archivo propiamente dicho, sino que el usuario lo ve como un archivo. Estos archivos se encuentran en el directorio /dev.

      A continuación veremos un esquema básico de como se nombran los dispositivos de almacenamiento y sus particiones:

      • Discos SCSI, SAS, SATA y USB:
        La primera unidad de disco SCSI se llama /dev/sda, la segunda unidad de disco SCSI se llama /dev/sdb, y así sucesivamente.
         
        Veamos ahora como se nombran las particiones dentro de cada unidad de disco. Nombraremos las del disco sda, pero sigue el mismo patrón para todas las unidades de disco del tipo sd$x, donde el signo $ corresponde a las letras a, b, c…etc y x es el orden que ocupa la partición en el disco:

        1. Primera partición primaria: sda1.
        2. Segunda partición primaria: sda2.
        3. Tercera partición primaria: sda3.
        4. Cuarta partición primaria: sda4.
        5. Nota: Un disco solo puede tener 4 particiones primarias, si queremos romper el límite de 4 particiones, tendremos que crear una partición extendida en lugar de una primaria y dentro de la extendida, se crean las particiones lógicas que necesitemos. El número máximo de particiones lógicas por disco va de 15 a 23 dependiendo del sistema operativo instalado. Por lo tanto, si queremos tener un disco de más de 4 particiones, obligatoriamente tendrá entre 1 y 3 particiones primarias, una partición extendida y un número de particiones lógicas entre 15 y 23.

        6. Partición extendida:

          Nota: Solo puede existir una partición extendida por disco y sirve para contener las particiones lógicas.

          Dentro de la partición extendida, las particiones lógicas se nombran de la siguiente forma:

        7. Primera partición lógica: sda5.
        8. Segunda partición lógica: sda6, y así sucesivamente.

        Nota: Las unidades de almacenamiento SATA, SAS y USB utilizan el subsistema SCSI por lo que se nombrarán de la forma sd$x, donde el signo $ corresponde a las letras a, b, c…,etc y x es el orden que ocupa la partición en el disco. Número más pequeño al principio del disco y número más alto, al final del disco.

      • Discos XT:
        Los discos XT son discos duros híbridos que incluyen un pequeño SSD.
        La primera unidad de disco XT se llama /dev/xda, la segunda unidad de disco XT se llama /dev/xdb.

        Nota: Para establecer el tipo y el número de particiones de los discos XT, se siguen las mismas reglas que las vistas para los discos SCSI, solo tendremos que tener en cuenta que cambia sd$x por xd$x, donde el signo $ corresponde a las letras a, b, c,…,etc y x es el orden que ocupa la partición en el disco. Número más pequeño al principio del disco y número más alto, al final del disco.

      • Discos IDE:
        Hoy día quedan pocos en uso, han quedado obsoletos, no obstante, vamos a ver como se nombran las unidades de disco IDE:

        • El disco maestro en el controlador IDE primario se llama /dev/hda.
        • El disco esclavo en el controlador IDE primario se llama /dev/hdb.
        • El disco maestro en el controlador IDE secundario se llama /dev/hdc.
        • El disco esclavo en el controlador IDE secundario se llama /dev/hdd.

        Nota: Para establecer el tipo y el número de particiones de los discos IDE, se siguen las mismas reglas que las vistas para los discos SCSI, solo tendremos que tener en cuenta que cambia sd$x por hd$x, donde el signo $ corresponde a las letras a, b, c o d y x es el orden que ocupa la partición en el disco. Número más pequeño al principio del disco y número más alto, al final del disco.

      • Discos CD/DVD unidades de Cinta y Floppies:
        • La primera unidad de un CD/DVD SCSI se llama /dev/scd0, también conocida como /dev/sr0. Si hay más de una unidad, la segunda unidad se llama scd1 o sr1 y así sucesivamente.
          Las unidades CD/DVD IDE se nombran dependiendo del controlador IDE que se utilice: hda, hdb, hdc o hdd.
        • En el caso de las unidades de cinta, dependerá si utilizan el subsistema SCSI o IDE.
          • La primera unidad de cinta SCSI se llama /dev/st0, la segunda unidad se llama /dev/st1, y así sucesivamente.
          • La primera unidad de cinta IDE se llama /dev/ht0, la segunda unidad se llama /dev/ht1, y así sucesivamente.
        • La primera unidad de disco flexible (floppy) se llama /dev/fd0, la segunda unidad se llama /dev/fd1, y así sucesivamente.

         
        Es muy común encontrar en el directorio /dev dispositivos con nombres descriptivos, por ejemplo /dev/cdrom o /dev/cdrom0. En realidad lo que vemos es un enlace blando a /dev/sr0, /dev/scd0, /dev/hdb o cualquier otro fichero asociado a nuestro CD/DVD. Por ejemplo supontamos que nuestro CD/DVD físico está asociado al archivo /dev/sr0, y queremos que además, esté asociado al archivo /dev/cdrom, pues bien, con el siguiente comando podremos hacerlo:

        $ sudo ln -s /dev/sr0 /dev/cdrom

        Nota: Las unidades CD/DVD, las unidades de cinta y los discos flexible (floppy) no contienen particiones.

    •  

    • Dónde se montan las unidades (Volver al índice General)
      En Linux, todas las unidades o particiones se montan sobre directorios que pertenecen a un sistema de jerarquía de directorios, donde el directorio raíz (/) es el primer directorio o carpeta de dicha jerarquía. El estándar de jerarquía del sistema de archivos (Filesystem Hierarchy Standard, FHS) es la norma que define los directorios principales y su contenido en sistemas Linux y derivados de Unix.

      Al directorio donde vamos a montar nuestro dispositivo o partición lo llamaremos punto de montaje.

      Es muy común que los dispositivos extraíbles se monten sobre los directorios /media o /mnt, pero no es obligatorio, podremos montarlos en un directorio creado por nosotros según nuestros intereses.
      Por ejemplo, comunmente, un CD/DVD suele montarse en el directorio /media/cdrom0 o /mnt/cdrom0.
      Una memoria USB (Pendrive) podría montarse, por ejemplo, en /media/pendrive donde pendrive es el directorio que hemos creado como punto de montaje para nuestra memoria USB (Pendrive).


  4.  
     
     

  5. Montar una unidad o partición por demanda con el comando mount (Volver al índice General)
    Para montar unidades o particiones por demanda, vamos a utilizar el comando mount. La sinopsis básica del comando mount es la siguiente:

    mount -t <tipo> [-o opciones] <dispositivo> <punto-de-montaje>

    Desglosemos un poco la sinopsis básica:

       

    • tipo (Volver al índice General)
      El argumento que sigue a la opción -t (o también --types) indica el tipo de sistema de archivos que vamos a montar. Los tipos de sistemas de archivos más comunes son ext3, ext4, ReiserFS, ufs, hfs, hfs+, vfat, exfat, ntfs, cifs, nfs, tmpfs, auto, etc. Los tipos de sistemas de archivos soportados por nuestro sistema dependerá del kernel que se encuentre en ejecución.

      Para obtener una lista completa de los tipos de sistemas de archivos soportados por nuestro kernel, podemos visualizar el archivo /proc/filesystems:

      $ cat /proc/filesystems

      También podemos listar los tipos de sistemas de archivos soportados por nuestro kernel viendo el contenido del directorio /lib/modules/$(uname -r)/kernel/fs, dónde $(uname -r) es una variable que obtiene la versión de nuestro kernel con el comando uname -r:

      $ ls -l /lib/modules/$(uname -r)/kernel/fs

      De este modo tendremos una visión precisa de los sistemas de archivos soportados por nuestro sistema.

      Tened presente que para montar algunos tipos de sistemas de archivo habrá que instalar paquetes adicionales, como puede ocurrir con los tipos exFAT, ntfs, hfs, hfs+ o recursos Samba.

      Nota: El tipo auto intentará descubrir automáticamente el sistema de archivos apropiado, aunque podría reconocer un tipo de sistema de archivos equivocado.

    •  

    • opciones (Volver al índice General)
      A continuación explicamos algunas de las opciones de montaje más usadas. Son mas de las que mostramos aquí, pero si queréis conocer todas las opciones, las encontraréis en las páginas man del comando mount y del archivo fstab.

      Téngase en cuenta que algunas de estas opciones solo son útiles cuando aparecen en el archivo /etc/fstab.

      Opciones comunes para todos los sistemas de archivos

      • auto: El sistema de archivos será montado automáticamente durante el arranque, o cuando la orden mount -a se invoque.
      • noauto: El sistema de archivos no será montado automáticamente, solo cuando se le ordene manualmente.
      • dev: Intérprete de los dispositivos especiales o de bloque del sistema de archivos.
      • nodev: Impide la interpretación de los dispositivos especiales o de bloques del sistema de archivos.
      • exec: Permite la ejecución de binarios residentes en el sistema de archivos.
      • noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos.
      • rw: Monta el sistema de archivos en modo lectura-escritura.
      • ro: Monta el sistema de archivos en modo sólo lectura.
      • sync: Todo el I/O se debe hacer de forma sincrónica.
      • async: Todo el I/O se debe hacer de forma asíncrona.
      • suid: Permite las operaciones de suid, y sgid bits. Se utiliza principalmente para permitir a los usuarios comunes ejecutar binarios con privilegios concedidos temporalmente con el fin de realizar una tarea específica.
      • nosuid: Bloquea el funcionamiento de suid, y sgid bits.
      • user: Permite a cualquier usuario montar el sistema de archivos. Esta opción incluye noexec, nosuid, nodev, a menos que se indique lo contrario.
      • nouser: Solo el usuario root puede montar el sistema de archivos.
      • users: Permite que cualquier usuario perteneciente al grupo users montar el sistema de archivos.
      • defaults: Asigna las opciones de montaje predeterminadas que serán utilizadas para el sistema de archivos. Las opciones predeterminadas para ext4 son: rw, suid, dev, exec, auto, nouser, async.
      • nofail: Monta el dispositivo cuando está presente, pero ignora su ausencia. Esto evita que se cometan errores durante el arranque para los medios extraíbles.
      • noatime: Deshabilita por completo el registro de tiempo de acceso para cualquier archivo. Implica la aplicación de nodiratime. Teniendo en cuenta que además se anota el acceso a los ficheros cacheados y el acceso constante a todos los ficheros de procesos del sistema, es un número muy importante de escrituras de fechas de acceso. Al reducir la cantidad de escrituras que el sistema operativo realiza sobre el disco, incrementamos la vida de la unidad SSD.
      • nodiratime: Deshabilita el registro de tiempos de acceso para los directorios, pero mantiene activo el registro para los archivos.
      • relatime: Limita el registro de timestamps únicamente a aquellos casos en que el archivo se modifica.
      • De las tres opciones anteriores, la opción menos invasiva es claramente relatime, que ya de por sí ofrecerá alguna ganancia en el rendimiento de nuestros discos duros, sobre todo mecánicos. La opción que más rendimiento ofrece es noatime.

      • owner: Permite al propietario del dispositivo montarlo.

       
      Opciones de montaje para tmpfs

      • size: Opción válida solo para sistemas tmpfs. Limita el tamaño que se utilizará de RAM. Por defecto se utiliza como máximo la mitad de la memoria RAM. También se puede expresar el tamaño en porcentajes de memoria RAM. Por ejemplo size=50%.

       
      Opciones de montaje para ext3

      • commit=30: Retrasa la escritura de los metadatos de ficheros, con lo que se reduce mucho el uso de disco. No recomendable si estuviésemos en un ordenador con batería.
      • data=writeback: Evita que los metadatos de los archivos sean escritos de forma lenta tras escribir los archivos. Esta opción no provoca corrupción en el sistema de archivos, pero puede provocar que los cambios mas recientes se pierdan si cae el sistema. No lo incluiremos en nuestros ejemplos ya que no funciona en algunos sistemas.

       
      Opciones de montaje para ext4
      Las opciones anteriores para ext3 son válidas para ext4.

      • discard/nodiscard: Emite las órdenes TRIM para dispositivos de bloques subyacentes cuando se liberan los bloques. Recomendado para usar si el sistema de archivos se encuentra en un sistemas de ficheros ubicados en unidades SSD.
      • nodelalloc: Desactiva la función de ext4 de delayed allocation, que reserva el espacio pero no lo escribe. Aplaza la escritura de bloques hasta que se esté en el tiempo de escritura. Es más que nada por seguridad.
      • barrier=0/barrier=1/barrier/nobarrier: Desactiva las barreras automáticamente. Se refiere a los límites de escritura. Si es igual a cero los elimina, si es igual a 1, los activa. Podemos prescindir de estas barreras si los discos están protegidos contra cortes de corriente. Sólo en este caso, incluimos la opción barrier=0
      • i_version: Habilita el uso de la versión extendida de 64 bits en sistemas de ficheros ext4.
      • inode_readahead_blks=64: Aumenta de 32 a 64 el tamaño de los bloques de lectura.

       
      Opciones de montaje para vfat

      • flush: Si se establece, el sistema de archivos intentará descargarse en el disco más rápido de lo normal. No se establece de forma predeterminada.

      NOTA: Para añadir más de una opción de montaje, deberán añadirse separadas por comas (,) y sin espacios.

    •  

    • dispositivo (Volver al índice General)
      El dispositivo hace referencia al disco físico, partición, cinta, imagen ISO, recurso compartido en red, etc. Se expresará de la forma indicada en el punto Cómo se nombran las unidades y particiones en Linux. Por ejemplo /dev/sda1, /dev/sr0, etc.

      Para conocer el nombre de las unidades y particiones que tenemos en nuestro sistema, solo tendremos que ejecutar el siguiente comando:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      
      $ sudo fdisk -l
      Disco /dev/sdb: 931,5 GiB, 1000204886016 bytes, 1953525168 sectoresUnidades: sectores de 1 * 512 = 512 bytes
      Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
      Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
      Tipo de etiqueta de disco: dos
      Identificador del disco: 0xa4304345
       
      Disposit.  Inicio  Comienzo      Final  Sectores Tamaño Id Tipo
      /dev/sdb1              2048   19531775  19529728   9,3G 83 Linux/dev/sdb2          19531776  996093951 976562176 465,7G 83 Linux/dev/sdb3         996093952 1953523711 957429760 456,6G 83 Linux 
      Disco /dev/sda: 223,6 GiB, 240057409536 bytes, 468862128 sectoresUnidades: sectores de 1 * 512 = 512 bytes
      Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
      Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
      Tipo de etiqueta de disco: dos
      Identificador del disco: 0x2ff4e54b
       
      Disposit.  Inicio  Comienzo     Final  Sectores Tamaño Id Tipo
      /dev/sda1              2048   7813119   7811072   3,7G 82 Linux swap / Solaris/dev/sda2  *        7813120 273438719 265625600 126,7G 83 Linux/dev/sda3         273438720 468860927 195422208  93,2G 83 Linux
      • Las líneas 2 y 14 nos indican el nombre de las unidades.
      • Las líneas 10, 11, 12, 22, 23 y 24 nos indican el nombre de las parciones de cada unidad.

      Existen otros comandos para mostrar información de nuestros discos y particiones como son: lsscsi, lsblk o df.

    •  

    • Punto de montaje (Volver al índice General)
      Es el directorio perteneciente al sistema de jerarquía de directorios donde se montará la unidad, partición o imagen, es decir, ahí es dónde acudiremos para ver los datos que contienen las unidades o imágenes. Este directorio puede existir o en su defecto, tendremos que crearlo antes de realizar el montaje. En ZeppelinuX hemos publicado el artículo Crear directorios en Linux con mkdir el cual os puede interesar.

    •  
       
       

    • Ejemplos (Volver al índice General)
      A continuación veremos unos ejemplos básicos para montar sistemas de archivos.

         

      • Forma básica de montar una partición (Volver al índice General)
        $ sudo mount /dev/particion /media/punto-de-montaje

        lo anterior es lo mismo que:

        $ sudo mount -t auto /dev/particion /media/punto-de-montaje

        Habrá sistemas que soliciten el tipo de sistema de archivos a montar, en estos casos tendremos que utilizar el parámetro -t (o también --types).
        No olvidar que el tipo auto intentará descubrir automáticamente el sistema de archivos apropiado, aunque podría reconocer un tipo de sistema de archivos equivocado.

      •  

      • Montar una partición FAT16 o FAT32 (Volver al índice General)
        Por ejemplo, vamos a montar la unidad /dev/sdc1 en la ubicación /media/tempfat:

        $ sudo mount -t vfat /dev/sdc1 /media/media/tempfat
      •  

      • Montar una partición NTFS (Volver al índice General)
        Por ejemplo, vamos a montar la unidad /dev/sdc2 en la ubicación /media/tempntfs:

        $ sudo mount -t ntfs /dev/sdc2 /media/tempntfs
      •  

      • Montar unidad CD/DVD (Volver al índice General)
        Por ejemplo, vamos a montar la unidad /dev/sr0 en la ubicación /media/cdrom:

        $ sudo mount -t iso9660 /dev/sr0 /media/cdrom
      •  

      • Montar unidad CD/DVD con tipo auto (Volver al índice General)
        Por ejemplo, vamos a montar la unidad /dev/sr0 en la ubicación /media/cdrom:

        $ sudo mount -t auto /dev/sr0 /media/cdrom

        En este caso el tipo auto intentará descubrir automáticamente el sistema de archivos apropiado, aunque podría reconocer un tipo de sistema de archivos equivocado. Podemos utilizar el tipo auto para todos nuestros dispositivos y esperar que el sistema reconozca nuestro sistema de archivos.

      •  

      • Montar dispositivo USB (Volver al índice General)
        El montaje de un dispositivo USB es igual que para cualquier unidad o partición de un disco normal. Solo tendremos que conocer el nombre de nuestro dispositivo y su partición a montar y crear o utilizar una carpeta para su punto de montaje.
        Por ejemplo, supongamos que después de ejecutar el comando fdisk -l obtenemos la información sobre nuestro dispositivo USB y la cual nos indica que, el tipo de sistema de archivos es NTFS y el nombre de nuestro dispositivo, es /dev/sdh1 y además, hemos creado con mkdir el directorio /mnt/usb01 en el cual montaremos nuestro dispositivo USB. Pues bien, el comando a ejecutar sería el siguiente.

        $ sudo mount -t ntfs /dev/sdh1 /mnt/usb01
      •  

      • Montar imagen ISO (Volver al índice General)
        En este caso veremos todos los pasos:

        1. Creamos el directorio que nos servirá de punto de montaje. Podremos crearlo donde y con el nombre que queramos:
          $ sudo mkdir /mnt/iso
        2. Cargamos el módulo loop al kernel. El módulo loop indica al kernel que es un dispositivo de bucle que se lee a si mismo:
          $ sudo modprobe loop
        3. Finalmente, montamos la imagen ISO:
          $ sudo mount -t iso9660 -o loop /ruta/archivo.iso /mnt/iso
      •  

      • Montar una carpeta en memoria RAM (Volver al índice General)
        El motivo por el cual vamos a montar las carpetas en memoria RAM son la velocidad o rapidez a la que trabaja la RAM.
        Hay que tener en cuenta el hecho de que al montar en RAM las carpetas temporales, estas irán cogiendo RAM según necesidad. El montarlas en RAM no implica que agoten su totalidad. No nos olvidemos que cuando desmontemos o apaguemos el equipo los datos se perderán ya que están ubicados en RAM.

        Supongamos que hemos creado con mkdir el directorio /mnt/ram01 en el cual montaremos nuestra carpeta temporal.

        $ sudo mount -t tmpfs tmpfs /mnt/ram01

        Podemos limitar el uso de la RAM añadiendo el parámetro delimitador size. Con este parámetro estamos ordenando al sistema, que bajo ningún concepto conceda más RAM a dichos puntos de montaje que el indicado con el parámetro size. A continuación ponemos un ejemplo de como limitar el tamaño asignado a 3GB:

        $ sudo mount -t tmpfs -o size=3G tmpfs /mnt/ram01/

        En ZeppelinuX hemos publicado el artículo Montar las carpetas /tmp y /var/tmp en memoria RAM que puede que sea de vuestro interés.

      •  

      • Montar unidades de red Samba (Volver al índice General)
        Por ejemplo, vamos a montar el recurso compartido de red //naslan1/Backup en el punto de montaje /mnt/NAS-ZeppelinuX:

        $ sudo mount -t cifs //naslan1/Backup /mnt/NAS-ZeppelinuX/

        Donde:

        • cifs : Sistema de archivos de Samba.
        • naslan1 : Nombre del host (hostname). También podemos utilizar la IP del mismo.
        • Backup : Nombre del recurso compartido.
        • /mnt/NAS-ZeppelinuX/ : Directorio (punto de montaje) donde montaremos localmente el recurso remoto.

         
        Si el recurso Samba está protegido con usuario y contraseña, tendremos que pasar como parámetro las credenciales de acceso. En nuestro ejemplo, utilizaremos el parámetro credentials para pasar al comando las credenciales del usuario con privilegios para montar el recurso.

        $ sudo mount -t cifs //naslan1/Backup /mnt/NAS-ZeppelinuX/ -o credentials=/etc/samba/.credenciales.NAS

        Donde:

        • credentials : Es la opción que usaremos para pasar las credenciales de acceso al recurso y, /etc/samba/.credenciales.NAS es un archivo donde se guardan las credenciales. El nombre del archivo será de nuestra elección y ha de ser un archivo de texto plano con las siguientes líneas:

          username=nombre_de_usuario
          password=contraseña_para_username

          Si trabajamos en un dominio o grupo de trabajo añadiremos la siguiente línea a las dos anteriores:

          domain=el_dominio

          Es aconsejable que este archivo esté oculto (de ahí que le hayamos añadido un punto al comienzo de su nombre) y que solo tenga privilegios de lectura y escritura el usuario o grupo que lo vaya a utilizar. En nuestro caso, solo el root tiene permiso de escritura y lectura. El siguiente comando asigna el usuario y grupo al archivo:

          $ sudo chown root:root /etc/samba/.credenciales.NAS

          El siguiente comando asigna privilegios de lectura y escritura solo al usuario, en este caso el root:

          $ sudo chmod 600 /etc/samba/.credenciales.NAS

          En ZeppelinuX hemos publicado el artículo Montar unidades de red Samba en Linux que puede que sea de vuestro interés.

      •  

      • Montar unidades de red NFS (Volver al índice General)
        NFS permite que máquinas Unix/Linux compartan sus archivos y directorios a través de la red. Un equipo con Linux y con cliente NFS instalado, podrá montar un directorio que reside en otro equipo, que ejecute el servicio NFS, como si fuese un directorio local.

        Nota: El usuario del equipo cliente deberá tener permisos de acceso en el equipo servidor, al menos para acceder a los directorios compartidos por el servidor NFS.

        La sintaxis básica para montar unidades de red NFS utilizando el comando mount es la siguiente:

        mount -t nfs [-o opciones] servidor:/ruta/a/exportar /punto_de_montaje_local

         
        Opciones para NFS

        • nfsvers: Especifica que versión del protocolo NFS usar. Los valores son 2, 3 y 4. p.e: nfsvers=3.
        • hard/soft:
          • hard: Si el servidor NFS no responde, las solicitudes NFS se reintentan indefinidamente. Este es el comportamiento por omisión. Conjuntamente con la opción intr, si el servidor NFS no responde, el proceso se interrumpe y cuando el servidor NFS vuelve a estar en línea, el proceso continua desde donde se interrumpió.
          • soft: Si el servidor NFS no responde, devuelve un error de E/S al programa llamador tras esperar el tiempo indicado en la opción timeo. El valor por omisión es seguir intentando la operación NFS indefinidamente. En ciertos casos, la opción soft puede provocar la corrupción o pérdida de datos.
        • intr: Permite que las solicitudes NFS se interrumpan si el servidor NFS deja de responder. Se aconseja el uso de intr con la opción hard.
        • timeo: Define el tiempo, en décimas de segundo, que el cliente NFS espera una respuesta antes de reintentar una solicitud NFS. p.e: timeo=10.
        • rsize/wsize: Define el número máximo de bytes en cada solicitud de lectura/escritura que el cliente NFS puede recibir o enviar en la comunicación con el servidor NFS. rsize/wsize será un valor múltiplo integral positivo de 1024. Los valores inferiores a 1024 se reemplazan por 4096. Los valores mayores que 1048576 se reemplazan por 1048576. Si el valor especificado está dentro del rango permitido pero no es múltiplo de 1024, se redondea hacia abajo al múltiplo de 1024 más cercano. p.e: rsize=8192,wsize=8192
        • retrans: Es el número de veces que el cliente NFS reintenta una solicitud antes de intentar una acción de recuperación. Si no se especifica esta opción, por defecto, el cliente NFS intenta cada solicitud 3 veces. p.e: retrans=7
        • noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos. Útil si el sistema que se está montando no es un sistema de archivos Linux y sus binarios son incompatibles.
        • nosuid: Bloquea el funcionamiento de suid, y sgid bits.
        • tcp/udp: El protocolo de transporte por defecto para NFS es UDP. Sin embargo, la opción tcp permite el soporte de NFS sobre TCP.

         
        Veamos algunos ejemplos:

        $ sudo mount -t nfs -o hard,timeo=20,nosuid,tcp 192.168.0.100:/home/anacleto/informes /mnt/informes

        El siguiente ejemplo es igual al anterior pero utilizando un nombre de máquina en vez de IP:

        $ sudo mount -t nfs -o hard,timeo=20,nosuid,tcp pc003.zeppelinux.es:/home/anacleto/informes /mnt/informes

        O también:

        $ sudo mount -t nfs -o rsize=8192,wsize=8192,timeo=15,intr pc003.zeppelinux.es:/home/anacleto/informes /mnt/informes
      •  

      • Montar directorio remoto con SSH (Volver al índice General)
        En ZeppelinuX hemos publicado el artículo SSHFS: Montar directorio remoto con SSH en Debian. En dicho artículo se explica como montar directorios remotos utilizando el protocolo SSH utilizando el sistema de archivos SSHFS. En el artículo se presentan dos métodos de montaje, uno por demanda con el comando sshfs y otro utilizando el archivo /etc/fstab.
      •  

      • Montar usando opciones más complejas (Volver al índice General)
        Veamos un ejemplo en el que montamos una partición en modo solo lectura, que no permita la ejecución de binarios que se encuentren en el sistema de archivos, que impida la interpretación de los dispositivos especiales o de bloques del sistema de archivos y que bloquea el funcionamiento de suid, y sgid bit. Además, utilizaremos el tipo auto para que intente descubrir automáticamente el sistema de archivos apropiado:

        $ mount -t auto -o ro,noexec,nodev,nosuid /dev/hdc1 /mnt/directorio
  6.  

  7. Desmontar una unidad o partición por demanda con el comando umount (Volver al índice General)
    Si necesitamos desmontar una partición o dispositivo, solo tendremos que ejecutar el siguiente comando:

    $ sudo umount directorio

    Donde directorio es el punto de montaje del dispositivo.

    Por ejemplo:

    $ sudo umount /media/cdrom

    o también:

    $ sudo umount /mnt/iso

  8.  
     
     

  9. Montar una unidad o partición al inicio del sistema (Volver al índice General)
    El montaje por demanda tiene el inconveniente de que la partición o dispositivo estará montada mientras el sistema no se apague o reinicie, si ocurriese esto, tendríamos que volver a montar la partición o dispositivo. Si lo que nos interesa es que la partición o dispositivo se monte al inicio del sistema tendremos que trabajar con el archivo fstab. También existe un sistema de automontaje para medios extraíbles llamado autofs, pero en este artículo solo trabajaremos con fstab, el uso de autofs queda para otro artículo.

       

    • El archivo /etc/fstab (Volver al índice General)
      El archivo fstab se ubica en /etc, es decir su ruta sería /etc/fstab. Cada sistema de archivos se describe en una sola línea y cada campo (columna) se separa por tabulaciones o espacios. Las líneas que empiezan por # son comentarios y las líneas en blanco se ignoran.

      Veamos a continuación el contenido de un archivo fstab sencillo:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      $ cat /etc/fstab 
      # /etc/fstab: static file system information.
      #
      # Use 'blkid' to print the universally unique identifier for a
      # device; this may be used with UUID= as a more robust way to name devices
      # that works even if disks are added and removed. See fstab(5).
      #
      # <file system>                           <mount point>   <type>      <options>         <dump>  <pass># / was on /dev/sda1 during installation
      UUID=74f44374-0326-42ca-8eb0-0c2398940c25 /               ext4        errors=remount-ro 0       1# swap was on /dev/sda2 during installation
      UUID=d61d4720-8cc9-434b-85eb-386cbb1bd007 none            swap        sw                0       0# CD/DVD was on /dev/sr0 during installation
      /dev/sr0                                  /media/cdrom0   udf,iso9660 user,noauto       0       0
      • Las líneas 2, 3, 4, 5, 6, 7, 8, 9, 11 y 13 son comentarios.
      • La línea 8 es un comentario que nos sirve para reconocer todos los campos (columnas) que describen los sistemas de archivos.
      • Las líneas 10, 12 y 14 corresponden a la descripción de los tres sistemas de archivos descritos en el archivo (de ejemplo) fstab.

       
      A continuación, explicaremos para que sirve cada campo (columna):

      • <file system>: Es el dispositivo que vamos a montar. Este podrá ser un dispositivo especial de bloque un sistema de archivos remoto como pueden ser CIFS, NFS, una imagen ISO, etc. Observese que en nuestro ejemplo, los dispositivos de bloque se identifican de dos formas. En las líneas 10 y 12 se utiliza el UUID (UUID=74f44374-0326-42ca-8eb0-0c2398940c25) de la partición mientras que en la línea 14, se utiliza la ruta al dispositivo de bloque (/dev/sr0). También se puede utilizar la etiqueta de volumen escribiendo LABEL=etiqueta (LABEL=Root). Según la documentación de fstab, utilizar el UUID es la forma más robusta de nombrar dispositivos. Si fuese un sistema NFS, tendríamos que indicar el hostname o IP y el directorio compartido (host:dir). Para montar recursos samba, tendríamos que indicar el hostname o IP y el nombre del recurso compartido (//host/recurso), además de las credenciales de acceso al recurso si fuesen necesarias. Para procfs se utiliza proc.
      • <mount point>: Describe el punto de montaje del sistema de archivos (Vease las líneas 10 y 14 más arriba). Para las particiones de intercambio (swap), este campo debe declararse como none (Vease la línea 12 más arriba). Si el nombre del punto de montaje contiene espacios en blanco, estos pueden sustituirse por ‘\040‘.
      • <type>: Describe el tipo de sistema de archivos, como pueden ser: ext3, ext4, ReiserFS, ufs, hfs, hfs+, vfat, exfat, ntfs, cifs, nfs, tmpfs, auto y posiblemente otros.
      • <options>: Describe las opciones de montaje asociadas con el sistema de archivos. Su formato es el de una lista de opciones apropiadas para el tipo de sistema de archivos, sepradas por comas.
      • <dump>: Este campo es usado por el comando dump y determina si el sistema de archivos debe de ser volcado. La ausencia de valor en este campo devuelve un valor cero y el comando dump asume que no es necesario volcar el sistema de archivos.
      • <pass>: Este campo es usado por el comando fsck para determinar el orden en el que se realizan las comprobaciones del sistema de archivos en el momento del reinicio. El sistema de archivos raíz (/) deberá tener en este campo el valor de 1, los otros sistemas de archivos deberán tener un valor de 2. Los sistemas de archivos dentro de una unidad se verificarán secuencialmente, pero los sistemas de archivos en diferentes unidades se verificarán al mismo tiempo para utilizar el paralelismo disponible en el hardware. Si este campo no está presente o es cero, se devuelve un valor de 0 y el comando fsck asumirá que no es necesario verificar el sistema de archivos.
    •  

    • Ejemplos (Volver al índice General)
      Comenzaremos montando las particiones necesarias para que un sistema Linux pueda arrancar, es decir, las particiones donde se instalan el sistema operativo, los programas, servicios, datos, temporales y la partición de intercambio (swap). Continuaremos viendo los casos más comúnes, como montar unidades CD/DVD, USB, ISO y unidades de red (Samba y NFS).

      Nota: ¡Muy importante! Es aconsejable hacer una copia de seguridad del archivo /etc/fstab. Para hacerlo podemos utilizar el siguiente comando:

      $ sudo cp /etc/fstab /etc/fstab.bak

      Si algo va mal, tan solo tendremos que borrar el archivo /etc/fstab modificado con el siguiente comando:

      $ sudo rm /etc/fstab

      y renombrar /etc/fstab.bak con el siguiente comando:

      $ sudo mv /etc/fstab.bak /etc/fstab

      Para modificar el archivo /etc/fstab utilizaremos nuestro editor de texto favorito. En nuestros ejemplos utilizaremos el editor nano, presente en casi todas las distribuciones Linux:

      $ sudo nano /etc/fstab
         

      • Montar sistemas de archivo ext4, ext3, ext2, reiserfs, etc (Volver al índice General)
        En la actualidad, lo normal es que nuestro sistema operativo Linux se instale en particiones del tipo ext4, aunque podría instalarse en particiones de otro tipo (p.e. ReiserFS). En nuestros ejemplos, utilizaremos particiones del tipo ext4 y utilizaremos; una partición para el raíz del sistema de archivos (/), otra partición para alojar los datos que generen nuestros servicios (/var), otra para los directorios personales de los usuarios (/home), otra para datos temporales (/tmp) y la partición de intercambio (swap).

        Para identificar las particiones, utilizaremos su UUID (Universally Unique IDentifier). Si no sabes como obtenerlo, en ZeppelinuX hemos publicado el artículo Cómo conocer el UUID de nuestros discos y cómo modificarlo.

        A continuación listamos el contenido del fichero /etc/fstab modificado para montar las particiones anteriores:

        $ cat /etc/fstab 
        # /etc/fstab: static file system information.
        #
        # Use 'blkid' to print the universally unique identifier for a
        # device; this may be used with UUID= as a more robust way to name devices
        # that works even if disks are added and removed. See fstab(5).
        #
        # <file system>                           <mount point>   <type>  <options>         <dump>  <pass>
        # swap en /dev/sda1
        UUID=2ea596d4-2408-4dcc-abfb-3502f4920f6d none            swap    sw                0       0
        # / en /dev/sda2
        UUID=bd031262-77aa-4dc2-bb38-4e5a7a72102e /               ext4    errors=remount-ro 0       1
        # /var en /dev/sda3
        UUID=edf0b712-f541-4f1c-b087-65d5515344b3 /var            ext4    defaults          0       2
        # /home en /dev/sda5
        UUID=3155a295-e974-498d-bc79-4febaecc749a /home           ext4    defaults          0       2
        # /tmp en /dev/sda6
        UUID=2364c295-997e-3d21-be85-66521a661cf8 /tmp            ext4    defaults          0       2
        ...
      •  

      • Montar una carpeta en memoria RAM (Volver al índice General)
        El motivo por el cual montamos carpetas en memoria RAM es la velocidad a la que trabaja la RAM. Por ejemplo, si se dispone de bastante RAM, es aconsejable montar en esta los directorios temporales de nuestros sistemas Linux, como pueden ser los directorios /tmp y /var/tmp. Otro caso en el que podemos beneficiarnos de la velocidad de la RAM es cuando trabajamos con archivos multimedia: imágenes, vídeo, audio, etc. Alojar una carpeta en RAM para trabajar con este tipo de archivos durante su edición, sería de gran ayuda.

        Supongamos que hemos creado con mkdir el directorio /mnt/ram01 en el cual montaremos nuestra carpeta de acceso rápido, la sintaxis sería la siguiente:

        tmpfs /mnt/ram01     tmpfs          0 0

        Si nuestro sistema utiliza mucha RAM, por ejemplo, por que utilizamos máquinas virtuales, podremos limitar el uso de la RAM añadiendo el parámetro delimitador size. Con este parámetro estamos ordenando al sistema, que bajo ningún concepto conceda más RAM a dichos puntos de montaje que el indicado con el parámetro size. A continuación ponemos un ejemplo de como limitar el tamaño asignado a 3GB:

        tmpfs /mnt/ram01     tmpfs size=3G  0 0
      • En ZeppelinuX hemos publicado el artículo Montar las carpetas /tmp y /var/tmp en memoria RAM. El procedimiento empleado en este artículo, nos sirve igualmente para montar directorios con fines distintos al de los directorios temporales, como por ejemplo, para editar archivos multimedia.

    •  

    • Montar un CD/DVD (Volver al índice General)
      En este punto, configuraremos la entrada para que los CD/DVD se monten en los directorios que nosotros queramos cuando se solicite su montaje. Al utilizar la opción noauto, estos no se montarán al inicio del sistema.

      Para el montaje de un CD/DVD, editamos el archivo /etc/fstab y en caso de tener una única unidad de CD/DVD, añadiríamos la siguiente línea:

      ...
      # Primer CD/DVD en /dev/sr0
      /dev/sr0                                  /media/cdrom0   udf,iso9660 user,noauto       0       0
      ...

      Si tuviésemos más de un CD/DVD, podríamos añadir tantas líneas como unidades de este tipo tuviésemos, teniendo en cuenta que la primera unidad sería /dev/sr0, la segunda /dev/sr1 y así sucesivamente. Veamos un ejemplo con tres unidades:

      ...
      # Primer CD/DVD en /dev/sr0
      /dev/sr0                                  /media/cdrom0   udf,iso9660 user,noauto       0       0
      # Segundo CD/DVD en /dev/sr1
      /dev/sr1                                  /media/cdrom1   udf,iso9660 user,noauto       0       0
      # Tercer CD/DVD en /dev/sr2
      /dev/sr2                                  /media/cdrom2   udf,iso9660 user,noauto       0       0
      ...

      Nota: Los directorios /media/cdrom0, /media/cdrom1 y /media/cdrom2 tendrán que existir, si no es así, tendremos que crearlos.

    •  

    • Montar sistemas de archivo NTFS, FAT, exFAT (Volver al índice General)
      Si lo que nos interesa es montar particiones utilizadas por sistemas operativos Windows o unidades formateadas con los tipos NTFS, FAT, FAT16, FAT32, exFAT, sería cuestión de cambiar el tipo de sistema de archivo a la hora de montar la partición.

      Téngase en cuenta lo siguiente:

      • Para montar, leer, y escribir particiones FAT, FAT16 o FAT32, normalmente no hay que instalar paquete alguno, los controladores necesarios para tratar con estos sistemas de archivo suelen instalarse por defecto.
      • Para montar, leer y escribir particiones NTFS habrá que instalar el paquete ntfs-3g:
        $ sudo apt install ntfs-3g
      • Para montar, leer y escribir particiones exFAT habrá que instalar los paquetes fuse, exfat-fuse y exfat-utils:
        $ sudo apt install fuse exfat-fuse exfat-utils

      Veamos un ejemplo de cada uno de los controladores:

      $ cat /etc/fstab 
      ...
      # <file system>                           <mount point>   <type>  <options>         <dump>  <pass>
      # Ejemplo para sistemas de archivo FAT, FAT16 y FAT32
      UUID=1c84deee-ca60-41b2-825a-3ab537b00625 /mnt/winfat     vfat    defaults          0       2
      # Ejemplo para sistemas de archivo NTFS
      UUID=72fe7364-9230-4d7e-9cdb-ae06cccd0273 /mnt/winntfs    ntfs-3g defaults          0       2
      # Ejemplo para sistemas de archivo exFAT
      UUID=2afe1bb5-72e2-42dc-b04b-d7447db950cd /mnt/winexfat   exfat   defaults          0       2
      ...

      Nota: Los directorios /mnt/winfat, /mnt/winntfs y /mnt/winexfat tendrán que existir, si no es así, tendremos que crearlos.

    •  

    • Montar un dispositivo USB (Volver al índice General)
      Este apartado solo es interesante si arrancamos nuestro sistema con unidades conectadas al bus de comunicaciones USB, o si queremos que cada vez que una unidad USB, en concreto, se monte en un directorio en concreto, como hemos visto en el punto Montar un CD/DVD.

      Estas unidades suelen ser Memorias USB (Pendrive), discos externos USB, etc. El método es el mismo que en los dos puntos anteriores, tendremos que conocer el UUID de la partición a montar y el tipo de sistema de archivos de la partición.

      Por ejemplo, supongamos que tenemos un disco externo de 1TB conectado a un puerto USB y el sistema de archivos empleado en el formateo de dicho disco es ntfs. Veamos la forma de configurar las entradas en /etc/fstab para que dicho disco externo de monte al inicio del sistema o, para que cuando elijamos montarlo se monte en el directorio de nuestra elección:

      • Si queremos que el disco USB se monte al inicio del sistema, añadiremos la siguiente línea:
        ...
        # Ejemplo para disco 1TB al inicio del sistema
        UUID=1c84deee-ca60-41b2-825a-3ab537b00625 /mnt/USB1TB001  ntfs  defaults       0    2
        ...

        La opción defaults en realidad engloba un conjunto de opciones por defecto que para el sistema de archivos ext4 son: rw, suid, dev, exec, auto, nouser, async. Si el disco no está conectado al arrancar el sistema, el sistema presentará mensaje de error.

      • Si lo que pretendemos es que el disco USB no se monte al inicio, pero que cuando se invoque su montaje se monte en una carpeta específica y con las opciones deseadas, añadiremos la siguiente línea:
        ...
        # Ejemplo para disco 1TB por demanda
        UUID=1c84deee-ca60-41b2-825a-3ab537b00625 /mnt/USB1TB001   ntfs  user,noauto   0    0
        ...

        La opción user permite que cualquier usuario monte el sistema de archivos y la opción noauto impide que se monte al inicio del sistema.

      Nota: El directorio /mnt/USB1TB001 tendrá que existir, si no es así, tendremos que crearlo.

    •  

    • Montar unidades de red Samba (Volver al índice General)
      Para montar unidades de red Samba, añadiremos la siguiente línea:

      //Recurso        /Punto_de_Montaje    cifs   defaults,user,credentials=Ruta_archivo_de_credenciales  0      0

      Un ejemplo con los parámetros utilizados en el método por demanda, quedaría como sigue:

      //naslan1/Backup /mnt/NAS-ZeppelinuX/ cifs   defaults,user,credentials=/etc/samba/.credenciales.NAS   0      0

      En ZeppelinuX hemos publicado el artículo Montar unidades de red Samba en Linux. En dicho artículo se explica como montar unidades de red Samba utilizando el archivo /etc/fstab.

    •  
       

    • Montar unidades de red NFS (Volver al índice General)
      NFS permite que máquinas Unix/Linux compartan sus archivos y directorios a través de la red. Un equipo con Linux y con cliente NFS instalado, podrá montar un directorio que reside en otro equipo, que ejecute el servicio NFS, como si fuese un directorio local.

      Nota: El usuario del equipo cliente deberá tener permisos de acceso en el equipo servidor, al menos para acceder a los directorios compartidos por el servidor NFS.

      La sintaxis básica para montar unidades de red NFS utilizando el archivo /etc/fstab es la siguiente:

      servidor:/ruta/a/exportar /punto_de_montaje_local nfs <opciones> 0 0

      Opciones para NFS

      • nfsvers: Especifica que versión del protocolo NFS usar. Los valores son 2, 3 y 4.
      • hard/soft:
        • hard: Si el servidor NFS no responde, las solicitudes NFS se reintentan indefinidamente. Este es el comportamiento por omisión. Conjuntamente con la opción intr, si el servidor NFS no responde, el proceso se interrumpe y cuando el servidor NFS vuelve a estar en línea, el proceso continua desde donde se interrumpió.
        • soft: Si el servidor NFS no responde, devuelve un error de E/S al programa llamador tras esperar el tiempo indicado en la opción timeo. El valor por omisión es seguir intentando la operación NFS indefinidamente. En ciertos casos, la opción soft puede provocar la corrupción o pérdida de datos.
      • intr: Permite que las solicitudes NFS se interrumpan si el servidor NFS deja de responder. Se aconseja el uso de intr con la opción hard.
      • timeo: Define el tiempo, en décimas de segundo, que el cliente NFS espera una respuesta antes de reintentar una solicitud NFS. p.e: timeo=10.
      • rsize/wsize: Define el número máximo de bytes en cada solicitud de lectura/escritura que el cliente NFS puede recibir o enviar en la comunicación con el servidor NFS. rsize/wsize será un valor múltiplo integral positivo de 1024. Los valores inferiores a 1024 se reemplazan por 4096. Los valores mayores que 1048576 se reemplazan por 1048576. Si el valor especificado está dentro del rango permitido pero no es múltiplo de 1024, se redondea hacia abajo al múltiplo de 1024 más cercano. p.e: rsize=8192,wsize=8192
      • retrans: Es el número de veces que el cliente NFS reintenta una solicitud antes de intentar una acción de recuperación. Si no se especifica esta opción, por defecto, el cliente NFS intenta cada solicitud 3 veces. p.e: retrans=7
      • noexec: No permite la ejecución de binarios que se encuentren en el sistema de archivos. Útil si el sistema que se está montando no es un sistema de archivos Linux y sus binarios son incompatibles.
      • nosuid: Bloquea el funcionamiento de suid, y sgid bits.
      • tcp/udp: El protocolo de transporte por defecto para NFS es UDP. Sin embargo, la opción tcp permite el soporte de NFS sobre TCP.

       
      Veamos algunos ejemplos:

      192.168.0.100:/home/anacleto/informes /mnt/informes nfs hard,timeo=20,nosuid,tcp 0 0

      El siguiente ejemplo es igual al anterior pero utilizando un nombre de máquina en vez de IP:

      pc003.zeppelinux.es:/home/anacleto/informes /mnt/informes nfs hard,timeo=20,nosuid,tcp 0 0

      O también:

      pc003.zeppelinux.es:/home/anacleto/informes /mnt/informes nfs rsize=8192,wsize=8192,timeo=15,intr 0 0
    •  

    • Montar directorio remoto con SSH (Volver al índice General)
      En ZeppelinuX hemos publicado el artículo SSHFS: Montar directorio remoto con SSH en Debian. En dicho artículo se explica como montar directorios remotos utilizando el protocolo SSH utilizando el sistema de archivos SSHFS. En el artículo se presentan dos métodos de montaje, uno por demanda con el comando sshfs y otro utilizando el archivo /etc/fstab.

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
 
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.