fstab (Español)

From ArchWiki
Revision as of 18:10, 17 March 2013 by Pedro (Talk | contribs) (Volver a montar la partición root)

Jump to: navigation, search

Sumario help replacing me
Este artículo explica cómo configurar y utilizar fstab.
Relacionado
Persistent block device naming
NTFS Write Support
Firefox Ramdisk
Boot Debugging
udev (Español)

El archivo /etc/fstab contiene información sobre el sistema de archivos. En el mismo viene definido cómo la partición y los dispositivos de almacenamiento serán montados e integrados en el sistema. Este archivo es leído por la orden mount para determinar qué opciones utilizar al montar un dispositivo específico o una partición.

Ejemplo de archivo

He aquí una muestra de archivo /etc/fstab, utilizando nombres descriptivos del kernel:

/etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>

tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0

/dev/sda1              /             ext4      defaults,noatime      0      1
/dev/sda2              none          swap      defaults              0      0
/dev/sda3              /home         ext4      defaults,noatime      0      2

Definiciones de los campos

El archivo /etc/fstab contiene los siguientes campos separados por un espacio o una tabulación:

 <file system>        <dir>         <type>    <options>             <dump> <pass>
  • <file system> - Define la partición o dispositivo de almacenamiento para ser montado.
  • <dir> - Indica a la orden mount el punto de montaje donde la partición (<file system>) será montada.
  • <type> - Indica el tipo de sistema de archivos de la partición o dispositivo de almacenamiento para ser montado. Hay muchos sistemas de archivos diferentes que son compatibles como, por ejemplo: ext2, ext3, ext4, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap y auto. El type auto permite a la orden mount determinar qué tipo de sistema de archivos se utiliza. Esta opción es útil para proporcionar soporte a unidades ópticas (CD/DVD).
  • <options> - Indica las opciones de montaje que la orden mount utilizará para montar el sistema de archivos. Tenga en cuenta que algunas opciones de montaje son para ​​sistema de archivos específicos. Algunas de las opciones más comunes son:
  • 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.
  • 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.
  • ro - Monta el sistema de archivos en modo sólo lectura.
  • rw - Monta el sistema de archivos en modo lectura-escritura.
  • user - Permite a cualquier usuario montar el sistema de archivos. Esta opción incluye noexec, nosuid, nodev, a menos que se indique lo contrario.
  • users - Permite que cualquier usuario perteneciente al grupo users montar el sistema de archivos.
  • nouser - Solo el usuario root puede montar el sistema de archivos.
  • owner - Permite al propietario del dispositivo montarlo.
  • sync - Todo el I/O se debe hacer de forma sincrónica.
  • async - Todo el I/O se debe hacer de forma asíncrona.
  • 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.
  • 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
  • noatime - No actualiza el inode con el tiempo de acceso al filesystem. Puede aumentar las prestaciones (véase opciones atime).
  • nodiratime - No actualiza el inode de los directorios con el tiempo de acceso al filesystem. Puede aumentar las prestaciones (véase opciones atime).
  • relatime - Actualiza en el inode solo los tiempos relativos a modificaciones o cambios de los archivos. Los tiempos de acceso vienen actualizados solo si el último acceso es anterior respecto al de la última modificación. (Similar a noatime, pero no interfiere con programas como mutt u otras aplicaciones que deben conocer si un archivo ha sido leido después de la última modificación). Puede aumentar las prestaciones (véase opciones atime).
  • flush - La opción vfat permite eliminar datos con más frecuencia, dado que el sistema de archivos fat necesita escribir más a menudo los datos en el disco con el fin de evitar que las ventanas de transferencia se cierren mientras los datos no se han escrito todavía.
  • 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.
  • <dump> - Utilizado por el programa dump («volcado») para decidir cuándo hacer una copia de seguridad. Dump comprueba la entrada en el archivo fstab y el número de la misma le indica si un sistema de archivos debe ser respaldado o no. La entradas posibles son 0 y 1. Si es 0, dump ignorará el sistema de archivos, mientras que si el valor es 1, dump hará una copia de seguridad. La mayoría de los usuarios no tendrán dump instalado, por lo que deben poner el valor 0 para la entrada <dump>.
  • <pass> -Utilizado por fsck para decidir el orden en el que los sistemas de archivos serán comprobados. Las entradas posibles son 0, 1 y 2. El sistema de archivos raíz («root») debe tener la más alta prioridad: 1 -todos los demás sistemas de archivos que desea comprobar deben tener un 2-. La utilidad fsck no comprobará los sistemas de archivos que vengan ajustados con un valor 0 en <pass>.

