Cómo escribir un archivo fstab en Linux

Los platos dentro de varios discos duros.
zentilia / Shutterstock.com

¿Está agregando un nuevo disco duro o unidad de estado sólido a su computadora Linux? Deberá editar su fstabarchivo. A mucha gente le da miedo la idea. Sí, es fundamental que lo haga bien, pero armado con el conocimiento adecuado, realmente no es difícil. Lo guiamos a través del proceso de edición de su fstabarchivo para integrar su nueva unidad en su sistema de archivos.

fstab, la tabla de sistemas de archivos

Aunque agregar un nuevo disco duro a una computadora Linux no es demasiado complicado, puede resultar un poco confuso la primera vez que lo intente. Conecta el hardware, enciende la computadora e inicia sesión en el sistema operativo. Pero no puede ver su nueva unidad por ningún lado. ¿Por qué no aparece? ¿Cómo se consigue que Linux «vea» la unidad para que pueda empezar a configurarla?

En realidad, Linux ha visto su hardware, pero no lo anuncia fácilmente. O incluso darle una pista de que ha encontrado su nuevo hardware. Tiene que interrogar a Linux para obtener la información que necesitará poner en su fstabarchivo.

A continuación, le mostramos cómo configurar su nuevo disco duro para que Linux, y usted, puedan verlo y usarlo. El proceso consta de dos partes. La primera parte consiste en realizar un reconocimiento para identificar el disco duro y recopilar información sobre él. La segunda parte es editar el fstabarchivo, utilizando la información que hemos recopilado en la fase de reconocimiento.

Encontrar su nueva unidad

Estamos agregando dos nuevas unidades a este sistema. Uno es un disco duro mecánico (HD) de 32 GB y el otro es una unidad de estado sólido (SSD) de 16 GB .

