Linux
          Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Contáctenos
  • LPI.org
104.2 Lección 1

Tema 101: Arquitectura del Sistema
101.1 Determinar y configurar los ajustes de hardware
  • 101.1 Lección 1
101.2 Arranque del sistema
  • 101.2 Lección 1
101.3 Cambiar los niveles de ejecución / objetivos de arranque y apagar o reiniciar el sistema
  • 101.3 Lección 1
Tema 102: Instalación de Linux y gestión de paquetes
102.1 Diseño del esquema de particionado del disco duro duro
  • 102.1 Lección 1
102.2 Instalar un gestor de arranque
  • 102.2 Lección 1
102.3 Gestión de librerías compartidas
  • 102.3 Lección 1
102.4 Gestión de paquetes Debian
  • 102.4 Lección 1
102.5 Gestión de paquetes RPM y YUM
  • 102.5 Lección 1
102.6 Linux como sistema virtualizado
  • 102.6 Lección 1
Tema 103: Comandos GNU y Unix
103.1 Trabajar desde la línea de comandos
  • 103.1 Lección 1
  • 103.1 Lección 2
103.2 Procesar secuencias de texto usando filtros
  • 103.2 Lección 1
103.3 Administración básica de archivos
  • 103.3 Lección 1
  • 103.3 Lección 2
103.4 Uso de secuencias de texto, tuberías y redireccionamientos
  • 103.4 Lección 1
  • 103.4 Lección 2
103.5 Crear, supervisar y matar procesos
  • 103.5 Lección 1
  • 103.5 Lección 2
103.6 Modificar la prioridad de ejecución de los procesos
  • 103.6 Lección 1
103.7 Realizar búsquedas en archivos de texto usando expresiones regulares
  • 103.7 Lección 1
  • 103.7 Lección 2
103.8 Edición básica de archivos
  • 103.8 Lección 1
Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
104.1 Creación de particiones y sistemas de archivos
  • 104.1 Lección 1
104.2 Mantener la integridad de los sistemas de archivos
  • 104.2 Lección 1
104.3 Controlar el montaje y desmontaje de los sistemas de archivos
  • 104.3 Lección 1
104.5 Administración de los permisos y los propietarios de los archivos
  • 104.5 Lección 1
104.6 Crear y cambiar enlaces duros y simbólicos
  • 104.6 Lección 1
104.7 Encontrar archivos de sistema y ubicar archivos en el lugar correspondiente
  • 104.7 Lección 1
  1. Tema 104: Dispositivos, sistemas de archivos Linux y el estándar de jerarquía de archivos
  2. 104.2 Mantener la integridad de los sistemas de archivos
  3. 104.2 Lección 1

104.2 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

104 Dispositivos, sistemas de archivos Linux, estándar de jerarquía del sistema de archivos

Objetivo:

104.2 Mantener la integridad de los sistemas de archivos.

Lección:

1 de 1

Introducción

Los sistemas de archivos modernos de Linux utilizan journaling. Esto significa que cada operación se refleja en un registro interno (el journal) antes de ejecutarse. Si la operación se interrumpe debido a un error del sistema (como un pánico del kernel, falla de energía, etc.), se puede reconstruir revisando el diario, evitando la corrupción del sistema de archivos y la pérdida de datos.

Esto reduce en gran medida la necesidad de verificaciones manuales del sistema de archivos, pero es posible que aún sean necesarias. Conocer las herramientas utilizadas para esto (y los parámetros correspondientes) puede representar la diferencia entre cenar en casa con tu familia o pasar la noche en la sala de servidores del trabajo.

En este tema veremos las herramientas disponibles para monitorizar el uso del sistema de archivos, optimizar su operación y cómo verificar y reparar daños.

Comprobación del uso del disco

Hay dos comandos que se pueden usar para verificar cuánto espacio se está usando y cuánto queda en un sistema de archivos:du y df. Veamos el primero de ellos.

du significa “uso de disco” y es de naturaleza recursiva. En su forma más básica, el comando simplemente mostrará cuántos bloques de 1 Kilobyte están siendo utilizados por el directorio actual y todos sus subdirectorios:

$ du
4816	.

Esto no es muy útil, por lo que podemos solicitar más salida “legible por humanos” agregando el parámetro -h:

$ du -h
4.8M	.