Identificación de los sistemas de archivos

Hay tres maneras de identificar una partición o un dispositivo de almacenamiento en /etc/fstab: por el nombre descriptivo del kernel, por la etiqueta o por la UUID. La ventaja de usar etiquetas o UUID, es que no dependen del orden en el que las unidades son (físicamente) conectadas a la máquina. Esto es útil si se cambia el orden de los dispositivos de almacenamiento en la BIOS, o si se cambia el cableado de conexión de los dispositivos de almacenamiento. Ocurre, también, a veces, que la BIOS cambia el orden de los dispositivos de almacenamiento. Léase más sobre este tema en el artículo Persistent block device naming.

Para mostrar información básica acerca de las particiones, ejecute:

$ lsblk -f
NAME   FSTYPE LABEL      UUID                                 MOUNTPOINT
sda                                                           
├─sda1 ext4   Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
├─sda2 ntfs   Windows    6C1093E61093B594                     
└─sda3 ext4   Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
sdb                                                           
├─sdb1 ntfs   Games      9E68F00568EFD9D3                     
└─sdb2 ext4   Backup     14d50a6c-e083-42f2-b9c4-bc8bae38d274 /media/Backup
sdc                                                           
└─sdc1 vfat   Camera     47FA-4071                            /media/Camera

Nombre del kernel

Ejecute lsblk -f para mostrar la lista de las particiones, y coloque el nombre visualizado precedido del prefijo /dev.

Véase el ejemplo anterior.

Etiqueta

Nota: Cada etiqueta («label») debe ser única, para evitar posibles conflictos.

Para etiquetar un dispositivo o partición, véase este artículo. También puede instalar y usar gparted, pero para cambiar el nombre de la partición raíz tendrá que hacerse desde una distribución Linux «live» (Parted Magic, Ubuntu, etc.), ya que la partición se debe desmontar primero.

Ejecute lsblk -f para mostrar la lista de las particiones, y coloque la etiqueta visualizada precedida del prefijo LABEL=:

/etc/fstab
# <file system>        <dir>         <type>    <options>             <dump> <pass>

tmpfs                  /tmp          tmpfs     nodev,nosuid          0      0
 
LABEL=Arch_Linux       /             ext4      defaults,noatime      0      1
LABEL=Arch_Swap        none          swap      defaults              0      0

UUID

Todas las particiones y dispositivos tienen un UUID único. Los UUID son generados por las utilidades de creación del sistema de archivos (por ejemplo, mkfs.*) al crear o formatear una partición.

Ejecute lsblk -f para mostrar la lista de las particiones, y coloque el número identifidor de la unidad visualizado precedido del prefijo UUID= :

Sugerencia: Si desea conocer solo el UUID de una partición específica, escriba:
$ lsblk -no UUID /dev/sda2
/etc/fstab
# <file system>                            <dir>     <type>    <options>             <dump> <pass>

tmpfs                                      /tmp      tmpfs     nodev,nosuid          0      0

UUID=24f28fc6-717e-4bcd-a5f7-32b959024e26  /         ext4      defaults,noatime      0      1
UUID=03ec5dd3-45c0-4f95-a363-61ff321a09ff  /home     ext4      defaults,noatime      0      2
UUID=4209c845-f495-4c43-8a03-5363dd433153  none      swap      defaults              0      0

Consejos y trucos

Montaje automático de dispositivos

Para montar automáticamente otros dispositivos del disco durante el arranque, haremos lo siguiente:

Usaremos la orden lsblk -f para listar todos los dispositivos del disco.

Copiaremos la UUID relativa al dispositivo y la pondremos como entrada en /etc/fstab, al tiempo que crearemos un nueva línea con la información del dispositivo.

He aquí un ejemplo:

$ lsblk -f
NAME   FSTYPE LABEL      UUID                                 MOUNTPOINT
sda                                                           
├─sda1 ext4   Arch_Linux 978e3e81-8048-4ae1-8a06-aa727458e8ff /
├─sda2 ntfs   Windows    6C1093E61093B594                     
└─sda3 ext4   Storage    f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage
/etc/fstab
# <file system>	<dir>	<type>	<options>	<dump>	<pass>
tmpfs		/tmp	tmpfs	nodev,nosuid	0	0
...

