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: |
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
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 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
-
¿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 actualmente es 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.