Necesitamos saber que Linux puede verlos y qué dispositivos de bloque utiliza Linux para ellos. En los sistemas operativos Linux y tipo Unix, un dispositivo de bloque es un archivo especial que actúa como una interfaz a un dispositivo desde el que se pueden leer y escribir datos (a menos que sea de solo lectura). Los dispositivos de bloque a menudo representan una unidad de almacenamiento masivo de algún tipo (por ejemplo, una partición en un disco duro o un CD-ROM. Se crean en el /dev directorio.

Podemos usar el lsblkcomando para listar los dispositivos de bloque conectados a su computadora Linux.

lsblk

lsblk en una ventana de terminal

La salida de lsblkestá en columnas.

Salida de lsblk en una ventana de terminal

Las columnas son:

  • Nombre : este es el nombre del dispositivo. Los nombres de dispositivos que comienzan con “sd” y van seguidos de una letra representan discos duros SCSI . La letra identifica discos duros individuales, siendo «a» el primero, «b». siendo el segundo y así sucesivamente. Si se agrega un número, indica una partición. Por ejemplo, «sdb2» sería la partición 2 del segundo disco duro SCSI.
  • Maj: Min : esta columna contiene los números mayor y menor del dispositivo. El número mayor indica el tipo de dispositivo (o, más precisamente, el tipo de controlador utilizado para hablar con ese dispositivo). El número menor es un recuento de la cantidad de dispositivos de ese tipo.
  • Rm : esta columna muestra si el dispositivo es extraíble o no. Tenga en cuenta que el dispositivo sr0tiene un valor de 1, lo que indica que es extraíble. Esta es una unidad de CD-ROM.
  • Tamaño : esta es la cantidad de datos que se pueden almacenar en el dispositivo.
  • Ro : Esta columna mostrará 1 para dispositivos de solo lectura y 0 para dispositivos de lectura y escritura. Los loopdispositivos son de sólo lectura .
  • Tipo : identifica el tipo de dispositivo. La entrada «disco» significa una unidad de disco, la entrada «parte» significa partición y «rom» significa memoria de sólo lectura (CD-ROM).
  • Punto de montaje : muestra el punto del sistema de archivos en el que está montado este dispositivo. Si está en blanco, el dispositivo no está montado.

En la captura de pantalla anterior, puede ver que todos los loopdispositivos reciben un número mayor de 7 (es decir, un dispositivo de bucle invertido o bucle ), y los números menores simplemente se incrementan en 1 cada vez. Los dispositivos de bucle se utilizan con el squashfssistema de archivos. Se squashfscrea un sistema de archivos cada vez que se instala una aplicación mediante el rápido sistema de administración de paquetes.

Los discos duros SCSI reciben nombres como sda, sdby sdc, y todos tienen un número mayor de 8 (disco duro SCSI). Los números menores están agrupados en 16. Los números menores para la primera unidad, sdavan de 0 a 15. El 0 representa la unidad física y el número menor de 1 representa la primera partición en esa unidad. Para la segunda unidad, sdblos números menores van del 16 al 31. 16 representa la unidad física y 17 representa la primera partición en esa unidad. Los siguientes 16 números, del 32 al 47, se utilizan para los números menores de  sdc, y así sucesivamente.

Relacionado:  Cómo exportar e importar sus sistemas Linux en Windows 10

Otros números principales comunes son 3 (para un  disco duro IDE ) y 11 para CD-ROM.

En realidad, el /dev/sr0estilo de las unidades de CD-ROM SDCSI está en desuso. El formato aprobado es /dev/scd0. A pesar de eso, el  /dev/sr0 formato todavía estaba en uso en todas las máquinas utilizadas para investigar este artículo.

La documentación del kernel contiene una lista larga de todos los valores que pueden tomar los números mayores y menores. Es una lista sorprendentemente larga.

Para ordenar la salida lsblk, podemos usar greppara seleccionar solo los elementos  que nos interesan . Sabemos que no hemos agregado un dispositivo de bucle, así que seleccionemos todos los discos duros SCSI. sabemos que tendrán «sd» en sus nombres.

lsblk | grep sd

lsblk |  grep sd en una ventana de terminal

Este comando hará grepque se impriman solo las líneas que tienen «sd» en el. En nuestra máquina de prueba, vemos:

Salida de lsblk |  grep sd en una ventana de terminal

Entonces, tenemos tres unidades SCSI. La primera de ellas, /dev/sdase monta en la raíz del sistema de archivos, /. Los otros dos no están montados en absoluto, lo que es de esperar en unidades nuevas. Podemos ver que la unidad /dev/sdbtiene un tamaño de 32 GB, lo que significa que es nuestra unidad mecánica tradicional. La unidad /dev/sdc tiene un tamaño de 16 GB y esta es nuestra unidad SSD.

En realidad, como se trata de una computadora virtual, también son discos virtuales. Entonces, el SSD se muestra como una unidad mecánica SCSI. En mi escritorio habitual, mi SSD NVMe  aparece como /dev/nvme0n1, y la primera partición es /dev/nvme0n1p1. Su número principal es 259. Esas diferencias no cambian lo que tenemos que hacer en el  fstab archivo, pero tenga en cuenta que si tiene un SSD, no se mostrará como un disco físico.

Además, sus unidades probablemente no tendrán una partición si son nuevas. Puede utilizar fdiskpara crear una partición si es necesario.

Identificación de unidades giratorias y no giratorias

Si usamos la -oopción (salida) con lsblky agregamos la ROTA columna (giratoria) a la pantalla, lsblkusaremos un 1 para indicar un dispositivo de almacenamiento giratorio (unidad mecánica) y un 0 para indicar un dispositivo de almacenamiento no giratorio (unidad de estado sólido ).

lsblk -o + ROTA | grep sd

lsblk -o + ROTA |  grep sd en una ventana de terminal

Obtenemos una columna adicional a la derecha de la pantalla, que es la ROTAcolumna (giratoria). Como puede ver, el «SSD» tiene un 0 para el dispositivo y la partición. Eso tiene sentido porque un SSD es un dispositivo de almacenamiento no giratorio.

salida de lsblk -o + ROTA |  grep sd en una ventana de terminal

Montaje de los sistemas de archivos

Antes de empezar a pensar en el fstabarchivo, verifiquemos que podemos montar las unidades a mano. De esta manera, si algo no funciona cuando usamos el fstabarchivo, sabremos que el problema debe ser nuestra sintaxis y no un problema con la unidad en sí.

Crearemos algunos puntos de montaje temporales en el /mntdirectorio. Deberá usar sudoy se le pedirá su contraseña .

sudo mkdir / mnt / scsi

sudo mkdir / mnt / scsi en una ventana de terminal

sudo mkdir / mnt / ssd

sudo mkdir / mnt / ssd en una ventana de terminal

Ahora montemos la unidad SCSI en el nuevo punto de montaje. Usaremos el mountcomando en su forma más simple. Le diremos el nombre de la partición que queremos montar y el punto de montaje en el que queremos montarlo. mountmontará el sistema de archivos en esa partición en el punto de montaje que especifiquemos.

Estamos especificando la partición que contiene el sistema de archivos, no la unidad, así que asegúrese de incluir el dígito de la partición, en este caso, «1».

sudo mount / dev / sdb1 / mnt / scsi

No bebo nada en una ventana de terminal

Si todo va bien, no habrá respuesta de mount. Regresará silenciosamente al símbolo del sistema.

Montar el SSD es igual de sencillo. Decimos mountqué partición en qué dispositivo montar y el punto de montaje en el que montarlo.

sudo mount / dev / sdc1 / mnt / ssd

sudo mount / dev / sdc1 / mnt / ssd en una ventana de terminal

Una vez más, el silencio es dorado.

Comprobación de los soportes

Para verificar que se han realizado los montajes, usaremos lsblknuevamente. grepCanalizaremos su salida y seleccionaremos las entradas «sda1», «sdb2» y «sdc1».

lsblk -o + ROTA | grep sd [ac] 1

lsblk -o + ROTA |  grep sd [ac] 1 en una ventana de terminal

mountnos muestra las tres particiones montadas. Esos son los dos que acabamos de montar y la partición original montada en /.

salida del montaje en una ventana de terminal

La partición /dev/sdb1está montada /mnt/scsiy se encuentra en un dispositivo de almacenamiento giratorio. La partición  /dev/sdc1está montada /mnt/ssdy se encuentra en un dispositivo de almacenamiento no giratorio. Todo parece estar bien.

Ahora necesitamos configurar el fstabarchivo para que estos dispositivos se monten cada vez que se inicia la computadora.

El archivo fstab

El fstabarchivo contiene una entrada para cada sistema de archivos que se monta cuando se reinicia su computadora. Cada entrada se compone de seis campos. Los campos son:

  • Sistema de archivos : no, como sugiere su nombre, el tipo de sistema de archivos en la partición (para eso es el  campo de tipo ). Este es el identificador de la partición que se debe montar.
  • Punto de montaje : la ubicación en el sistema de archivos en la que desea montar la partición.
  • Tipo : el tipo de sistema de archivos de la partición.
  • Opciones : cada sistema de archivos puede tener opciones especificadas para activar o desactivar la funcionalidad.
  • Volcado : una referencia a un medio casi obsoleto de realizar copias de seguridad de sistemas de archivos, donde todo el sistema de archivos se «volcó» en cinta.
  • Pase : esta es la bandera de «pase». Le dice a Linux qué particiones se deben verificar en busca de errores fscky en qué orden . La partición principal de su sistema operativo y de arranque debe ser 1, y el resto se puede establecer en 2. Si la marca se establece en cero, significa «no verificar en absoluto». Si su sistema de archivos no es un sistema de archivos de diario (como ext2 o FAT16 / 32, por ejemplo), es mejor desactivarlo configurándolo en 0.
Relacionado:  Cómo usar el comando which en Linux

Estos campos deben especificarse en este orden y deben tener un espacio o una pestaña entre ellos. Encontrar los valores para estos campos puede ser abrumador, en particular los valores para el campo «opciones». Las “opciones” de campo opciones deben estar en una lista separada por comas sin espacios entre ellos.

La manpágina de cada sistema de archivos enumerará las opciones que se pueden utilizar. ext4tiene alrededor de 40 opciones . Estas son algunas de las opciones más comunes:

  • Auto:  el sistema de archivos se montará en el momento del arranque, automáticamente.
  • Noauto : el sistema de archivos solo se monta cuando ingresa el mount -acomando.
  • Exec : la ejecución de binarios está permitida en este sistema de archivos.
  • Noexec : la ejecución de binarios no está permitida en este sistema de archivos.
  • Ro : el sistema de archivos debe montarse como de solo lectura.
  • Rw : el sistema de archivos debe montarse como lectura-escritura.
  • Sincronización : las escrituras de archivos deben realizarse inmediatamente y no almacenarse en búfer. Es mejor reservarlos para disquetes, si alguien todavía los usa. Incurre en una penalización por desempeño.
  • Asíncrono : las escrituras de archivos deben almacenarse en búfer y optimizarse.
  • Usuario : cualquier usuario puede montar el sistema de archivos.
  • Nouser : el usuario root es el único usuario que puede montar este sistema de archivos.
  • Valores predeterminados : esta es una forma abreviada de especificar un conjunto de configuraciones comunes: rw, suid, dev, exec, auto, nouser y async).
  • Suid : permite el funcionamiento de los bits suidy sgid. El suidbit se usa para permitir que un archivo sea ejecutado como root, por un usuario normal, sin otorgarle al usuario privilegios completos de root . Cuando el sgidbit se establece en un directorio, los archivos y directorios creados dentro de ese directorio tienen su propiedad de grupo establecida en la del directorio , no en el grupo del usuario que los creó.
  • Nosuid : No permita el uso de bits suidy sgid.
  • Noatime: – No actualice las horas de acceso a archivos en el sistema de archivos. Esto puede ayudar al rendimiento en hardware antiguo.
  • Nodiratime : no actualice las horas de acceso al directorio en el sistema de archivos.
  • Relatime : Actualiza los tiempos de acceso al archivo en relación con el tiempo de modificación del archivo.

