Linux Professional Institute Learning Logo.
Ir para o conteúdo principal
  • Home
    • Todos os recursos
    • LPI Materiais Didáticos
    • Colabore Conosco
    • Publishing Partners
    • Seja um Publishing Partner
    • Quem Somos
    • FAQ
    • Colaboradores
    • Contato
  • LPI.org
104.2 Lição 1
Tópico 101: Arquitetura de Sistema
101.1 Identificar e editar configurações de hardware
  • 101.1 Lição 1
101.2 Início (boot) do sistema
  • 101.2 Lição 1
101.3 Alternar runlevels/boot targets, desligar e reiniciar o sistema
  • 101.3 Lição 1
Tópico 102: Instalação do Linux e administração de Pacotes
102.1 Dimensionar partições de disco
  • 102.1 Lição 1
102.2 Instalar o gerenciador de inicialização
  • 102.2 Lição 1
102.3 Controle de bibliotecas compartilhadas
  • 102.3 Lição 1
102.4 Utilização do sistema de pacotes Debian
  • 102.4 Lição 1
102.5 Utilização do sistema de pacotes RPM e YUM
  • 102.5 Lição 1
102.6 Linux virtualizado
  • 102.6 Lição 1
Tópico 103: Comandos GNU e Unix
103.1 Trabalhar na linha de comando
  • 103.1 Lição 1
  • 103.1 Lição 2
103.2 Processar fluxos de texto usando filtros
  • 103.2 Lição 1
103.3 Gerenciamento básico de arquivos
  • 103.3 Lição 1
  • 103.3 Lição 2
103.4 Fluxos, pipes (canalização) e redirecionamentos de saída
  • 103.4 Lição 1
  • 103.4 Lição 2
103.5 Criar, monitorar e finalizar processos
  • 103.5 Lição 1
  • 103.5 Lição 2
103.6 Modificar a prioridade de execução de um processo
  • 103.6 Lição 1
103.7 Procurar em arquivos de texto usando expressões regulares
  • 103.7 Lição 1
  • 103.7 Lição 2
103.8 Edição básica de arquivos com o vi
  • 103.8 Lição 1
Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS
104.1 Criar partições e sistemas de arquivos
  • 104.1 Lição 1
104.2 Manutenção da integridade de sistemas de arquivos
  • 104.2 Lição 1
104.3 Controle da montagem e desmontagem dos sistemas de arquivos
  • 104.3 Lição 1
104.5 Controlar permissões e propriedades de arquivos
  • 104.5 Lição 1
104.6 Criar e alterar links simbólicos e hardlinks
  • 104.6 Lição 1
104.7 Encontrar arquivos de sistema e conhecer sua localização correta
  • 104.7 Lição 1
How to get certified
  1. Tópico 104: Dispositivos, sistemas de arquivos Linux e padrão FHS
  2. 104.2 Manutenção da integridade de sistemas de arquivos
  3. 104.2 Lição 1

104.2 Lição 1

Certificação:

LPIC-1

Versão:

5.0

Tópico:

104 Dispositivos, sistemas de arquivos do Linux, hierarquia padrão de sistemas de arquivos

Objetivo:

104.2 Manutenção da integridade dos sistemas de arquivos

Lição:

1 de 1

Introdução

Os sistemas de arquivos Linux modernos têm suporte a journaling. Isso significa que cada operação é registrada em um log interno (o journal, ou diário) antes de ser executada. Se a operação for interrompida devido a um erro do sistema (como kernel panic, falha de energia etc.), ela pode ser reconstituída verificando-se o diário, evitando assim a corrupção do sistema de arquivos e perda de dados.

Isso reduz muito a necessidade de verificações manuais do sistema de arquivos, mas elas ainda podem ser necessárias. Conhecer as ferramentas utilizadas para isso (e os parâmetros correspondentes) pode representar a diferença entre jantar em casa com a família ou passar a noite na sala do servidor no trabalho.

Nesta lição, discutiremos as ferramentas disponíveis para monitorar o uso do sistema de arquivos, otimizar sua operação e como verificar e reparar danos.

Verificando o uso de disco

Existem dois comandos que podem ser usados para verificar quanto espaço está sendo usado e quanto resta em um sistema de arquivos. O primeiro é du, que significa “disk usage” (uso do disco).

O du é recursivo por natureza. Em sua forma mais básica, o comando simplesmente mostra quantos blocos de 1 Kilobyte estão sendo usados pelo diretório atual e todos os seus subdiretórios:

$ du
4816	.

