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: |
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 |
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 |
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 respondern
(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 |
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
eRTDEV
pelos dispositivos correspondentes. -m N
-
Usado para limitar o uso de memória de
xfs_repair
paraN
megabytes, algo que pode ser útil nas configurações do servidor. De acordo com a página do manual, por padrãoxfs_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
-
Usando
du
, como podemos verificar quanto espaço está sendo usado apenas pelos arquivos no diretório atual? -
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. -
Qual é o comando para executar o
e2fsck
em/dev/sdc1
no modo não interativo, tentando corrigir automaticamente a maioria dos erros? -
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 paraUserData
? -
Como verificar se há erros em um sistema de arquivos XFS, sem reparar qualquer dano encontrado?
Exercícios Exploratórios
-
Considere um sistema de arquivos ext4 em
/dev/sda1
com os parâmetros a seguir, obtidos comtune2fs
: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? -
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?
-
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
-
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? -
Qual a diferença entre os parâmetros
-T
e-t
dodf
?
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
ee2fsck
. -
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
-
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
-
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
-
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
-
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 paraUserData
?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
-
Como verificar se há erros em um sistema de arquivos XFS, sem reparar qualquer dano encontrado?
Use o parâmetro
-n
parameter, como emxfs -n
, seguido pelo dispositivo correspondente.
Respostas aos Exercícios Exploratórios
-
Considere um sistema de arquivos ext4 em
/dev/sda1
com os parâmetros a seguir, obtidos comtune2fs
: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.
-
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. -
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. -
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
-
Qual a diferença entre os parâmetros
-T
e-t
dodf
?O parâmetro
-T
inclui o tipo de cada sistema de arquivos na saída dedf
.-t
é um filtro e mostra apenas sistemas de arquivos do tipo solicitado na saída, excluindo todos os outros.