La opción de «valores predeterminados» es una buena táctica de apertura. Puede agregar o eliminar más opciones si es necesario realizar algunos ajustes. Si solo hubiera una manera ordenada de obtener la configuración que necesita, en el orden en que debe ingresarlos en el fstabarchivo.

Ingrese el mtabarchivo.

El archivo mtab

El mtabarchivo es la lista de sistemas de archivos montados actualmente . Esto contrasta con el fstabarchivo que enumera los sistemas de archivos que deben montarse en el momento del arranque. El mtabarchivo incluye sistemas de archivos montados manualmente. Ya hemos montado nuestras nuevas unidades, por lo que deberían aparecer en el mtabarchivo.

Podemos ver el contenido del mtabarchivo usando cat. Restringiremos la salida canalizándola grepy mirando /dev/sdb1y /dev/sdc1solo.

cat / etc / mtab | grep sd [bc] 1

cat / etc / mtab |  grep sd [bc] 1 en una ventana de terminal

La salida muestra las mtabentradas para estas dos particiones.

Fuera de cat / etc / mtab en una ventana de terminal

Podríamos levantar esos valores y colocarlos directamente en el fstabarchivo, asegurándonos de que haya un espacio o una pestaña entre cada campo. Y eso sería todo. Las unidades se montarían cuando reiniciamos.