Isso não é muito útil, então podemos solicitar uma saída maior e “legível por humanos” adicionando o parâmetro -h:

$ du -h
4.8M	.

Por padrão, o du só mostra a contagem de uso para os diretórios (considerando todos os arquivos e subdiretórios dentro deles). Para mostrar uma contagem individual para todos os arquivos no diretório, usamos o 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	.

O comportamento padrão é mostrar o uso de cada subdiretório e, em seguida, o uso total do diretório atual, incluindo subdiretórios:

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

No exemplo acima, podemos ver que o subdiretório Temp ocupa 4,8 MB e o diretório atual, incluindo Temp, ocupa 6,0 MB. Mas quanto espaço os arquivos no diretório atual ocupam, excluindo os subdiretórios? Para isso temos o parâmetro -S:

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

Lembre-se de que os parâmetros da linha de comando diferenciam maiúsculas de minúsculas: -s é diferente de -S.

Se quiser manter essa distinção entre o espaço usado pelos arquivos no diretório atual e o espaço usado pelos subdiretórios, mas também quiser um total geral no final, você pode adicionar o parâmetro -c:

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

Para controlar a “profundidade” da saída de du, usamos o parâmetro -d N, onde N descreve os níveis. Por exemplo, se usarmos o parâmetro -d 1, ele mostrará o diretório atual e seus subdiretórios, mas não os subdiretórios deles.

Veja a diferença abaixo. Sem -d:

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

E limitando a profundidade a um nível com -d 1:

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

Observe que, mesmo que anotherdir não esteja sendo mostrado, seu tamanho ainda está sendo levado em consideração.

Você pode querer excluir alguns tipos de arquivos da contagem, o que é feito com --exclude="PATTERN", onde PATTERN é o padrão que deve ser correspondido. Considere este diretório:

$ 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	.

Agora, usamos --exclude para filtrar todos os arquivos com a extensão .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	.

Observe que o total não reflete mais o tamanho dos arquivos excluídos.

Em busca de espaço livre

O du trabalha no nível dos arquivos. Existe outro comando que pode mostrar o uso do disco e quanto espaço está disponível no nível dos sistemas de arquivos. Esse comando é df.

O comando df fornece uma lista de todos os sistemas de arquivos disponíveis (já montados) em seu sistema, incluindo o tamanho total, quanto espaço foi usado, quanto espaço está disponível, a porcentagem de uso e onde estão montados:

$ 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

No entanto, dispor das informações de tamanho em blocos de 1 KB não é lá muito amigável. Como no du, podemos adicionar os parâmetros -h para obter uma saída mais “legível 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

Também podemos usar o parâmetro -i para mostrar os inodes usados/disponíveis, em vez dos blocos:

$ 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

Um parâmetro útil é -T, que também imprime o tipo de cada sistema de arquivos:

$ 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

Conhecendo o tipo do sistema de arquivos, podemos filtrar a saída. A ideia é mostrar apenas sistemas de arquivos de um determinado tipo com -t TYPE ou excluir sistemas de arquivos de um determinado tipo com -x TYPE, como nos exemplos abaixo.

Excluindo os sistemas de arquivos 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

Exibindo apenas sistemas de arquivos 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

Também podemos personalizar a saída de df, selecionando o que deve ser exibido e em que ordem, usando o parâmetro --output= seguido por uma lista separada por vírgulas dos campos que desejamos exibir. Alguns dos campos disponíveis são:

source

O dispositivo correspondente ao sistema de arquivos.

fstype

O tipo de sistema de arquivos.

size

O tamanho total do sistema de arquivos.

used

Quanto espaço está sendo usado.

avail

Quanto espaço está disponível.

pcent

A porcentagem de uso.

target

Onde o sistema de arquivos é montado (ponto de montagem).

Se quiser uma saída mostrando o destino, a fonte, o tipo e o uso, você pode 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%

O df também pode ser usado para verificar as informações do inode, passando os seguintes campos para --output=:

itotal

O número total de inodes no sistema de arquivos.

iused

O número de inodes usados no sistema de arquivos.

iavail

O número de inodes disponíveis no sistema de arquivos.

ipcent

A porcentagem de inodes usados no sistema de arquivos.

Por exemplo:

$ 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%

Manutenção de sistemas de arquivos ext2, ext3 e ext4

