Uso del Sistema de archivos en Linux
Table of Contents
ToggleIntroducción
Entendamos esto con el siguiente ejemplo:
Un conjunto de páginas apiladas no es un libro. Los índices y los números de páginas lo convierten en un libro. Con un sistema de archivos pasa algo parecido. Un sistema de archivos sirve para poder localizar la información de manera coherente. A diferencia de un libro, necesitamos esa coherencia, no solamente para “leer” sino para “escribir”, es decir para modificar la información almacenada. Los sistemas de archivos ext2, ext3, ext4 son los más usados y creados por Linux.
Con respecto al uso del sistema de archivos en linux, en este apartado vamos a estar detallando los tipos más conocidos.
Tipos de sistema de archivos en Linux
Sistema de archivos Ext2
Ext2 es sinónimo de Second Extended File System. Fue introducido en 1993 y desarrollado por Rémy Card.
Este fue desarrollado para superar la limitación del sistema de archivos original ext. Ext2 no tiene característica de Journaling, es decir, no lleva registro de los movimientos de archivos. Se recomienda en las unidades flash, unidades USB, ext2, ya que no tiene que utilizar journaling.
El tamaño máximo de archivo individual puede ser de 2 TB. En general el tamaño del sistema de archivos ext2 puede ser de hasta a 32 TB. Hoy en día no es muy utilizado este tipo de sistema de archivos.
Sistema de archivos Ext3
Ext3 es sinónimo de tercer sistema de archivos extendido. Fue introducido en 2001. Desarrollado por Stephen Tweedie. Se encuentra disponible a partir del kernel Linux 2.4.15.
La principal ventaja de ext3 es que permite a journaling. Asi pues, tiene un área dedicada en el sistema de archivos, donde se registran todos los cambios. Cuando el sistema se congela, la posibilidad de corrupción del sistema de archivos es menor debido al journaling.
El tamaño máximo de archivo individual puede ser de hasta 2 TB. En general el tamaño del sistema de archivos ext3 puede ser de hasta 32 TB
Hay tres tipos de journaling disponibles en el sistema de archivos ext3:
Journal – Los metadatos y el contenido se guardan en el journaling.
Ordered – Los metadatos sólo se salvan en el journaling. Los metadatos son volcados al journaling sólo después de escribir el contenido en el disco. Este es el valor predeterminado.
Writeback – Los metadatos sólo se salvan en el journaling. Los metadatos pueden estar en el journaling, ya sea antes o después de que el contenido se grabe en el disco.
Cabe mencionar que podemos convertir un sistema de archivos ext2 al sistema de archivos ext3 directamente (sin copia de seguridad y/o restauración).
Sistema de archivos Ext4
Ext4 es sinónimo de cuarto sistema de archivos extendido. Fue introducido en 2008, a partir del kernel Linux 2.6.19 ext4. El tamaño máximo de archivo individual puede ser de hasta 16 TB. El tamaño promedio Global del sistema de archivos ext4 es 1 EB (Exabyte). 1EB = 1024 PB (petabytes). 1 PB = 1024 TB (terabyte).
Un Directorio puede contener un máximo de 64.000 subdirectorios (en comparación con 32.000 en ext3). También puede montar un fs ext3 existente como en ext4 (sin tener que actualizar).
Otras nuevas características son introducidas en ext4:
- multiblock allocation
- delayed allocation
- journal checksum
- fast fsck
entro otras..
Estas nuevas características han mejorado el rendimiento y la fiabilidad del sistema de archivos cuando se compara con ext3.
Convertir ext2 a ext3
Para convertir un sistema de archivos de ext2 a ext3 se utiliza el comando tune2fs. Primero debemos desmontar la unidad. (no es obligatorio, pero si recomendable para evitar futuros fallos).
# umount /dev/sda2
Ejecutar la conversión
# tune2fs -j /dev/sda2
Montar la partición nuevamente
# mount /dev/sda2 /home
Convertir ext3 a ext4
Para convertir un sistema de archivos de ext3 a ext4 utilizamos también el comando tune2fs
Desmontar la partición
# umount /dev/sda2
Ejecutar la conversión
# tune2fs -O extents,uninit_bg,dir_index /dev/sda2
Verificar el sistema de archivos
# e2fsck -pf /dev/sda2
Montar la partición nuevamente
# mount /dev/sda2 /home
Sistema de archivos XFS
El sistema de archivos xfs fue creado por Silicon Graphic, Inc. y se agregó al kernel Linux en la versión 2.4.
Estas son algunas de sus características:
- Alta escalabilidad: Es capaz de crear particiones de unos 109 GB
- Sistema transaccional de alto rendimiento
- Capacidad para establecer límite de ocupación por directorios
- Uso eficiente del espacio
- Rápida recuperación
Supongamos que queremos formatear la partición /dev/sdb3 como xfs, haríamos lo siguiente:
# make.xfs /dev/sdb3
Comando de xfs:
El comando xfs_info muestra la información del sistema de archivos. Por ejemplo
# xfs_info /dev/sdb3
meta-data=/dev/sdb3 isize=256 agcount=4, agsize=54284544 blks
= sectsz=512 attr=2
data = bsize=1024 blocks=217138176, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=1024 ascii-ci=0
log =internal bsize=1024 blocks=106023, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=1024 blocks=0, rtextents=0
Sistema de archivos Vfat
Este sistema de archivos es MS DOS (es decir, no es nativo de Linux) con soporte de nombres largos de archivos.
El comando mkfs.vfat crea una partición vfat :
# mkfs.vfat /dev/sda1
Sistema de archivos exFAT
Creado por Microsoft, en Linux existe una implementación libre, se trata de un módulo de sistema de archivos en espacio de usuario. En el caso de Debian, deben estar instalados los paquetes exfat-fuse/tools (para montar particiones y herramientas de manipulación en dicho módulo). En CentOS se puede usar el repositorio adicional LiFTeR 1 .
Por ejemplo, si queremos formatear:
# mkfs.exfat /dev/sda1
Comando mkfs
Una vez creada la partición, el sistema de archivos debe ser añadido para que Linux pueda hacer uso de este espacio. El programa mkfs se usa para crear sistemas de archivos en particiones vacías.
Las opciones usadas por mkfs están seguidas por un argumento especificando la partición que debe ser formateada.
La sintaxis es la siguiente:
# mkfs [opciones] unidadAFormatear → /dev/sd[abcd][1234]
Veamos algunas opciones:
-t fstype Especifica el tipo de sistema de ficheros a crear. Por defecto se usa ext2
fs –options Opciones específicas de sistema de ficheros para ser pasados al sistema real de ficheros que vamos a crear.
-c Comprueba el dispositivo en busca de bloques defectuosos antes de crear el sistema de ficheros.
-l fichero Lee los bloques defectuosos del fichero.
-v Produce una salida con más información, incluyendo todas las órdenes específicas del sistema de ficheros concreto que se ejecutan. Ésto es realmente sólo útil para comprobaciones.
Algunas otras utilidades del comando mkfs son las siguientes:
- mkfs.ext2 Crea un sistema de ficheros ext2.
- mke2f Crea un sistema de ficheros ext2.
- mkfs.ext3 Crea un sistema de ficheros ext3.
- mke2fs –j Crea un sistema de ficheros ext3.
- mkfs.ext4 Crea un sistema de ficheros ext4.
- mke2fs -t ext4 Crea un sistema de ficheros ext4.
A tener en cuenta:
Estos comandos NO piden confirmación!
Crear sistema de archivos en ext2
#mke2fs /dev/sda1
Crear sistema de archivos en ext3
# mkfs.ext3 /dev/sda1
# mke2fs –j /dev/sda1
Crear sistema de archivos en ext3
#mkfs.ext4 /dev/sda1
#mke2fs -t ext4 /dev/sda1
Sistema de archivos btrfs
Algunas características de este pueden ser:
- El proyecto btrfs es relativamente nuevo y activo, sin embargo algunas distribuciones como CentOS consideran que aún no es suficientemente seguro para usarlo en producción.
- La distribución openSUSE tiene una posición distinta: lo usa como sistema de archivos predeterminado.
- La distribución Fedora, a partir de su versión 33, lo usa como predeterminado para su edición Workstation.
- Puede guardar y restaurar el estado del sistema de archivos (snapshots) y usar subvolumenes (raíces alternativas).
Para crear una partición con btrfs se usa el archivo correspondiente al disco entero:
# mkfs.btrfs /dev/sdb
Podemos pensar en btrfs como un determinado espacio disponible que incluso puede abarcar más de un disco.
Por ejemplo:
# mkfs.btrfs -L “Mi Espacio” /dev/sdb /dev/sdc
Luego podemos montar montar:
# mount /dev/sdb /mnt
Para ver información del sistema de archivos:
# btrfs filesystem show
Label: ‘Mi Pool’ uuid: 8de751203-91da-45dfe-67f-c1q57622d19c
Total devices 2 FS bytes used 256.00KiB
devid 1 size 1.00GiB used 212.75MiB path /dev/sda
devid 2 size 1.00GiB used 212.75MiB path /dev/sdb
De manera predeterminada los datos se distribuyen entre los dos discos, mientras que los metadatos se espejan en cada uno de ellos.
Tener en cuenta:
En el sistema de archivos btrfs se puede formatear sin particionar, sin embargo en la gran mayoría de los casos conviene crear las particiones necesarias para poder aprovechar todas las funcionalidades del sistema de archivos.
Creando Swap
Parte de las buenas prácticas en el uso del sistema de archivos en linux, es el de verificar y saber el uso de la partición swap en el mismo.
Opciones:
Para mostrar el uso de las particiones swap:
# swapon –s
Crea el swap en la partición /dev/sda5
# mkswap /dev/sda5
Habilitar swap
# swapon /dev/sda5
Deshabilitar el swap
# swapoff /dev/sda5