Por defecto, du solo muestra el recuento de uso de los directorios (considerando todos los archivos y subdirectorios que contiene). Para mostrar un recuento individual de todos los archivos en el directorio y subdirectorios, use el parámetro -a:

$ du -ah
432K	./geminoid.jpg
508K	./Linear_B_Hero.jpg
468K	./LG-G8S-ThinQ-Mirror-White.jpg
656K	./LG-G8S-ThinQ-Range.jpg
60K	./Stranger3_Titulo.png
108K	./Baidu_Banho.jpg
324K	./Xiaomi_Mimoji.png
284K	./Mi_CC_9e.jpg
96K	./Mimoji_Comparativo.jpg
32K	./Xiaomi FCC.jpg
484K	./geminoid2.jpg
108K	./Mimoji_Abre.jpg
88K	./Mi8_Hero.jpg
832K	./Tablet_Linear_B.jpg
332K	./Mimoji_Comparativo.png
4.8M	.

El comportamiento predeterminado es mostrar el uso de cada subdirectorio, luego el uso total del directorio actual, incluyendo subdirectorios:

$ du -h
4.8M	./Temp
6.0M	.

En el ejemplo anterior, podemos ver que el subdirectorio Temp ocupa 4.8 MB y el directorio actual, incluyendo Temp, ocupa 6.0 MB. Pero, ¿Cuánto espacio ocupan los archivos en el directorio actual, excluyendo los subdirectorios? Para eso tenemos el parámetro -S:

$ du -Sh
4.8M	./Temp
1.3M	.
Tip

Tenga en cuenta que los parámetros de la línea de comandos distinguen entre mayúsculas y minúsculas: -s es diferente de -S.

Si desea mantener esta distinción entre el espacio usado por los archivos en el directorio actual y el espacio usado por los subdirectorios, pero también quiere un gran total al final, puede agregar el parámetro -c:

$ du -Shc
4.8M	./Temp
1.3M	.
6.0M	total

Puede controlar qué tan “profundo” debe ir la salida de du con el parámetro -d N, donde N describe los niveles. Por ejemplo, si usa el parámetro -d 1, mostrará el directorio actual y sus subdirectorios, pero no los subdirectorios de esos.

Vea la diferencia a continuación. Sin -d:

$ du -h
216K	./somedir/anotherdir
224K	./somedir
232K	.

Y limitando la profundidad a un nivel con -d 1:

$ du -h -d1
224K	./somedir
232K	.

Tenga en cuenta que incluso si no se muestra anotherdir, su tamaño se sigue teniendo en cuenta.

Es posible que desee excluir algunos tipos de archivos del recuento, lo que puede hacer con --exclude="PATTERN", donde PATTERN es el patrón con el que desea comparar. Considere este directorio:

$ du -ah
124K	./ASM68K.EXE
2.0M	./Contra.bin
36K	./fixheadr.exe
4.0K	./README.txt
2.1M	./Contra_NEW.bin
4.0K	./Built.bat
8.0K	./Contra_Main.asm
4.2M	.

Ahora, usaremos --exclude para filtrar todos los archivos con la extensión .bin:

$ du -ah --exclude="*.bin"
124K	./ASM68K.EXE
36K	./fixheadr.exe
4.0K	./README.txt
4.0K	./Built.bat
8.0K	./Contra_Main.asm
180K	.

Tenga en cuenta que el total ya no refleja el tamaño de los archivos excluidos.

Comprobación de espacio libre

du funciona a nivel de archivos. df puede mostrarle el uso del disco y la cantidad de espacio disponible a nivel del sistema de archivos.

El comando df proporcionará una lista de todos los sistemas de archivos disponibles (ya montados) en su sistema, incluido su tamaño total, cuánto espacio se ha utilizado, cuánto espacio está disponible, el porcentaje de uso y dónde está montado:

$ df
Filesystem     1K-blocks      Used Available Use% Mounted on
udev             2943068         0   2943068   0% /dev
tmpfs             595892      2496    593396   1% /run
/dev/sda1      110722904  25600600  79454800  25% /
tmpfs            2979440    951208   2028232  32% /dev/shm
tmpfs               5120         0      5120   0% /run/lock
tmpfs            2979440         0   2979440   0% /sys/fs/cgroup
tmpfs             595888        24    595864   1% /run/user/119
tmpfs             595888       116    595772   1% /run/user/1000
/dev/sdb1          89111      1550     80824   2% /media/carol/part1
/dev/sdb3          83187      1550     75330   3% /media/carol/part3
/dev/sdb2          90827      1921     82045   3% /media/carol/part2
/dev/sdc1      312570036 233740356  78829680  75% /media/carol/Samsung Externo