Para procurar por erros em um sistema de arquivos (e, com sorte, corrigi-los), o Linux oferece o utilitário fsck (pense em “filesystem check”, verificação do sistema de arquivos, e você nunca mais esquecerá esse nome). Em sua forma mais básica, ele é invocado com fsck seguido da localização do sistema de arquivos que se deseja 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 execute fsck (ou utilitários relacionados) em um sistema de arquivos montado. Se isso for feito, pode haver perda de dados.

O fsck em si não verifica o sistema de arquivos, mas apenas chama para isso o utilitário apropriado para o tipo de sistema de arquivos em questão. No exemplo acima, como um tipo de sistema de arquivos não foi especificado, o fsck pressupôs se tratar de um sistema de arquivos ext2/3/4 por padrão, e chamou e2fsck.

Para especificar um sistema de arquivos, use a opção -t, seguida pelo nome do sistema de arquivos, como em fsck -t vfat /dev/sdc. Alternativamente, podemos chamar diretamente um utilitário específico ao sistema de arquivos, como o fsck.msdos para sistemas de arquivos FAT.

Tip

Digite fsck seguido por Tab duas vezes para ver uma lista de todos os comandos relacionados em seu sistema.

O fsck aceita alguns argumentos de linha de comando. Estes são alguns dos mais comuns:

-A

Verifica todos os sistemas de arquivos listados em /etc/fstab.

-C

Exibe uma barra de progresso ao verificar um sistema de arquivos. Atualmente funciona apenas em sistemas de arquivos ext2/3/4.

-N

Imprime na tela o que seria feito e sai, sem de fato verificar o sistema de arquivos.

-R

Quando usado em conjunto com -A, ele pula a verificação do sistema de arquivos raiz.

-V

Modo detalhado, imprime mais informações do que o normal durante a operação. Útil para depuração.

O utilitário específico para sistemas de arquivos ext2, ext3 e ext4 é o e2fsck, também chamado fsck.ext2, fsck.ext3 e fsck.ext4 (esses três são apenas links para e2fsck). Por padrão, ele é executado no modo interativo: quando um erro é encontrado no sistema de arquivos, ele para e pergunta ao usuário o que fazer. O usuário deve digitar y para corrigir o problema, n para deixá-lo sem solução ou a para corrigir o problema atual e todos os subsequentes.

É claro que sentar em frente a um terminal esperando o e2fsck perguntar o que fazer não é um uso produtivo do seu tempo, especialmente se você estiver lidando com um grande sistema de arquivos. Dessa forma, existem opções que fazem com que o e2fsck seja executado em modo não interativo:

-p

Essa opção tenta corrigir automaticamente quaisquer erros encontrados. Se for encontrado um erro que requeira intervenção do administrador do sistema, o e2fsck fornecerá uma descrição do problema e sairá.

-y

Responde y (sim) a todas as questões.

-n

O oposto de -y. Além de responder n (não) a todas as questões, faz com que o sistema de arquivos seja montado somente para leitura e, portanto, não possa ser modificado.

-f

Força o e2fsck a verificar um sistema de arquivos mesmo se ele estiver marcado como “limpo”, ou seja, que foi corretamente desmontado.

Ajustando um sistema de arquivos ext

Os sistemas de arquivos ext2, ext3 e ext4 têm diversos parâmetros que podem ser ajustados ou “refinados” pelo administrador do sistema para melhor atender às necessidades do sistema. O utilitário usado para exibir ou modificar esses parâmetros se chama tune2fs.

Para ver os parâmetros atuais de qualquer sistema de arquivos, use o parâmetro -l seguido pelo dispositivo que representa a partição. O exemplo abaixo mostra a saída desse comando na primeira partição do primeiro disco (/dev/sda1) de uma 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

Os sistemas de arquivos ext têm contagens de montagem. A contagem é aumentada em 1 a cada vez que o sistema de arquivos é montado, e quando um valor limite (a contagem máxima de montagem) é alcançado, o sistema será verificado automaticamente com e2fsck na próxima inicialização.

A contagem máxima de montagens pode ser definida com o parâmetro -c N, onde N é o número de vezes que o sistema de arquivos pode ser montado sem ser verificado. O parâmetro -C N define o número de vezes que o sistema foi montado com o valor de N. Observe que os parâmetros da linha de comando diferenciam maiúsculas de minúsculas, então -c é diferente de -C.

Também é possível definir um intervalo de tempo entre as verificações com o parâmetro -i, seguido por um número e as letras d para dias, m para meses e y para anos. Por exemplo, -i 10d verificaria o sistema de arquivos na reinicialização seguinte a cada 10 dias. Use zero como valor para desabilitar este recurso.