Hay dos salvedades para eso. Uno es el punto de montaje. Creamos puntos de montaje temporales solo para demostrar que podíamos montar las nuevas particiones en las nuevas unidades. Tendríamos que ingresar a los puntos de montaje reales en lugar de a los temporales, si fueran diferentes.

La segunda advertencia es que si usamos la configuración del mtabarchivo, usaremos el archivo de dispositivo de bloque como identificador para cada partición. Eso funcionaría, pero los valores /dev/sday /dev/sdbdemás corren el riesgo de cambiar si se agrega nuevo hardware de almacenamiento masivo a la computadora. Eso significaría que la configuración del  fstab archivo sería incorrecta.

Cada partición tiene un Identificador único universal (UUID), que podemos usar para identificar la partición. Esto nunca cambiará. Si usamos el UUID para identificar las particiones en el fstabarchivo, la configuración siempre será precisa y verdadera.

Relacionado:  Cómo usar el comando timeout en Linux

Si está utilizando sus nuevas particiones como parte de un sistema de matriz redundante de discos económicos (RAID), consulte la documentación de ese sistema. Podría especificar que debe utilizar el identificador de dispositivo de bloque en lugar del UUID.

Encontrar el UUID de una partición

Para encontrar el UUID de una partición, podemos usar blkid para imprimir los atributos de los dispositivos del bloque . Limitaremos la salida a nuestras dos nuevas particiones en nuestras nuevas unidades:

blkid | grep sd [bc] 1

blkid |  grep sd [bc] 1 en una ventana de terminal

La salida incluye el UUID para cada partición.

usando blkid para obtener el UUID de una partición

El PARTUUID es una forma de UUID que se puede usar con el   método de partición de tablas de particiones GUID (GPT) (si no está usando el método de partición de Master Boot Record (MBR)).

Editar el archivo fstab

Abra el fstabarchivo en un editor. Estamos usandogedit un editor fácil de usar que se encuentra en la mayoría de las distribuciones de Linux.

sudo gedit / etc / fstab

sudo gedit / etc / fstab en una ventana de terminal

El editor aparece con su fstabarchivo cargado en él.

el archivo fstab antes de editar

Este fstabarchivo ya tiene dos entradas. Son la partición del disco duro existente /dev/sda1y el sistema de archivos de intercambio. Tenga cuidado de no alterar estas entradas.

