Los platos dentro de varios discos duros.

¿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

La salida de lsblkestá en columnas.

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 SCSILa 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 sdasdbsdc, 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.

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/scd0A 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 interesanSabemos 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

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

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/nvme0n1p1Su 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

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.

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 / ssd

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

Si todo va bien, no habrá respuesta de mountRegresará 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

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

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

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 fscken qué ordenLa 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.

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 opcionesEstas 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 suidsgidEl suidbit se usa para permitir que un archivo sea ejecutado como root, por un usuario normal, sin otorgarle al usuario privilegios completos de rootCuando 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 suidsgid.
  • 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 actualmenteEsto 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 catRestringiremos la salida canalizándola grepy mirando /dev/sdb1/dev/sdc1solo.

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

La salida muestra las mtabentradas para estas dos particiones.

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/sda/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.

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 bloqueLimitaremos la salida a nuestras dos nuevas particiones en nuestras nuevas unidades:

blkid | grep sd [bc] 1

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

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/scsiUsarí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/mtabEstos 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/ssdPresione 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

Para desmontar la unidad SSD, use este comando:

sudo umount / dev / sdc1

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.

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

sudo mount -a

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

lsblk | grep sd

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 chownEste es el comando para el punto de montaje SCSI:

sudo chown dave: usuarios / mnt / scsi

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

sudo chown dave: usuarios / mnt / ssd

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.