-L pode ser usado para definir um rótulo para o sistema de arquivos. Esse rótulo pode ter até 16 caracteres. O parâmetro -U define o UUID do sistema de arquivos, que é um número hexadecimal de 128 bits. No exemplo acima, o UUID é 6e2c12e3-472d-4bac-a257-c49ac07f3761. Tanto o rótulo quanto o UUID podem ser usados no lugar do nome do dispositivo (como /dev/sda1) para montar o sistema de arquivos.

A opção -e BEHAVIOUR define o comportamento do kernel quando um erro é encontrado no sistema de arquivos. Existem três comportamentos possíveis:

continue

Continua a execução normalmente.

remount-ro

Remonta o sistema de arquivos como somente leitura.

panic

Causa um kernel panic.

O comportamento padrão é continue. remount-ro pode ser útil em aplicativos com dados sensíveis, pois irá interromper imediatamente as gravações no disco, evitando mais erros potenciais.

Os sistemas de arquivos ext3 são basicamente sistemas de arquivos ext2 com um diário. Usando o tune2fs, podemos adicionar um diário a um sistema de arquivos ext2, convertendo-o assim em ext3. O procedimento é simples: basta passar o parâmetro -j para tune2fs, seguido do dispositivo que contém o sistema de arquivos:

# tune2fs -j /dev/sda1

Posteriormente, ao montar o sistema de arquivos convertido, não se esqueça de definir o tipo para ext3 para que o diário possa ser usado.

Ao lidar com sistemas de arquivos com journaling, o parâmetro -J permite usar parâmetros extras para definir algumas opções de diário, como -J size= para definir o tamanho do diário (em megabytes), -J location= para especificar onde o diário deve ser armazenado (seja um bloco específico ou uma posição específica no disco com sufixos como M ou G) e até mesmo colocar o diário em um dispositivo externo com -J device=.

Para especificar diversos parâmetros ao mesmo tempo, eles devem ser separados por vírgula. Por exemplo: -J size=10,location=100M,device=/dev/sdb1 criam um diário (Journal) de 10 MB na posição 100 MB do dispositivo /dev/sdb1.

Warning

O tune2fs tem uma opção de “força bruta”, -f, que o força a completar uma operação mesmo que sejam encontrados erros. Nem é preciso dizer que esse recurso deve ser usado com extrema cautela.

Manutenção de sistema de arquivos XFS

Para os sistemas de arquivos XFS, o equivalente a fsck é xfs_repair. Se você suspeitar que algo está errado com o sistema de arquivos, a primeira coisa a fazer é verificar se ocorreram danos.

Isso pode ser feito passando o parâmetro -n para xfs_repair, seguido pelo dispositivo que contém o sistema de arquivos. O parâmetro -n significa “no modify” : o sistema de arquivos será verificado e os erros relatados, mas nenhum reparo será feito:

# 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.

Se forem encontrados erros, você pode prosseguir com os reparos sem o parâmetro -n, da seguinte forma: xfs_repair /dev/sdb1.

xfs_repair aceita uma série de opções de linha de comando. Dentre elas:

-l LOGDEV and -r RTDEV

Necessários se o sistema de arquivos tem log externo e seções em tempo real. Neste caso, substitua LOGDEV e RTDEV pelos dispositivos correspondentes.

-m N

Usado para limitar o uso de memória de xfs_repair para N megabytes, algo que pode ser útil nas configurações do servidor. De acordo com a página do manual, por padrão xfs_repair adapta seu uso de memória conforme necessário, até 75% da RAM física do sistema.

-d

O modo “dangerous” (perigoso) permite reparar sistemas de arquivos montados como apenas leitura,

-v

Você deve ter adivinhado: modo verboso. Cada vez que este parâmetro é usado, a “verbosidade” é aumentada (por exemplo,-v -v imprime mais informações do que apenas -v).

Observe que xfs_repair não é capaz de reparar sistemas de arquivos com um log “sujo”. É possível “zerar” um log corrompido com o parâmetro -L, mas tenha em mente que este é um último recurso, pois pode resultar em corrupção do sistema de arquivos e perda de dados.

Para depurar um sistema de arquivos XFS, o utilitário xfs_db pode ser usado, como em xfs_db /dev/sdb1. Ele serve principalmente para inspecionar diversos elementos e parâmetros do sistema de arquivos.

Este utilitário tem um prompt interativo, como o parted, com muitos comandos internos. Um sistema de ajuda também está disponível: digite help para ver uma lista de todos os comandos, e help seguido do nome do comando para ver mais informações sobre o comando.