Sin embargo, mostrar el tamaño en bloques de 1 KB no es muy fácil de usar. Como en du, puede agregar los parámetros -h para obtener un resultado más “legible por humanos”:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
tmpfs           582M  2.5M  580M   1% /run
/dev/sda1       106G   25G   76G  25% /
tmpfs           2.9G  930M  2.0G  32% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.9G     0  2.9G   0% /sys/fs/cgroup
tmpfs           582M   24K  582M   1% /run/user/119
tmpfs           582M  116K  582M   1% /run/user/1000
/dev/sdb1        88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3        82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2        89M  1.9M   81M   3% /media/carol/part2
/dev/sdc1       299G  223G   76G  75% /media/carol/Samsung Externo

También puede usar el parámetro -i para mostrar inodos usados/disponibles en lugar de bloques:

$ df -i
Filesystem      Inodes  IUsed   IFree IUse% Mounted on
udev            737142    547  736595    1% /dev
tmpfs           745218    908  744310    1% /run
/dev/sda6      6766592 307153 6459439    5% /
tmpfs           745218    215  745003    1% /dev/shm
tmpfs           745218      4  745214    1% /run/lock
tmpfs           745218     18  745200    1% /sys/fs/cgroup
/dev/sda1        62464    355   62109    1% /boot
tmpfs           745218     43  745175    1% /run/user/1000

Un parámetro útil es -T, que también imprimirá el tipo de cada sistema de archivos:

$ df -hT
Filesystem     Type      Size  Used Avail Use% Mounted on
udev           devtmpfs  2.9G     0  2.9G   0% /dev
tmpfs          tmpfs     582M  2.5M  580M   1% /run
/dev/sda1      ext4      106G   25G   76G  25% /
tmpfs          tmpfs     2.9G  930M  2.0G  32% /dev/shm
tmpfs          tmpfs     5.0M     0  5.0M   0% /run/lock
tmpfs          tmpfs     2.9G     0  2.9G   0% /sys/fs/cgroup
tmpfs          tmpfs     582M   24K  582M   1% /run/user/119
tmpfs          tmpfs     582M  116K  582M   1% /run/user/1000
/dev/sdb1      ext4       88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3      ext4       82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2      ext4       89M  1.9M   81M   3% /media/carol/part2
/dev/sdc1      fuseblk   299G  223G   76G  75% /media/carol/Samsung Externo

Conociendo el tipo de sistema de archivos, puede filtrar la salida. Puede mostrar solo sistemas de archivos de un tipo dado con -t TYPE, o excluir sistemas de archivos de un tipo dado con -x TYPE, como en los ejemplos siguientes.

Excluyendo los sistemas de archivos tmpfs:

$ df -hx tmpfs
Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
/dev/sda1       106G   25G   76G  25% /
/dev/sdb1        88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3        82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2        89M  1.9M   81M   3% /media/carol/part2
/dev/sdc1       299G  223G   76G  75% /media/carol/Samsung Externo

Mostrando solo sistemas de archivos ext4:

$ df -ht ext4
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1       106G   25G   76G  25% /
/dev/sdb1        88M  1.6M   79M   2% /media/carol/part1
/dev/sdb3        82M  1.6M   74M   3% /media/carol/part3
/dev/sdb2        89M  1.9M   81M   3% /media/carol/part2

También puede personalizar la salida de df, seleccionando lo que debe mostrarse y en qué orden, usando el parámetro --output= seguido de una lista de campos separados por comas que desee mostrar. Algunos de los campos disponibles son:

source

El dispositivo correspondiente al sistema de archivos.

fstype

El tipo de sistema de archivos.

size

El tamaño total del sistema de archivos.

used

Cuánto espacio se está utilizando.

avail

Cuánto espacio hay disponible.

pcent

El porcentaje de uso.

target

Dónde está montado el sistema de archivos (punto de montaje).

