Tabla de contenidos
¿Está agregando un nuevo disco duro o unidad de estado sólido a su computadora Linux? Deberá editar su fstab
archivo. 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 fstab
archivo 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 fstab
archivo.
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 fstab
archivo, 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 lsblk
comando para listar los dispositivos de bloque conectados a su computadora Linux.
lsblk
La salida de lsblk
está 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 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
sr0
tiene 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
loop
dispositivos 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 loop
dispositivos 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 squashfs
sistema de archivos. Se squashfs
crea 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
, sdb
y 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, sda
van 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, sdb
los 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/sr0
estilo 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 grep
para 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
Este comando hará grep
que 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/sda
se 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/sdb
tiene 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 fdisk
para crear una partición si es necesario.
Identificación de unidades giratorias y no giratorias
Si usamos la -o
opción (salida) con lsblk
y agregamos la ROTA
columna (giratoria) a la pantalla, lsblk
usaremos 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 ROTA
columna (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 fstab
archivo, verifiquemos que podemos montar las unidades a mano. De esta manera, si algo no funciona cuando usamos el fstab
archivo, 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 /mnt
directorio. Deberá usar sudo
y 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 mount
comando 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. mount
montará 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 mount
. Regresará silenciosamente al símbolo del sistema.
Montar el SSD es igual de sencillo. Decimos mount
qué 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 lsblk
nuevamente. grep
Canalizaremos su salida y seleccionaremos las entradas «sda1», «sdb2» y «sdc1».
lsblk -o + ROTA | grep sd [ac] 1
mount
nos muestra las tres particiones montadas. Esos son los dos que acabamos de montar y la partición original montada en /.
La partición /dev/sdb1
está montada /mnt/scsi
y se encuentra en un dispositivo de almacenamiento giratorio. La partición /dev/sdc1
está montada /mnt/ssd
y se encuentra en un dispositivo de almacenamiento no giratorio. Todo parece estar bien.
Ahora necesitamos configurar el fstab
archivo para que estos dispositivos se monten cada vez que se inicia la computadora.
El archivo fstab
El fstab
archivo 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
fsck
y 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.
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 man
página de cada sistema de archivos enumerará las opciones que se pueden utilizar. ext4
tiene 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 -a
comando. - 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
suid
ysgid
. Elsuid
bit se usa para permitir que un archivo sea ejecutado como root, por un usuario normal, sin otorgarle al usuario privilegios completos de root . Cuando elsgid
bit 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
suid
ysgid
. - 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 fstab
archivo.
Ingrese el mtab
archivo.
El archivo mtab
El mtab
archivo es la lista de sistemas de archivos montados actualmente . Esto contrasta con el fstab
archivo que enumera los sistemas de archivos que deben montarse en el momento del arranque. El mtab
archivo incluye sistemas de archivos montados manualmente. Ya hemos montado nuestras nuevas unidades, por lo que deberían aparecer en el mtab
archivo.
Podemos ver el contenido del mtab
archivo usando cat
. Restringiremos la salida canalizándola grep
y mirando /dev/sdb1
y /dev/sdc1
solo.
cat / etc / mtab | grep sd [bc] 1
La salida muestra las mtab
entradas para estas dos particiones.
Podríamos levantar esos valores y colocarlos directamente en el fstab
archivo, 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 mtab
archivo, usaremos el archivo de dispositivo de bloque como identificador para cada partición. Eso funcionaría, pero los valores /dev/sda
y /dev/sdb
demá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 fstab
archivo, 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 bloque . Limitaremos 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.
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 fstab
archivo 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 fstab
archivo cargado en él.
Este fstab
archivo ya tiene dos entradas. Son la partición del disco duro existente /dev/sda1
y el sistema de archivos de intercambio. Tenga cuidado de no alterar estas entradas.
Necesitamos agregar dos nuevas entradas al fstab
archivo. 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
blkid
recuperó 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 fstab
partición de entrada en la unidad SSD en una línea separada.
- En el campo «sistema de archivos», ingresaremos el UUID que se
blkid
recuperó 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.
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 fstab
archivo. 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 fstab
archivo 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 lsblk
para 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 mount
comando con la -a
opción (todos) para volver a montar todos los sistemas de archivos en fstab
.
sudo mount -a
Y podemos comprobar una vez más con lsblk
para 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 root
será 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
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 fstab
archivo una vez que haya reunido la información que necesita es muy sencillo. La preparación lo es todo.