File systems (Español)

From ArchWiki
Estado de la traducción: esta traducción de File systems fue revisada el 2020-12-12. Si existen cambios puede actualizarla o avisar al equipo de traducción.

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.

Sistemas de archivos en la rama oficial y FUSE
Sistema de archivos Orden para crearlo Utilidades de usuario Archiso [1] Documentación del kernel [2] Notas
Btrfs mkfs.btrfs(8) btrfs-progs btrfs.html estado de su estabilidad
VFAT mkfs.fat(8) dosfstools vfat.html Sistema de archivos de Windows 9x
exFAT mkfs.exfat(8) exfatprogs Sistema de archivos nativo desde linux 5.4. [3]
mkexfatfs(8) exfat-utils No N/D (basado en FUSE)
F2FS mkfs.f2fs(8) f2fs-tools f2fs.html dispositivos basados ​​en flash
ext3 mke2fs(8) e2fsprogs ext3.html
ext4 mke2fs(8) e2fsprogs ext4.html
HFS mkfs.hfsplus(8) hfsprogsAUR No hfs.html sistema de archivos Mac OS clásico
HFS+ mkfs.hfsplus(8) hfsprogsAUR No hfsplus.html sistema de archivos de macOS (8-10.12)
JFS mkfs.jfs(8) jfsutils jfs.html
NILFS2 mkfs.nilfs2(8) nilfs-utils nilfs2.html
NTFS mkfs.ntfs(8) ntfs-3g N/D (basado en FUSE) sistema de archivos de Windows NT
ReiserFS mkfs.reiserfs(8) reiserfsprogs
UDF mkfs.udf(8) udftools udf.html
XFS mkfs.xfs(8) xfsprogs

xfs.html
xfs-delayed-logging-design.html
xfs-self-describing-metadata.html

Nota: El kernel tiene su propio controlador NTFS (véase ntfs.html), pero tiene un soporte limitado para escribir archivos.
Sistemas de archivos fuera de la rama oficial
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.

Nota: Reiser4 proporciona un comportamiento journaling casi equivalente al predeterminado de ext4 (solo meta datos) con la utilización del complemento node41 que también presenta meta datos y sumas de verificación en línea, opcionalmente combinado con el comportamiento de registros errantes que proporciona dependiendo del modelo de transacción elegido en el momento del montaje.

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

  • aufs — Sistema de archivos de unificación multicapa avanzado, un sistema de archivos de unión basado en FUSE, una reescritura completa de Unionfs, fue rechazado de la línea principal de Linux y, en su lugar, OverlayFS se fusionó con el Kernel de Linux.
http://aufs.sourceforge.net || linux-aufsAUR
  • 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.
https://ecryptfs.org || ecryptfs-utils
  • mergerfs — Un sistema de archivos de unión basado en FUSE.
https://github.com/trapexit/mergerfs || mergerfsAUR
  • 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.
https://www.kernel.org/doc/html/latest/filesystems/overlayfs.html || linux
  • 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.
https://github.com/rpodgorny/unionfs-fuse || unionfs-fuse

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.
https://www.kernel.org/doc/html/latest/filesystems/erofs.html || erofs-utils
  • 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.
https://github.com/plougher/squashfs-tools || squashfs-tools

Sistemas de archivos agrupados (cluster)

  • Ceph — Unificado, sistema de almacenamiento distribuido diseñado para un excelente rendimiento, fiabilidad y escalabilidad.
https://ceph.com/ || ceph
  • Glusterfs — Sistema de archivos agrupado capaz de escalar a varios peta-bytes.
https://www.gluster.org/ || glusterfs
  • 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
  • MooseFS — MooseFS es un sistema de archivos distribuido en red de escalamiento horizontal tolerante a fallos, de alta disponibilidad y de alto rendimiento.
https://moosefs.com || moosefs
  • OpenAFS — Implementación de código abierto del sistema de archivos distribuido AFS.
https://www.openafs.org || openafsAUR
  • 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.
https://sheepdog.github.io/sheepdog/ || sheepdogAUR
  • 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.
https://tahoe-lafs.org/ || tahoe-lafsAUR

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
https://pagure.io/gfs2-utils || gfs2-utilsAUR
  • 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
https://oss.oracle.com/projects/ocfs2/ || ocfs2-toolsAUR
  • 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 || 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.

Nota: Los sistemas de archivos se pueden escribir directamente en un disco, conocido como superfloppy o particless disk. Ciertas limitaciones están involucradas con este método, particularmente si arranca desde tal unidad. Véase Btrfs#Partitionless Btrfs disk para un ejemplo.
Advertencia:
  • 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
Sugerencia:
  • 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.

Sugerencia: Los sistemas de archivos también se pueden montar con systemd-mount en lugar de mount. Si no se especifica el punto de montaje, el sistema de archivos se montará en /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

Véase también