Si desea una salida que muestre el destino, la fuente, el tipo y el uso, puede usar:

$ df -h --output=target,source,fstype,pcent
Mounted on                    Filesystem     Type     Use%
/dev                          udev           devtmpfs   0%
/run                          tmpfs          tmpfs      1%
/                             /dev/sda1      ext4      25%
/dev/shm                      tmpfs          tmpfs     32%
/run/lock                     tmpfs          tmpfs      0%
/sys/fs/cgroup                tmpfs          tmpfs      0%
/run/user/119                 tmpfs          tmpfs      1%
/run/user/1000                tmpfs          tmpfs      1%
/media/carol/part1            /dev/sdb1      ext4       2%
/media/carol/part3            /dev/sdb3      ext4       3%
/media/carol/part2            /dev/sdb2      ext4       3%
/media/carol/Samsung Externo  /dev/sdc1      fuseblk   75%

df también se puede usar para verificar la información de inodos, pasando los siguientes campos a --output=:

itotal

El número total de inodos en el sistema de archivos.

iused

El número de inodos usados en el sistema de archivos.

iavail

El número de inodos disponibles en el sistema de archivos.

ipcent

El porcentaje de inodos usados en el sistema de archivos.

Por ejemplo:

$ df --output=source,fstype,itotal,iused,ipcent
Filesystem     Type      Inodes  IUsed IUse%
udev           devtmpfs  735764    593    1%
tmpfs          tmpfs     744858   1048    1%
/dev/sda1      ext4     7069696 318651    5%
tmpfs          tmpfs     744858    222    1%
tmpfs          tmpfs     744858      3    1%
tmpfs          tmpfs     744858     18    1%
tmpfs          tmpfs     744858     22    1%
tmpfs          tmpfs     744858     40    1%

Mantenimiento de los sistemas de archivos ext2, ext3 y ext4

Para comprobar un sistema de archivos en busca de errores (y con suerte corregirlos), Linux proporciona la utilidad fsck (piense en “filesystem check” y nunca olvidará el nombre). En su forma más básica, puede invocarlo con fsck seguido de la ubicación del sistema de archivos que desee verificar:

# fsck /dev/sdb1
fsck from util-linux 2.33.1
e2fsck 1.44.6 (5-Mar-2019)
DT_2GB: clean, 20/121920 files, 369880/487680 blocks
Warning

NUNCA ejecute fsck (o utilidades relacionadas) en un sistema de archivos montado. Si lo hace de todos modos, es posible que se pierdan los datos.

fsck por sí mismo no verificará el sistema de archivos, simplemente llamará a la utilidad apropiada para el tipo de sistema de archivos para hacerlo. En el ejemplo anterior, dado que no se especificó un tipo de sistema de archivos, fsck asumió un sistema de archivos ext2/3/4 por defecto y se llamó e2fsck.

Para especificar un sistema de archivos, use la opción -t, seguida del nombre del sistema de archivos, como en fsck -t vfat /dev/sdc. Alternativamente, puede llamar directamente a una utilidad específica del sistema de archivos, como fsck.msdos para sistemas de archivos FAT.

Tip

Escriba fsck seguido de Tab dos veces para ver una lista de todos los comandos relacionados en su sistema.

fsck puede tomar algunos argumentos de línea de comandos. Estos son algunos de los más comunes:

-A

Esto comprobará todos los sistemas de archivos listados en /etc/fstab.

-C

Muestra una barra de progreso al comprobar un sistema de archivos. Actualmente solo funciona en sistemas de archivos ext2/3/4.

-N

Esto imprimirá lo que se haría y saldrá, sin realmente verificar el sistema de archivos.

-R

Cuando se usa junto con -A, esto omitirá la verificación del sistema de archivos raíz.

-V

Modo detallado, imprime más información de lo habitual durante el funcionamiento. Esto es útil para depurar.

La utilidad específica para los sistemas de archivos ext2, ext3 y ext4 es e2fsck, también llamado fsck.ext2, fsck.ext3 y fsck.ext4 (esos tres son simplemente enlaces a e2fsck). De forma predeterminada, se ejecuta en modo interactivo: cuando se encuentra un error en el sistema de archivos, se detiene y le pregunta al usuario qué hacer. El usuario debe escribir y para solucionar el problema, n para dejarlo sin arreglar o a para solucionar el problema actual y todos los posteriores.

