Pesquisa de site

4 ferramentas para gerenciar a saúde EXT2, EXT3 e EXT4 no Linux


Um sistema de arquivos é uma estrutura de dados que ajuda a controlar como os dados são armazenados e recuperados em um sistema de computador. Um sistema de arquivos também pode ser considerado uma partição física (ou estendida) de um disco. Se não for bem mantido e monitorado regularmente, pode ser danificado ou corrompido a longo prazo, de muitas maneiras diferentes.

Existem vários fatores que podem fazer com que um sistema de arquivos se torne insalubre: falhas no sistema, mau funcionamento de hardware ou software, drivers e programas com bugs, ajuste incorreto, sobrecarga com dados excessivos e outras pequenas falhas.

Qualquer um desses problemas pode fazer com que o Linux não monte (ou desmonte) um sistema de arquivos normalmente, causando falha no sistema.

Leia também: 7 maneiras de determinar o tipo de sistema de arquivos no Linux (Ext2, Ext3 ou Ext4)

Além disso, executar o sistema com um sistema de arquivos prejudicado pode dar origem a outros erros de tempo de execução nos componentes do sistema operacional ou nos aplicativos do usuário, o que pode resultar em grave perda de dados. Para evitar corrupção ou danos ao sistema de arquivos, você precisa ficar de olho em sua integridade.

Neste artigo, abordaremos ferramentas para monitorar e manter a integridade dos sistemas de arquivos ext2, ext3 e ext4. Todas as ferramentas descritas aqui requerem privilégios de usuário root, portanto use o comando sudo para executá-las.

Como visualizar informações do sistema de arquivos EXT2/EXT3/EXT4

dumpe2fs é uma ferramenta de linha de comando usada para despejar informações do sistema de arquivos ext2/ext3/ext4, o que significa que exibe superblocos e bloqueia informações de grupo para o sistema de arquivos no dispositivo.

Antes de executar dumpe2fs, certifique-se de executar o comando df -hT para saber os nomes dos dispositivos do sistema de arquivos.

sudo dumpe2fs /dev/sda10
Saída de amostra
dumpe2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks
Journal features:         journal_incompat_revoke
Journal size:             128M
Journal length:           32768
Journal sequence:         0x00580f0c
Journal start:            12055

Você pode passar o sinalizador -b para exibir quaisquer blocos reservados como ruins no sistema de arquivos (nenhuma saída implica em badblocks):

dumpe2fs -b

Verificando erros nos sistemas de arquivos EXT2/EXT3/EXT4

e2fsck é usado para examinar sistemas de arquivos ext2/ext3/ext4 em busca de erros e verificações fsck e pode opcionalmente reparar um sistema de arquivos Linux; é basicamente um front-end para uma variedade de verificadores de sistema de arquivos (fsck.fstype por exemplo fsck.ext3, fsck.sfx etc) oferecidos no Linux.

Lembre-se de que o Linux executa e2fack/fsck automaticamente na inicialização do sistema em partições rotuladas para verificação no arquivo de configuração /etc/fstab. Isso normalmente é feito depois que um sistema de arquivos não foi desmontado corretamente.

Atenção: Não execute e2fsck ou fsck em sistemas de arquivos montados, sempre desmonte uma partição antes de poder executar essas ferramentas nele, conforme mostrado abaixo.

sudo unmount /dev/sda10
sudo fsck /dev/sda10

Como alternativa, habilite a saída detalhada com a opção -V e use -t para especificar um tipo de sistema de arquivos como este:

sudo fsck -Vt ext4 /dev/sda10

Ajustando sistemas de arquivos EXT2/EXT3/EXT4

Mencionamos desde o início que uma das causas dos danos ao sistema de arquivos é o ajuste incorreto. Você pode usar o utilitário tune2fs para alterar os parâmetros ajustáveis dos sistemas de arquivos ext2/ext3/ext4 conforme explicado abaixo.

Para ver o conteúdo do superbloco do sistema de arquivos, incluindo os valores atuais dos parâmetros, use a opção -l conforme mostrado.

sudo tune2fs -l /dev/sda10
Saída de amostra
tune2fs 1.42.13 (17-May-2015)
Filesystem volume name:   
Last mounted on:          /
Filesystem UUID:          bb29dda3-bdaa-4b39-86cf-4a6dc9634a1b
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              21544960
Block count:              86154752
Reserved block count:     4307737
Free blocks:              22387732
Free inodes:              21026406
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      1003
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 10:25:19 2017
Mount count:              432
Maximum mount count:      -1
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           0 ()
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

A seguir, usando o sinalizador -c, você pode definir o número de montagens após as quais o sistema de arquivos será verificado pelo e2fsck. Este comando instrui o sistema a executar o e2fsck em /dev/sda10 após cada 4 montagens.

sudo tune2fs -c 4 /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting maximal mount count to 4

Você também pode definir o tempo entre duas verificações do sistema de arquivos com a opção -i. O comando a seguir define um intervalo de 2 dias entre verificações do sistema de arquivos.

sudo tune2fs  -i  2d  /dev/sda10

tune2fs 1.42.13 (17-May-2015)
Setting interval between checks to 172800 seconds

Agora, se você executar o comando abaixo, o intervalo de verificação do sistema de arquivos para /dev/sda10 será definido.