Outro utilitário útil é o xfs_fsr, que pode ser usado para reorganizar (“desfragmentar”) um sistema de arquivos XFS. Quando executado sem nenhum argumento extra, ele roda por duas horas e tenta desfragmentar todos os sistemas de arquivos XFS graváveis e montados listados no arquivo /etc/mtab/. Pode ser necessário instalar esse utilitário usando o gerenciador de pacotes de sua distribuição Linux, pois ele nem sempre faz parte de uma instalação padrão. Para obter mais informações, consulte a página do manual correspondente.

Exercícios Guiados

  1. Usando du, como podemos verificar quanto espaço está sendo usado apenas pelos arquivos no diretório atual?

  2. Usando df, liste as informações de cada sistema de arquivos ext4, incluindo na saída os seguintes campos, nesta ordem: dispositivo, ponto de montagem, número total de inodes, número de inodes disponíveis, porcentagem de espaço livre.

  3. Qual é o comando para executar o e2fsck em /dev/sdc1 no modo não interativo, tentando corrigir automaticamente a maioria dos erros?

  4. Suponha que /dev/sdb1 seja um sistema de arquivos ext2. Como podemos convertê-lo para ext3 e, ao mesmo tempo, redefinir sua contagem de montagens e alterar seu rótulo para UserData?

  5. Como verificar se há erros em um sistema de arquivos XFS, sem reparar qualquer dano encontrado?

Exercícios Exploratórios

  1. Considere um sistema de arquivos ext4 em /dev/sda1 com os parâmetros a seguir, obtidos com tune2fs:

    Mount count:              8
    Maximum mount count:      -1

    O que acontecerá na próxima inicialização se o comando tune2fs -c 9 /dev/sda1 for emitido?

  2. Considere a saída a seguir de du -h:

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

    Quanto espaço está ocupado apenas pelos arquivos no diretório atual? Como poderíamos reescrever o comando para mostrar essas informações com mais clareza?

  3. O que aconteceria ao sistema de arquivos ext2 /dev/sdb1 se o comando abaixo fosse emitido?

    # tune2fs -j /dev/sdb1 -J device=/dev/sdc1 -i 30d
  4. Como podemos verificar se há erros em um sistema de arquivos XFS em /dev/sda1 que tem uma seção de log em /dev/sdc1, mas sem fazer nenhum reparo?

  5. Qual a diferença entre os parâmetros -T e -t do df?

Resumo

Nesta lição, você aprendeu:

  • Como verificar o espaço usado e livre em um sistema de arquivos.

  • Como ajustar a saída de df para atender às suas necessidades.

  • Como verificar a integridade e reparar um sistema de arquivos com fsck e e2fsck.

  • Como ajustar um sistema de arquivos ext com tune2fs.

  • Como verificar e reparar sistemas de arquivos XFS com xfs_repair.

Os seguintes comandos foram abordados nesta lição:

du

Exibe a quantidade de espaço em disco em uso em um sistema de arquivos.

df

Exibe a quantidade de espaço em disco disponível (livre) em um sistema de arquivos.

fsck

Utilitário para verificação de erros do sistema de arquivos.

e2fsck

Utilitário para verificação de erros específico aos sistemas de arquivos estendidos (ext2/3/4).

tune2fs

Modifica parâmetros do sistema de arquivos em um sistema de arquivos estendido (ext2/3/4).

xfs_repair

Equivalente a fsck para sistemas de arquivos XFS.

xfs_db

Utilitário usado para visualizar diversos parâmetros de um sistema de arquivos XFS.