Por supuesto, sentarse frente a una terminal esperando que e2fsck pregunte qué hacer no es un uso productivo de su tiempo, especialmente si se trata de un sistema de archivos grande. Entonces, hay opciones que hacen que e2fsck se ejecute en modo no interactivo:

-p

Esto intentará corregir automáticamente cualquier error encontrado. Si se encuentra un error que requiere la intervención del administrador del sistema, e2fsck proporcionará una descripción del problema y saldrá.

-y

Esto responderá y (sí) a todas las preguntas.

-n

Lo contrario de -y. Además de responder n (no) a todas las preguntas, esto hará que el sistema de archivos se monte como de solo lectura, por lo que no se puede modificar.

-f

Obliga a e2fsck a comprobar un sistema de archivos incluso si está marcado como “clean”, es decir, se ha desmontado correctamente.

Ajustes de un sistema de archivos ext

Los sistemas de archivos ext2, ext3 y ext4 tienen una serie de parámetros que el administrador del sistema puede ajustar o “afinar” para adaptarse mejor a las necesidades del sistema. La utilidad utilizada para mostrar o modificar estos parámetros se llama tune2fs.

Para ver los parámetros actuales para cualquier sistema de archivos dado, use el parámetro -l seguido del dispositivo que representa la partición. El siguiente ejemplo muestra el resultado de este comando en la primera partición del primer disco (/dev/sda1) de una máquina:

# tune2fs -l /dev/sda1
tune2fs 1.44.6 (5-Mar-2019)
Filesystem volume name:   <none>
Last mounted on:          /
Filesystem UUID:          6e2c12e3-472d-4bac-a257-c49ac07f3761
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              7069696
Block count:              28255605
Reserved block count:     1412780
Free blocks:              23007462
Free inodes:              6801648
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Mon Jun 17 13:49:59 2019
Last mount time:          Fri Jun 28 21:14:38 2019
Last write time:          Mon Jun 17 13:53:39 2019
Mount count:              8
Maximum mount count:      -1
Last checked:             Mon Jun 17 13:49:59 2019
Check interval:           0 (<none>)
Lifetime writes:          20 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
First orphan inode:       5117383
Default directory hash:   half_md4
Directory Hash Seed:      fa95a22a-a119-4667-a73e-78f77af6172f
Journal backup:           inode blocks
Checksum type:            crc32c
Checksum:                 0xe084fe23

Los sistemas de archivos ext tienen conteos de montajes. El recuento aumenta en 1 cada vez que se monta el sistema de archivos, y cuando se alcanza un valor de umbral (el recuento máximo de montaje), el sistema se comprobará automáticamente con e2fsck en el próximo arranque.

El número máximo de montajes se puede establecer con el parámetro -c N, donde N es el número de veces que se puede montar el sistema de archivos sin comprobarlo. El parámetro -C N establece el número de veces que se ha montado el sistema en el valor de N. Tenga en cuenta que los parámetros de la línea de comandos distinguen entre mayúsculas y minúsculas, por lo que -c es diferente de -C.

También es posible definir un intervalo de tiempo entre comprobaciones, con el parámetro -i, seguido de un número y las letras d para días, m para meses e y para años. Por ejemplo, -i 10d comprobaría el sistema de archivos en el próximo reinicio cada 10 días. Utilice cero como valor para desactivar esta función.

-L se puede usar para establecer una etiqueta para el sistema de archivos. Esta etiqueta puede tener hasta 16 caracteres. El parámetro -U establece el UUID para el sistema de archivos, que es un número hexadecimal de 128 bits. En el ejemplo anterior, el UUID es 6e2c12e3-472d-4bac-a257-c49ac07f3761. Tanto la etiqueta como el UUID pueden usarse en lugar del nombre del dispositivo (como /dev/sda1) para montar el sistema de archivos.

La opción -e BEHAVIOUR define el comportamiento del kernel cuando se encuentra un error en el sistema de archivos. Hay tres posibles comportamientos:

continue

Continuará la ejecución normalmente.

remount-ro

Volverá a montar el sistema de archivos como de solo lectura.

panic

Causará kernel panic.

