File systems (Español)
De Wikipedia:
- En informática, un sistema de archivos controla cómo se almacenan y recuperan los datos. Sin un sistema de archivos, la información colocada en un medio de almacenamiento sería una gran cantidad de datos sin una manera de decir dónde se detiene una información y comienza la siguiente. Al separar los datos en partes y darle a cada una un nombre, la información se aísla e identifica fácilmente. Tomando su nombre de la forma en que se nombran los sistemas de información en papel, cada grupo de datos se llama un «archivo». La estructura y las reglas lógicas utilizadas para administrar los grupos de información y sus nombres se denominan «sistema de archivos».
Las particiones individuales de la unidad se pueden configurar utilizando uno de los muchos y diferentes sistemas de archivos disponibles. Cada uno tiene sus propias ventajas, desventajas e idiosincrasias únicas. A continuación se ofrece una breve descripción de los sistemas de archivos compatibles; los enlaces son a páginas de Wikipedia que proporcionan mucha más información.
Tipos de sistemas de archivos
Véase filesystems(5) para una visión general y Wikipedia:es:Anexo:Comparación de sistemas de archivos para una comparación detallada de características. Los sistemas de archivos soportados por el kernel están listados en /proc/filesystems
.
Sistema de archivos | Orden para crearlo | Parche del kernel | Utilidades de usuario | Notas | |
---|---|---|---|---|---|
APFS | mkapfs(8) | linux-apfs-dkms-gitAUR[enlace roto: package not found] | apfsprogs-gitAUR | sistema de archivos macOS (10.13 y posterior). Solo lectura, experimental. | |
Bcachefs | bcachefs(8) | linux-bcachefs-gitAUR | bcachefs-tools-gitAUR | ||
Reiser4 | mkfs.reiser4(8) | reiser4progsAUR | |||
ZFS | zfs-linuxAUR | No | N/D (adaptación OpenZFS) |
Journaling
Todos los sistemas de archivos anteriores con la excepción de exFAT, ext2, FAT16/32, Reiser4 (opcional), Btrfs y ZFS, utilizan journaling. Journaling proporciona tolerancia a fallos al registrar los cambios antes de que se confirmen en el sistema de archivos. En el caso de un fallo del sistema o de alimentación, estos sistemas de archivos son más rápidos para volver a estar en línea y es menos probable que se corrompan. El registro se realiza en un área dedicada del sistema de archivos.
No todas las técnicas Journaling son iguales. Ext3 y ext4 ofrecen data-mode journaling, que registra datos y metadatos, así como posibilidad de registrar solo los cambios de metadatos. Data-mode journaling viene con una penalización de velocidad y no está activada de forma predeterminada. Del mismo modo, Reiser4 ofrece el llamado "modelos de transacción" que no solo cambian las características que proporciona, sino también en su modo de registro en diario. Utiliza diferentes técnicas Journaling: un modelo especial llamado registros errantes que elimina la necesidad de escribir en el disco dos veces, escritura en cualquier lugar: un enfoque puro de copia en escritura (en su mayoría equivalente al valor predeterminado de btrfs pero con un diseño en "árbol" fundamentalmente diferente) y un enfoque combinado llamado híbrido que alterna heurísticamente entre los dos anteriores.
Los otros sistemas de archivos proporcionan ordered-mode journaling, que solo registra metadatos. Si bien todo journaling devolverá un sistema de archivos a un estado válido después de una caída, data-mode journaling ofrece la mayor protección contra la corrupción y la pérdida de datos. Sin embargo, existe un compromiso en el rendimiento del sistema, ya que data-mode journaling realiza dos operaciones de escritura: primero en el journal y luego en el disco (que Reiser4 evita con su función de "registros errantes"). Al elegir el tipo de sistema de archivos, se debe considerar el equilibrio entre la velocidad del sistema y la seguridad de los datos. Reiser4 es el único sistema de archivos que, por diseño, funciona con una atomicidad completa y también proporciona sumas de verificación tanto para meta datos como para datos en línea (las operaciones ocurren por completo, o no lo hacen y no corrompen ni destruyen datos debido a operaciones que ocurren a medias) y el diseño es mucho menos propenso a la pérdida de datos con respecto a otros sistemas de archivos como Btrfs.
Los sistemas de archivos basados en copy-on-write (también conocido como escritura en cualquier lugar), como Reiser4, Btrfs y ZFS, no tienen necesidad de usar el journal tradicional para proteger los metadatos, porque nunca se actualizan en el lugar. Aunque Btrfs todavía tiene un árbol de registro similar a journal, solo se utiliza para acelerar fdatasync/fsync.
Sistemas de archivos basados en FUSE
Véase FUSE.
Sistemas de archivos apilables
- eCryptfs — El sistema de archivos de cifrado empresarial es un paquete de software de cifrado de disco para Linux. Se implementa como una capa de cifrado a nivel de sistema de archivos compatible con POSIX, con el objetivo de ofrecer una funcionalidad similar a la de GnuPG a nivel de sistema operativo.
- mergerfs — Un sistema de archivos de unión basado en FUSE.
- mhddfs — Sistema de archivos FUSE Multi-HDD, un sistema de archivos de unión basado en FUSE.
- http://mhddfs.uvw.ru || mhddfsAUR
- overlayfs — OverlayFS es un servicio de sistema de archivos para Linux que implementa un montaje de unión para otros sistemas de archivos.
- Unionfs — Unionfs es un servicio de sistema de archivos para Linux, FreeBSD y NetBSD que implementa un montaje de unión para otros sistemas de archivos.
- https://unionfs.filesystems.org/ || not packaged? search in AUR
- unionfs-fuse — Una implementación de Unionfs en el espacio de usuario.
Sistemas de archivos de solo lectura
- EROFS — El sistema de archivos de solo lectura mejorado es un sistema de archivos de solo lectura ligero, su objetivo es mejorar el rendimiento y comprimir la capacidad de almacenamiento.
- SquashFS — SquashFS es un sistema de archivos comprimido de solo lectura. SquashFS comprime archivos, inodos y directorios, y admite tamaños de bloque de hasta 1 MB para una mayor compresión.
Sistemas de archivos agrupados (cluster)
- Ceph — Unificado, sistema de almacenamiento distribuido diseñado para un excelente rendimiento, fiabilidad y escalabilidad.
- https://ceph.com/ || cephAUR
- Glusterfs — Sistema de archivos agrupado capaz de escalar a varios peta-bytes.
- IPFS — Un protocolo de hipermedia de igual a igual (peer-to-peer) para que la web sea más rápida, segura y abierta. IPFS trata de reemplazar a HTTP y construir una mejor web para todos nosotros. Utiliza bloques para almacenar partes de un archivo, cada nodo de red almacena solo el contenido que le interesa, proporciona deduplicación, distribución, sistema escalable limitado solo por los usuarios. (actualmente en alfa)
- https://ipfs.io/ || go-ipfs[enlace roto: replaced by kubo]
- MooseFS — MooseFS es un sistema de archivos distribuido en red de escalamiento horizontal tolerante a fallos, de alta disponibilidad y de alto rendimiento.
- OpenAFS — Implementación de código abierto del sistema de archivos distribuido AFS.
- OrangeFS — OrangeFS es un sistema de archivos de red de escalado horizontal diseñado para acceder de forma transparente al almacenamiento en disco multiservidor en paralelo. Ha optimizado el soporte de MPI-IO para aplicaciones paralelas y distribuidas. Simplifica el uso del almacenamiento paralelo no solo para clientes Linux, sino también para Windows, Hadoop y WebDAV. Compatible con POSIX. Parte del kernel de Linux desde la versión 4.6.
- https://www.orangefs.org/ || not packaged? search in AUR
- Sheepdog — El sistema de almacenamiento de objetos distribuidos para servicios de volumen y contenedor. Gestiona los discos y nodos de forma inteligente.
- Tahoe-LAFS — Tahoe Least-Authority Filesystem es un sistema de archivos libre y abierto, seguro, descentralizado, tolerante a fallos y distribuido de igual a igual.
Sistema de archivos de disco compartido
- GFS2 — GFS2 permite que todos los miembros de un clúster tengan acceso simultáneo directo al mismo almacenamiento de bloques compartido
- OCFS2 — Oracle Cluster File System (versión 2) es un sistema de archivos de disco compartido desarrollado por Oracle Corporation y publicado bajo la Licencia Pública General GNU
- VMware VMFS — VMFS (Virtual Machine File System) de VMware es utilizado por la suite de virtualización de servidores insignia de la compañía, vSphere.
- https://www.vmware.com/products/vi/esx/vmfs.html[enlace roto 2024-07-30] || vmfs-toolsAUR
Identificar los sistemas de archivos existentes
Para identificar los sistemas de archivos existentes, puede utilizar lsblk:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sdb └─sdb1 vfat Transcend 4A3C-A9E9
Un sistema de archivos existente, si está presente, se mostrará en la columna FSTYPE
. Si está montado, aparecerá en la columna MOUNTPOINT
.
Crear un sistema de archivos
Los sistemas de archivos generalmente se crean en una partición, dentro de contenedores lógicos como LVM, RAID y dm-crypt, o en un archivo normal (véase Wikipedia:es:Loop device). Esta sección describe el caso de la partición.
- Después de crear un nuevo sistema de archivos, es improbable que se recuperen los datos almacenados previamente en esta partición. Haga una copia de seguridad de los datos que desee conservar.
- El propósito de una partición dada puede restringir la elección del sistema de archivos. Por ejemplo, una partición del sistema EFI debe contener un sistema de archivos FAT32, y el sistema de archivos que contiene el directorio
/boot
debe estar soportado por el cargador de arranque.
Antes de continuar, identifique el dispositivo donde se creará el sistema de archivos y si está montado o no. Por ejemplo:
$ lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 C4DA-2C4D ├─sda2 ext4 5b1564b2-2e2c-452c-bcfa-d1f572ae99f2 /mnt └─sda3 56adc99b-a61e-46af-aab7-a6d07e504652
Los sistemas de archivos montados deben ser desmontados antes de continuar. En el ejemplo anterior, existe un sistema de archivos que está en /dev/sda2
y se monta en /mnt
. Se desmontaría con:
# umount /dev/sda2
Para encontrar los sistemas de archivos que estén montados, véase #Listar los sistemas de archivos montados.
Para crear un nuevo sistema de archivos, utilice mkfs(8). Véase #Tipos de sistemas de archivos para conocer el tipo exacto, así como las utilidades de espacio de usuario que desee instalar para un sistema de archivos en particular.
Por ejemplo, para crear un nuevo sistema de archivos de tipo ext4 (común para particiones de datos de Linux) en /dev/sda1
, ejecute:
# mkfs.ext4 /dev/sda1
- Utilice la opción
-L
de mkfs.ext4 para especificar una etiqueta de sistema de archivos. e2label se puede utilizar para cambiar la etiqueta en un sistema de archivos existente. - Los sistemas de archivos pueden ser redimensionados tras su creación, con ciertas limitaciones. Por ejemplo, el tamaño del sistema de archivos XFS se puede aumentar, pero no se puede reducir. Véase Capacidades de redimensionar y la documentación del sistema de archivos correspondiente para obtener más información.
El nuevo sistema de archivos ahora se puede montar en el directorio de su elección.
Montar un sistema de archivos
Para montar manualmente el sistema de archivos ubicado en un dispositivo (por ejemplo, una partición) en un directorio, utilice mount(8). Este ejemplo monta /dev/sda1
en /mnt
.
# mount /dev/sda1 /mnt
Esto vincula el sistema de archivos en /dev/sda1
en el directorio /mnt
, haciendo visible el contenido del sistema de archivos. Todos los datos que existían en /mnt
antes de esta acción se vuelven invisibles hasta que se desmonte el dispositivo.
fstab contiene información sobre cómo se deben montar automáticamente los dispositivos, si están presentes. Véase el artículo fstab para obtener más información sobre cómo modificar este comportamiento.
Si se especifica un dispositivo en /etc/fstab
y solo se proporciona el dispositivo o el punto de montaje en la línea de órdenes, esa información se utilizará en el montaje. Por ejemplo, si /etc/fstab
contiene una línea que indica que /dev/sda1
debe montarse en /mnt
, entonces lo siguiente montará automáticamente el dispositivo en esa ubicación:
# mount /dev/sda1
o
# mount /mnt
mount contiene varias opciones, muchas de las cuales dependen del sistema de archivos especificado. Las opciones se pueden cambiar, ya sea:
- utilizando opciones en la línea de órdenes con mount
- editando fstab
- creando reglas udev
- compilando el kernel usted mismo
- o utilizando scripts de montaje específicos del sistema de archivos (situados en
/usr/bin/mount.*
).
Véase estos artículos relacionados y el artículo del sistema de archivos de interés para obtener más información.
/run/media/system/identificador_del_dispositivo/
. Esto permite montar fácilmente un sistema de archivos sin tener que decidir dónde montarlo. Véase systemd-mount(1) para su uso y más detalles.Listar los sistemas de archivos montados
Para listar todos los sistemas de archivos montados utilice findmnt(8):
$ findmnt
findmnt toma una variedad de argumentos que pueden filtrar la salida y mostrar información adicional. Por ejemplo, puede tomar un dispositivo o punto de montaje como argumento para mostrar solo información sobre lo que se especifica:
$ findmnt /dev/sda1
findmnt reúne información de /etc/fstab
, /etc/mtab
, y /proc/self/mounts
.
Desmontar un sistema de archivos
Para desmontar un sistema de archivos utilice umount(8). Se puede especificar el dispositivo que contiene el sistema de archivos (por ejemplo, /dev/sda1
) o el punto de montaje (por ejemplo, /mnt
):
# umount /dev/sda1
o
# umount /mnt