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 esta lección, discutiremos las herramientas disponibles para monitorear 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. El primero es du
, que significa “uso de disco”.
du
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, 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: |
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. Hay otro comando que puede mostrarle el uso del disco y la cantidad de espacio disponible a nivel del sistema de archivos. Este comando es df
.
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
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
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 respondern
(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
|
|
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
yRTDEV
con los dispositivos correspondientes. -m N
-
Se utiliza para limitar el uso de memoria de
xfs_repair
aN
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
-
Usando
du
, ¿cómo podemos verificar cuánto espacio están usando solo los archivos en el directorio actual? -
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. -
¿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? -
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 aUserData
? -
¿Cómo puede comprobar si hay errores en un sistema de archivos XFS, sin reparar los daños encontrados?
Ejercicios Exploratorios
-
Considere que tiene un sistema de archivos ext4 en
/dev/sda1
con los siguientes parámetros, obtenidos contune2fs
:Mount count: 8 Maximum mount count: -1
¿Qué pasará en el próximo arranque si se emite el comando
tune2fs -c 9 /dev/sda1
? -
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?
-
¿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
-
¿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? -
¿Cuál es la diferencia entre los parámetros
-T
y-t
paradf
?
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
ye2fsck
. -
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
-
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
-
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
-
¿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
-
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 aUserData
?Recuerde que convertir un sistema de archivos ext2 a ext3 es solo una cuestión de agregar un diario, lo cual se puede hacer con el parámetro
-j
. Para restablecer el recuento de monturas, use-C 0
. Para cambiar la etiqueta use-L UserData
. La respuesta correcta es:# tune2fs -j -C 0 -L UserData /dev/sdb1
-
¿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 enxfs -n
, seguido del dispositivo correspondiente.
Respuestas a ejercicios exploratorios
-
Considere que tiene un sistema de archivos ext4 en
/dev/sda1
con los siguientes parámetros, obtenidos contune2fs
: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 el recuento actual de montajes es de 8, el próximo arranque del sistema provocará una verificación del sistema de archivos.
-
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. -
¿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. -
¿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
-
¿Cuál es la diferencia entre los parámetros
-T
y-t
paradf
?El parámetro
-T
incluirá el tipo de cada sistema de archivos en la salida dedf
.-t
es un filtro y mostrará solo los sistemas de archivos del tipo dado en la salida, excluyendo todos los demás.