El comportamiento predeterminado es continuar. remount-ro podría ser útil en aplicaciones sensibles a los datos, ya que detendrá inmediatamente las escrituras en el disco, evitando más errores potenciales.

Los sistemas de archivos ext3 son básicamente sistemas de archivos ext2 con un journal. Usando tune2fs puede agregar un journal a un sistema de archivos ext2, convirtiéndolo así en ext3. El procedimiento es simple, simplemente pase el parámetro -j a tune2fs, seguido del dispositivo que contiene el sistema de archivos:

# tune2fs -j /dev/sda1

Luego, cuando monte el sistema de archivos convertido, no olvide establecer el tipo en ext3 para que se pueda usar el journal.

Cuando se trata de sistemas de archivos registrados por journal, el parámetro -J le permite usar parámetros adicionales para establecer algunas opciones de journal, como -J size= para establecer el tamaño del journal (en megabytes), -J location= para especificar dónde el journal debe almacenarse (ya sea en un bloque específico o en una posición específica en el disco con sufijos como M o G) e incluso poner el journal en un dispositivo externo con -J device=.

Puede especificar varios parámetros a la vez separándolos con una coma. Por ejemplo: -J size=10,location=100M,device=/dev/sdb1 creará un journal de 10 MB en la posición de 100 MB en el dispositivo /dev/sdb1.

Warning

tune2fs tiene una opción de “fuerza bruta”, -f, que lo obligará a completar una operación incluso si se encuentran errores. No hace falta decir que esto solo debe usarse con extrema precaución.

Mantenimiento de sistemas de archivos XFS

Para los sistemas de archivos XFS, el equivalente de fsck es xfs_repair. Si sospecha que algo anda mal con el sistema de archivos, lo primero que debe hacer es escanearlo en busca de daños.

Esto se puede hacer pasando el parámetro -n a xfs_repair, seguido del dispositivo que contiene el sistema de archivos. El parámetro -n significa “no modificar”: se comprobará el sistema de archivos, se informarán los errores pero no se realizarán reparaciones:

# xfs_repair -n /dev/sdb1
Phase 1 - find and verify superblock...
Phase 2 - using internal log
        - zero log...
        - scan filesystem freespace and inode maps...
        - found root inode chunk
Phase 3 - for each AG...
        - scan (but do not clear) agi unlinked lists...
        - process known inodes and perform inode discovery...
        - agno = 0
        - agno = 1
        - agno = 2
        - agno = 3
        - process newly discovered inodes...
Phase 4 - check for duplicate blocks...
        - setting up duplicate extent list...
        - check for inodes claiming duplicate blocks...
        - agno = 1
        - agno = 3
        - agno = 0
        - agno = 2
No modify flag set, skipping phase 5
Phase 6 - check inode connectivity...
        - traversing filesystem ...
        - traversal finished ...
        - moving disconnected inodes to lost+found ...
Phase 7 - verify link counts...
No modify flag set, skipping filesystem flush and exiting.

Si se encuentran errores, puede proceder a hacer las reparaciones sin el parámetro -n, así: xfs_repair /dev/sdb1.

xfs_repair acepta varias opciones de línea de comandos. Entre ellos:

-l LOGDEV y -r RTDEV

Estos son necesarios si el sistema de archivos tiene un registro externo y secciones en tiempo real. En este caso, reemplace LOGDEV y RTDEV con los dispositivos correspondientes.

-m N

Se utiliza para limitar el uso de memoria de xfs_repair a N megabytes, algo que puede ser útil en la configuración del servidor. Según la página del manual, de forma predeterminada, xfs_repair escalará su uso de memoria según sea necesario, hasta el 75% de la RAM física del sistema.

-d

El modo “dangerous” permitirá la reparación de sistemas de archivos que estén montados como de solo lectura.

-v

Puede que lo haya adivinado: modo detallado. Cada vez que se usa este parámetro, la “verbosidad” aumenta (por ejemplo,-v -v imprimirá más información que solo -v).

Tenga en cuenta que xfs_repair no puede reparar sistemas de archivos con un registro “sucio”. Puede “poner a cero” un registro corrupto con el parámetro -L, pero tenga en cuenta que este es un último recurso ya que puede provocar la corrupción del sistema de archivos y la pérdida de datos.