sudo tune2fs -l /dev/sda10
Saída de amostra
Filesystem created:       Sun Jul 31 16:19:36 2016
Last mount time:          Mon Nov  6 10:25:28 2017
Last write time:          Mon Nov  6 13:49:50 2017
Mount count:              432
Maximum mount count:      4
Last checked:             Sun Jul 31 16:19:36 2016
Check interval:           172800 (2 days)
Next check after:         Tue Aug  2 16:19:36 2016
Lifetime writes:          2834 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
First orphan inode:       6947324
Default directory hash:   half_md4
Directory Hash Seed:      9da5dafb-bded-494d-ba7f-5c0ff3d9b805
Journal backup:           inode blocks

Para alterar os parâmetros de registro no diário padrão, use a opção -J. Esta opção também possui subopções: size=journal-size (define o tamanho do diário), device=external-journal (especifica o dispositivo no qual ele está armazenado) e location=journal-location (define a localização do diário).

Observe que apenas uma das opções de tamanho ou dispositivo pode ser definida para um sistema de arquivos:

sudo tune2fs -J size=4MB /dev/sda10

Por último, mas não menos importante, o rótulo do volume de um sistema de arquivos pode ser definido usando a opção -L conforme abaixo.

sudo tune2fs -L "ROOT" /dev/sda10

Depurar sistemas de arquivos EXT2/EXT3/EXT4

debugfs é um depurador de sistemas de arquivos ext2/ext3/ext4 simples e interativo baseado em linha de comando. Ele permite modificar os parâmetros do sistema de arquivos de forma interativa. Para visualizar subcomandos ou solicitações, digite "?".

sudo debugfs /dev/sda10

Por padrão, o sistema de arquivos deve ser aberto no modo leitura-gravação, use o sinalizador -w para abri-lo no modo leitura-gravação. Para abri-lo em modo catastrófico, use a opção -c.

Saída de amostra
debugfs 1.42.13 (17-May-2015)
debugfs:  ?
Available debugfs requests:

show_debugfs_params, params
                         Show debugfs parameters
open_filesys, open       Open a filesystem
close_filesys, close     Close the filesystem
freefrag, e2freefrag     Report free space fragmentation
feature, features        Set/print superblock features
dirty_filesys, dirty     Mark the filesystem as dirty
init_filesys             Initialize a filesystem (DESTROYS DATA)
show_super_stats, stats  Show superblock statistics
ncheck                   Do inode->name translation
icheck                   Do block->inode translation
change_root_directory, chroot
....

Para mostrar a fragmentação do espaço livre, use a solicitação freefrag, assim.

debugfs: freefrag
Saída de amostra
Device: /dev/sda10
Blocksize: 4096 bytes
Total blocks: 86154752
Free blocks: 22387732 (26.0%)

Min. free extent: 4 KB 
Max. free extent: 2064256 KB
Avg. free extent: 2664 KB
Num. free extent: 33625

HISTOGRAM OF FREE EXTENT SIZES:
Extent Size Range :  Free extents   Free Blocks  Percent
    4K...    8K-  :          4883          4883    0.02%
    8K...   16K-  :          4029          9357    0.04%
   16K...   32K-  :          3172         15824    0.07%
   32K...   64K-  :          2523         27916    0.12%
   64K...  128K-  :          2041         45142    0.20%
  128K...  256K-  :          2088         95442    0.43%
  256K...  512K-  :          2462        218526    0.98%
  512K... 1024K-  :          3175        571055    2.55%
    1M...    2M-  :          4551       1609188    7.19%
    2M...    4M-  :          2870       1942177    8.68%
    4M...    8M-  :          1065       1448374    6.47%
    8M...   16M-  :           364        891633    3.98%
   16M...   32M-  :           194        984448    4.40%
   32M...   64M-  :            86        873181    3.90%
   64M...  128M-  :            77       1733629    7.74%
  128M...  256M-  :            11        490445    2.19%
  256M...  512M-  :            10        889448    3.97%
  512M... 1024M-  :             2        343904    1.54%
    1G...    2G-  :            22      10217801   45.64%
debugfs:  

Você pode explorar muitas outras solicitações, como criar ou remover arquivos ou diretórios, alterar o diretório de trabalho atual e muito mais, simplesmente lendo a breve descrição fornecida. Para sair do debugfs, use a solicitação q.

É tudo por agora! Temos uma coleção de artigos relacionados em diferentes categorias abaixo, que você achará úteis.

Informações de uso do sistema de arquivos:

  1. 12 comandos “df” úteis para verificar o espaço em disco no Linux
  2. Pydf, um comando alternativo “df” para verificar o uso do disco em cores diferentes
  3. 10 comandos du (uso de disco) úteis para localizar o uso de arquivos e diretórios no disco

Verifique a integridade do disco ou partição:

  1. 3 ferramentas úteis de verificação de disco Linux baseadas em GUI e terminal
  2. Como verificar setores ou blocos defeituosos no disco rígido no Linux
  3. Como reparar e desfragmentar partições e diretórios do sistema Linux

Manter um sistema de arquivos íntegro sempre melhora o desempenho geral do seu sistema Linux. Se você tiver alguma dúvida ou opinião adicional para compartilhar, use o formulário de comentários abaixo.