Necesitamos agregar dos nuevas entradas al fstabarchivo. Uno para la partición de la unidad SCSI y otro para la partición de la unidad SSD. Primero agregaremos la partición SCSI. Tenga en cuenta que las líneas que comienzan con un hash #son comentarios.

  • En el campo «sistema de archivos», usaremos el UUID que se blkidrecuperó anteriormente. Inicie la línea con “UUID =” y luego pegue el UUID. Presione espacio o tabulador.
  • Para el campo “punto de montaje”, vamos a utilizar el punto de montaje que hemos creado antes,  /mnt/scsi. Usaría el punto de montaje apropiado de su sistema. Presione espacio o tabulador.
  • Para «tipo» vamos a ingresar ext4, que es el tipo de sistema de archivos en nuestra partición. Presione espacio o tabulador.
  • En el campo «opciones» usaremos las opciones que obtuvimos usando cat /etc/mtab. Estos son «rw, relatime». Presione espacio o tabulador.
  • El campo «volcado» se establece en cero. Presione espacio o tabulador.
  • El campo «aprobado» se establece en cero.

Ahora agregaremos la fstabpartición de entrada en la unidad SSD en una línea separada.

  • En el campo «sistema de archivos», ingresaremos el UUID que se blkidrecuperó para la partición en la unidad SSD. Inicie la línea con “UUID =” y luego pegue el UUID. Presione espacio o tabulador.
  • Para el campo “punto de montaje”, vamos a utilizar el punto de montaje que hemos creado antes,  /mnt/ssd. Presione espacio o tabulador.
  • Para «tipo» vamos a ingresar ext4, que es el tipo de sistema de archivos en nuestra partición. Presione espacio o tabulador.
  • En el campo «opciones», solo para hacer que las dos nuevas entradas sean diferentes en nuestro ejemplo, usaremos la opción «predeterminados». Presione espacio o tabulador.
  • El campo «volcado» se establece en cero. Presione espacio o tabulador.
  • El campo «aprobado» se establece en cero.

fstab después de editar y agregar las unidades SCSI y SSD

Guarde el archivo y cierre el editor.

Prueba de fstab sin reiniciar

Podemos desmontar nuestras nuevas unidades y luego forzar una actualización en el fstabarchivo. El montaje exitoso de nuestras nuevas particiones verificará que la configuración y los parámetros que ingresamos son sintácticamente correctos. Eso significa que nuestro  fstabarchivo debe procesarse correctamente durante una secuencia de reinicio o encendido.

Para desmontar la unidad SCSI, use este comando. Tenga en cuenta que solo hay una «n» en «umount»:

sudo umount / dev / sdb1

sudo umount / dev / sdb1 en una ventana de terminal

Para desmontar la unidad SSD, use este comando:

sudo umount / dev / sdc1

sudo umount / dev / sdc1 en una ventana de terminal

Ahora usaremos lsblkpara verificar si estos dispositivos de bloque están montados.

lsblk | grep sd

Y vemos que los dispositivos de bloque están presentes en la computadora, pero no montados en ningún lugar.

Salida de lsblk que muestra dispositivos de bloque desmontados en una ventana de terminal

Podemos usar el mountcomando con la -aopción (todos) para volver a montar todos los sistemas de archivos en  fstab.

sudo mount -a

sudo mount -a en una ventana de terminal

Y podemos comprobar una vez más con lsblkpara ver si nuestras nuevas particiones ahora están montadas:

lsblk | grep sd

Salida de lsblk |  grep sd que muestra los dispositivos de bloque montados en una ventana de terminal

Todo está montado donde debería estar. Todo lo que tenemos que hacer ahora es cambiar la propiedad de los puntos de montaje, de lo contrario rootserá el único que podrá acceder a los nuevos dispositivos de almacenamiento.

Podemos hacer esto fácilmente usando chown. Este es el comando para el punto de montaje SCSI:

sudo chown dave: usuarios / mnt / scsi

sudo chown dave: users / mnt / scsi en una ventana de terminal

Y este es el comando para el punto de montaje SSD:

sudo chown dave: usuarios / mnt / ssd

sudo chown dave: users / mnt / ssd en una ventana de terminal

Ahora podemos reiniciar nuestra computadora con confianza, sabiendo que las particiones que hemos agregado se montarán para nosotros y que tenemos acceso a ellas.

No es tan aterrador después de todo

Todo el trabajo duro está en la fase de reconocimiento, y tampoco fue difícil. Editar el fstabarchivo una vez que haya reunido la información que necesita es muy sencillo. La preparación lo es todo.