Para depurar un sistema de archivos XFS, se puede usar la utilidad xfs_db, como en xfs_db /dev/sdb1. Esto se usa principalmente para inspeccionar varios elementos y parámetros del sistema de archivos.

Esta utilidad tiene un indicador interactivo, como parted, con muchos comandos internos. También hay disponible un sistema de ayuda: teclee help para ver una lista de todos los comandos, y help seguido del nombre del comando para ver más información sobre el comando.

Otra utilidad interesante es xfs_fsr, que se puede utilizar para reorganizar (“desfragmentar”) un sistema de archivos XFS. Cuando se ejecuta sin ningún argumento adicional, se ejecutará durante dos horas e intentará desfragmentar todos los sistemas de archivos XFS montados y escribibles enumerados en el archivo /etc/mtab/. Es posible que deba instalar esta utilidad utilizando el administrador de paquetes para su distribución de Linux, ya que es probable que no sea parte de una instalación predeterminada. Para más información consulte la página de manual correspondiente.

Ejercicios Guiados

  1. Usando du, ¿cómo podemos verificar cuánto espacio están usando solo los archivos en el directorio actual?


  2. Usando df, enumere la información para cada sistema de archivos ext4, con las salidas incluyendo los siguientes campos, en orden: dispositivo, punto de montaje, número total de inodos, número de inodos disponibles, porcentaje de espacio libre.


  3. ¿Cuál es el comando para ejecutar e2fsck en /dev/sdc1 en modo no interactivo, mientras se intenta corregir automáticamente la mayoría de los errores?


  4. Suponga que /dev/sdb1 es un sistema de archivos ext2. ¿Cómo puede convertirlo a ext3 y, al mismo tiempo, restablecer su recuento de montaje y cambiar su etiqueta a UserData?


  5. ¿Cómo puede comprobar si hay errores en un sistema de archivos XFS, sin reparar los daños encontrados?


Ejercicios Exploratorios

  1. Considere que tiene un sistema de archivos ext4 en /dev/sda1 con los siguientes parámetros, obtenidos con tune2fs:

    Mount count:              8
    Maximum mount count:      -1

    ¿Qué pasará en el próximo arranque si se emite el comando tune2fs -c 9 /dev/sda1?


  2. Considere la siguiente salida de du -h:

    $ du -h
    216K	./somedir/anotherdir
    224K	./somedir
    232K	.

    ¿Cuánto espacio ocupan solo los archivos en el directorio actual? ¿Cómo podríamos reescribir el comando para mostrar esta información con mayor claridad?


  3. ¿Qué pasaría con el sistema de archivos ext2 /dev/sdb1 si se emite el siguiente comando?

    # tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d

  4. ¿Cómo podemos verificar si hay errores en un sistema de archivos XFS en /dev/sda1 que tiene una sección de registro en /dev/sdc1, sin realmente hacer ninguna reparación?


  5. ¿Cuál es la diferencia entre los parámetros -T y -t para df?


Resumen

En esta lección aprendimos:

  • Cómo comprobar si hay espacio libre y utilizado en un sistema de archivos.

  • Cómo adaptar la salida de df a sus necesidades.

  • Cómo verificar la integridad y reparar un sistema de archivos con fsck y e2fsck.

  • Cómo ajustar un sistema de archivos ext con tune2fs.

  • Cómo verificar y reparar sistemas de archivos XFS con xfs_repair.

Los siguientes comandos se discutieron en esta lección:

du

Ver la cantidad de espacio en disco en uso en un sistema de archivos.

df

Ver la cantidad de espacio en disco que está disponible (libre) en un sistema de archivos.

fsck

La utilidad de reparación de verificación del sistema de archivos.

e2fsck

La utilidad de reparación de verificación del sistema de archivos específica para sistemas de archivos extendidos (ext2/3/4).

tune2fs

Modifica los parámetros del sistema de archivos en un sistema de archivos extendido (ext2/3/4).

xfs_repair

El equivalente de fsck para sistemas de archivos XFS.

xfs_db

Esta utilidad se utiliza para ver varios parámetros de un sistema de archivos XFS.