f838b24e-3a66-4d02-86f4-a2e73e454336 /media/Storage ext4 defaults 0 0

...

No olvidemos comprobar la página de manual del fstab para más información.

UUID para swap

En caso de que la partición de intercambio no tenga un UUID, será posible agregarlo manualmente. Es el caso de que no se muestre el UUID de swap cuando se ejecuta la orden lsblk-f. Estos son algunos pasos a seguir para poder asignar un UUID a la partición swap:

Identifique la partición swap:

# swapon -s

Desactive la partición swap:

# swapoff /dev/sda7

Vuelva a crear la partición swap con un nuevo UUID asignado a la misma:

# mkswap -U random /dev/sda7

Active nuevamente swap:

# swapon /dev/sda7

Utilizar rutas que contienen espacios

Si algún punto de montaje contiene espacios en el nombre, use el carácter de la barra invertida \ seguido por el código de 3 dígitos 040 para emular el espacio:

/etc/fstab
UUID=47FA-4071     /home/username/Camera\040Pictures   vfat  defaults,noatime       0  0
/dev/sda7          /media/100\040GB\040(Storage)       ext4  defaults,noatime,user  0  2

Dispositivos externos

Los dispositivos externos que van a ser montados cuando estén presentes pero ignorados si estén ausentes, pueden requerir el uso de la opción nofail. Esta opción evita que se muestren mensajes de error durante el arranque.

/etc/fstab
/dev/sdg1        /media/backup    jfs    defaults,nofail    0  2

Opciones atime

El uso de las opciones noatime, nodiratime o relatime pueden mejorar las prestaciones del disco. De forma predeterminada, Linux mantiene un registro (lo escribe en el disco) de cada lectura efectuada atime. Esto es útil cuando se usa Linux para servidores, pero no tiene mucho valor cuando se usa para escritorio. El inconveniente de la opción predefinida atime es que incluso la lectura de un archivo desde la memoria caché (lectura desde la memoria, en lugar desde el disco directamente), aún en este caso, ¡resultará registrado! Usando la opción noatime deshabilita completamente la actualización del tiempo de acceso a los archivos cada vez que se lee un archivo. Esto funciona bien para casi todas las aplicaciones, excepto para algunas raras como Mutt que necesitan dicha información. El uso de la opción relatime permite la actualización de los tiempos de acceso al archivo solo si el archivo viene modificado (a diferencia de noatime donde el tiempo de acceso a los archivos leídos no vendrá actualizado y será anterior respecto al tiempo de modificación del archivo). La opción nodiratime deshabilita la escritura de los tiempos de acceso a los archivos, solo para los directorios, mientras que para el resto de los archivos todavía los tiempos de acceso serán actualizados. El mejor compromiso podría ser el uso de relatime que no influyen en el funcionamiento de los programas como Mutt, pero todavía se obtendrá un aumento del rendimiento porque los tiempos de acceso a los archivos vendrán actualizados solo si los archivos son modificados.

Nota: La opción noatime ya incluye nodiratime. No es necesario especificar ambas. [1]

tmpfs

tmpfs es un sistema de archivos temporal que reside en la memoria y/o en la partición de intercambio, dependiendo de lo mucho que se llene. El montaje de carpetas en tmpfs puede ser una manera eficaz de acelerar los accesos en la lectura de los archivos, o para asegurar que sus contenidos se borren automáticamente después del reinicio.

Algunas carpetas donde tmpfs es comúnmente utilizado son /tmp, /var/lock y /var/run. NO lo use para /var/tmp, porque esa carpeta es para los archivos temporales que deben ser conservados después del reinicio. Arch usa el directorio /run como tmpfs, con /var/run y /var/lock simplemente existentes como enlaces simbólicos para permitir la compatibilidad. tmpfs también se utiliza por /tmp en la configuración predeterminada del archivo /etc/fstab.

Nota: Al utilizar systemd, los archivos y las carpetas temporales en tmpfs se pueden recrear en el arranque usando tmpfiles.d.

De forma predeterminada, una partición tmpfs tiene establecido el tamaño máximo a la mitad de la memoria RAM total, pero esto se puede personalizar. Tenga en cuenta que el actual consumo de memoria/swap depende de lo mucho que se llenen, y la partición tmpfs no consumen memoria hasta que no viene usada.

Para usar tmpfs para /tmp, añada esta línea a /etc/fstab:

/etc/fstab
tmpfs   /tmp         tmpfs   nodev,nosuid                  0  0

Se puede o no especificar el tamaño aquí, pero debe dejar la opción mode inalterada en este caso, para asegurarse de que tiene los permisos correctos (1777). En el ejemplo anterior, /tmp se establece para utilizar hasta la mitad de la memoria RAM total. Para definir explícitamente un tamaño máximo, utilice la opción size de la orden mount:

/etc/fstab
tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0

He aquí un ejemplo más avanzado que muestra cómo agregar puntos de montaje tmpfs para los usuarios. Esto es útil para los sitios web, los archivos tmp de mysql, ~/.vim/, y otros. Es importante tratar de obtener las opciones de montaje ideales para el propósito que se está tratando de lograr. La meta es tener tantos valores seguros como sea posible para evitar abusos. Limitar el tamaño y la especificación de uid y gid + mode es muy seguro. Más información.

/etc/fstab
tmpfs   /www/cache    tmpfs  rw,size=1G,nr_inodes=5k,noexec,nodev,nosuid,uid=648,gid=648,mode=1700   0  0

Véase la página man relativa a la orden mount para obtener más información. Una opción útil de montaje según la página del manual es default.

Reinicie para que los cambios surtan efecto. Tenga en cuenta que si bien puede ser tentador simplemente ejecutar mount -a para hacer efectivos los cambios inmediatamente, esto hará que todos los archivos que actualmente residen en estos directorios sean inaccesibles (esto es especialmente problemático para ejecutar programas con archivos de bloqueo, por ejemplo ). Sin embargo, si todos los directorios están vacíos, es seguro ejecutar mount -a en lugar de reiniciar (o móntelos manualmente).

Después de aplicar los cambios, es posible que desee verificar que todo es correcto, comprobando /proc/mounts con la orden findmnt:

$ findmnt --target /tmp
TARGET SOURCE FSTYPE OPTIONS
/tmp   tmpfs  tmpfs  rw,nosuid,nodev,relatime

Uso

En general, las tareas y programas con intensas demandas de I/O realizando frecuentemente operaciones de lectura/escritura, pueden beneficiarse del uso de una carpeta como tmpfs. Algunas aplicaciones pueden obtener incluso una mejora sustancial mediante la descarga de parte (o todos) sus datos en la memoria compartida. Por ejemplo, reubicar el perfil de Firefox en la RAM muestra una mejora significativa en las prestaciones.

Mejorar el tiempo de compilación
Nota: La carpeta tmpfs (/tmp, en este caso) tiene que ser montada sin la opción noexec, lo que evitará que los scripts de compilación u otras utilidades se ejecuten. De otro modo, dado que el tamaño predeterminado, como se indica más arriba, equivale a la mitad de la memoria RAM disponible, podría quedarse sin espacio.

Puede ejecutar makepkg con una carpeta tmpfs como el directorio para la compilación (que también puede ser configurado en /etc/makepkg.conf):

$ BUILDDIR=/tmp/makepkg makepkg

Escribir en FAT32 como usuario normal

Para poder escribir en una partición FAT32, es necesario hacer algunos cambios en el archivo /etc/fstab.

/etc/fstab
/dev/sdxY    /mnt/some_folder  vfat   user,rw,umask=000              0  0

El parámetro user significa que cualquier usuario (que no sea root) puede montar y desmontar la partición /dev/sdX. El parámetro rw da acceso de lectura-escritura; la opción umask quita los permisos seleccionados (por ejemplo umask=111 quita los permisos de ejecución). El problema es que esta entrada quita también los permisos de ejecución sobre los directorios, así que hay que corregirla con dmask=000. Y, ¿por qué el uso de estas opciones? Porque sin estas opciones todos los archivos son ejecutables. Puede utilizar la opción showexec, en lugar de las opciones umask y dmask, que muestra todos los archivos ejecutables de Windows (com, exe, bat) coloreados.

Por ejemplo, si su partición FAT32 está en /dev/sda9, y desea montarla en /mnt/fat32, entonces se debería utilizar:

/etc/fstab
/dev/sda9    /mnt/fat32        vfat   user,rw,umask=111,dmask=000    0  0

Volver a montar la partición root

Si por alguna razón la partición raíz se ha montado incorrectamente con acceso de sólo lectura, vuelva a montar la partición con la siguiente orden:

# mount -o remount,rw /;   #Monta la partición root con acceso de lectura y escritura

Véase también