Respostas aos Exercícios Guiados

  1. Usando du, como podemos verificar quanto espaço está sendo usado apenas pelos arquivos no diretório atual?

    Primeiro, use o parâmetro -S para separar a saída do diretório atual de seus subdiretórios. Em seguida, use -d 0 para limitar a profundidade da saída a zero, indicando “sem subdiretórios”. Não se esqueça do -h para obter uma saída em formato “legível para humanos”:

    $ du -S -h -d 0

    or

    $ du -Shd 0
  2. Usando df, liste as informações de cada sistema de arquivos ext4, incluindo na saída os seguintes campos, nesta ordem: dispositivo, ponto de montagem, número total de inodes, número de inodes disponíveis, porcentagem de espaço livre.

    Podemos filtrar sistemas de arquivos com a opção -t seguida pelo nome do sistema de arquivos. Para obter a saída necessária, use --output=source,target,itotal,iavail,pcent. Assim, a resposta é:

    $ df -t ext4 --output=source,target,itotal,iavail,pcent
  3. Qual é o comando para executar o e2fsck em /dev/sdc1 no modo não interativo, tentando corrigir automaticamente a maioria dos erros?

    O parâmetro para tentar corrigir automativamente a maioria dos erros é -p. Então, a resposta é:

    # e2fsck -p /dev/sdc1
  4. Suponha que /dev/sdb1 seja um sistema de arquivos ext2. Como podemos convertê-lo para ext3 e, ao mesmo tempo, redefinir sua contagem de montagens e alterar seu rótulo para UserData?

    Lembre-se de que para converter um sistema de arquivos ext2 em ext3 basta adicionar um diário, o que pode ser feito com o parâmetro -j. Para redefinir a contagem de montagem, use -c 0. Para alterar o rótulo use -L UserData. A resposta correta é:

    # tune2fs -j -c 0 -L UserData /dev/sdb1
  5. Como verificar se há erros em um sistema de arquivos XFS, sem reparar qualquer dano encontrado?

    Use o parâmetro -n parameter, como em xfs -n, seguido pelo dispositivo correspondente.

Respostas aos Exercícios Exploratórios

  1. Considere um sistema de arquivos ext4 em /dev/sda1 com os parâmetros a seguir, obtidos com tune2fs:

    Mount count:              8
    Maximum mount count:      -1

    O que acontecerá na próxima inicialização se o comando tune2fs -c 9 /dev/sda1 for emitido?

    O comando define a contagem de montagem máxima do sistema de arquivos para 9. Como a contagem atual de montagem é 8, a próxima inicialização do sistema causará uma verificação do sistema de arquivos.

  2. Considere a saída a seguir de du -h:

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

    Quanto espaço está ocupado apenas pelos arquivos no diretório atual? Como poderíamos reescrever o comando para mostrar essas informações com mais clareza?

    Do total de 232 K usados, 224 K são ocupados pelo diretório somedir e seus subdiretórios. Assim, se excluirmos esses, restam 8K sendo ocupados pelos arquivos no diretório atual. Essa informação pode ser exibida mais claramente com o parâmetro -S, que separa os diretórios na contagem.

  3. O que aconteceria ao sistema de arquivos ext2 /dev/sdb1 se o comando abaixo fosse emitido?

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

    Um diário seria adicionado a /dev/sdb1, convertendo-o em ext3. O diário será armazenado no dispositivo /dev/sdc1 e o sistema de arquivos será verificado a cada 30 dias.

  4. Como podemos verificar se há erros em um sistema de arquivos XFS em /dev/sda1 que tem uma seção de log em /dev/sdc1, mas sem fazer nenhum reparo?

    Use xfs_repair, seguido por -l /dev/sdc1 para indicar o dispositivo que contém a seção de log e -n para evitar que sejam feitas alterações.

    # xfs_repair -l /dev/sdc1 -n
  5. Qual a diferença entre os parâmetros -T e -t do df?

    O parâmetro -T inclui o tipo de cada sistema de arquivos na saída de df. -t é um filtro e mostra apenas sistemas de arquivos do tipo solicitado na saída, excluindo todos os outros.

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

Próxima Lição

104.3 Controle da montagem e desmontagem dos sistemas de arquivos (104.3 Lição 1)

Ir para a próxima lição

Linux Professional Insitute Inc. Todos os direitos reservados. Visite o site dos Materiais Didáticos: https://learning.lpi.org
31/5000 Este trabalho está licenciado sob a Licença Creative Commons Atribuição-Uso Não-Comercial-NãoDerivativos 4.0 Internacional.

A LPI é uma organização sem fins lucrativos.

© 2023 O Linux Professional Institute (LPI) é um organismo de apoio aos profissionais de Open Source e referência mundial em certificação. Com mais de 200.000 pessoas certificadas, somos o principal organismo de certificação independente para Linux e Open Source do mundo. O LPI certificou profissionais de mais de 180 países, oferece exames em diversos idiomas e tem centenas de parcerias de formação em todo o globo.

Nossa missão é proporcionar oportunidades econômicas e criativas para todos, tornando universalmente acessível a certificação de conhecimentos e competências em matéria de Open Source.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Entre em Contato
  • Política de Privacidade e Cookies

Encontrou um erro ou quer ajudar a aprimorar esta página? Escreva pra nós.

© 1999–2023 The Linux Professional Institute Inc. Todos os direitos reservados.