Respuestas a los ejercicios guiados

  1. Usando du, ¿cómo podemos verificar cuánto espacio están usando solo los archivos en el directorio actual?

    Primero, use el parámetro -S para separar la salida del directorio actual de sus subdirectorios. Luego, use -d 0 para limitar la profundidad de salida a cero, lo que significa “sin subdirectorios”. No olvide -h para obtener una salida en un formato “legible por humanos”:

    $ du -S -h -d 0

    o

    $ du -Shd 0
  2. Usando df, enumere la información para cada sistema de archivos ext4, con las salidas incluyendo los siguientes campos, en orden: dispositivo, punto de montaje, número total de inodos, número de inodos disponibles, porcentaje de espacio libre.

    Puede filtrar sistemas de archivos con la opción -t seguida del nombre del sistema de archivos. Para obtener la salida necesaria, use --output=source,target,itotal,iavail,pcent. Entonces, la respuesta es:

    $ df -t ext4 --output=source,target,itotal,iavail,pcent
  3. ¿Cuál es el comando para ejecutar e2fsck en /dev/sdc1 en modo no interactivo, mientras se intenta corregir automáticamente la mayoría de los errores?

    El parámetro para intentar corregir automáticamente la mayoría de los errores es -p. Entonces la respuesta es:

    # e2fsck -p /dev/sdc1
  4. Suponga que /dev/sdb1 es un sistema de archivos ext2. ¿Cómo puede convertirlo a ext3 y, al mismo tiempo, restablecer su recuento de montaje y cambiar su etiqueta a UserData?

    Recuerde que convertir un sistema de archivos ext2 a ext3 es solo una cuestión de agregar un journal, lo cual se puede hacer con el parámetro -j. Para restablecer el conteo de montajes, use -c 0. Para cambiar la etiqueta use -L UserData. La respuesta correcta es:

    # tune2fs -j -c 0 -L UserData /dev/sdb1
  5. ¿Cómo puede comprobar si hay errores en un sistema de archivos XFS, sin reparar los daños encontrados?

    Utilice el parámetro -n, como en xfs -n, seguido del dispositivo correspondiente.

Respuestas a ejercicios exploratorios

  1. Considere que tiene un sistema de archivos ext4 en /dev/sda1 con los siguientes parámetros, obtenidos con tune2fs:

    Mount count:              8
    Maximum mount count:      -1

    ¿Qué pasará en el próximo arranque si se emite el comando tune2fs -c 9 /dev/sda1?

    El comando establecerá el número máximo de montajes para el sistema de archivos en 9. Dado que actualmente es 8, el próximo arranque del sistema provocará una verificación del sistema de archivos.

  2. Considere la siguiente salida de du -h:

    $ du -h
    216K	./somedir/anotherdir
    224K	./somedir
    232K	.

    ¿Cuánto espacio ocupan solo los archivos en el directorio actual? ¿Cómo podríamos reescribir el comando para mostrar esta información con mayor claridad?

    Del total de 232K utilizados, 224K son utilizados por el subdirectorio somedir y sus subdirectorios. Entonces, excluyendo esos, tenemos 8K ocupados por los archivos en el directorio actual. Esta información se puede mostrar más claramente usando el parámetro -S, que separará los directorios en el conteo.

  3. ¿Qué pasaría con el sistema de archivos ext2 /dev/sdb1 si se emite el siguiente comando?

    # tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d

    Se agregará un journal a /dev/sdb1, convirtiéndolo en ext3. El journal se almacenará en el dispositivo /dev/sdc1 y el sistema de archivos se comprobará cada 30 días.

  4. ¿Cómo podemos verificar si hay errores en un sistema de archivos XFS en /dev/sda1 que tiene una sección de registro en /dev/sdc1, sin realmente hacer ninguna reparación?

    Use xfs_repair, seguido de -l /dev/sdc1 para indicar el dispositivo que contiene la sección de registro, y -n para evitar hacer cambios.

    # xfs_repair -l /dev/sdc1 -n
  5. ¿Cuál es la diferencia entre los parámetros -T y -t para df?

    El parámetro -T incluirá el tipo de cada sistema de archivos en la salida de df. -t es un filtro y mostrará solo los sistemas de archivos del tipo dado en la salida, excluyendo todos los demás.

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

104.3 Controlar el montaje y desmontaje de los sistemas de archivos (104.3 Lección 1)

Leer la próxima lección

© 2020 Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://asir.sudo.es/docnux/learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© Copyright 1999-2020 The Linux Professional Institute Inc. Todos los derechos reservados.