Introdução
Bem-vindo a este laboratório sobre Sistema de Arquivos e Gerenciamento de Disco no Linux! Este laboratório foi projetado para iniciantes que estão começando a explorar o mundo da administração de sistemas Linux. Vamos guiá-lo através de comandos e conceitos essenciais relacionados ao gerenciamento de espaço em disco, criação de discos virtuais e manutenção de sistemas de arquivos. Ao final deste laboratório, você terá experiência prática com ferramentas fundamentais de gerenciamento de disco no Linux.
Visualizando o Uso do Disco com df
O comando df (disk free) é a sua ferramenta principal para verificar o uso de espaço em disco no seu sistema Linux. Vamos explorar como utilizá-lo:
Abra o seu terminal. Você deve estar no diretório
/home/labex/project. Se não tiver certeza, você sempre pode verificar seu diretório atual com o comandopwd.Execute o seguinte comando para visualizar o uso do disco:
dfVocê verá uma saída semelhante a esta:
Filesystem 1K-blocks Used Available Use% Mounted on overlay 20971520 128744 20842776 1% / tmpfs 65536 0 65536 0% /dev tmpfs 3995004 0 3995004 0% /sys/fs/cgroup shm 65536 0 65536 0% /dev/shm /dev/nvme1n1 104806400 57754052 47052348 56% /etc/hostsNão se preocupe se isso parecer confuso no início! Vamos detalhar:
Filesystem: Esta coluna mostra o nome do disco ou partição.1K-blocks: Este é o tamanho total do sistema de arquivos em blocos de 1 quilobyte.Used: Mostra quanto espaço está sendo usado atualmente.Available: Mostra quanto espaço livre ainda resta.Use%: Mostra a porcentagem do sistema de arquivos que está em uso.Mounted on: Mostra onde, na árvore de diretórios, o sistema de arquivos está montado.
Agora, vamos tornar esta saída mais legível para humanos. Execute:
df -hA opção
-hsignifica "human-readable" (legível por humanos). Você verá uma saída como esta:Filesystem Size Used Avail Use% Mounted on overlay 20G 126M 20G 1% / tmpfs 64M 0 64M 0% /dev tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup shm 64M 0 64M 0% /dev/shm /dev/nvme1n1 100G 56G 45G 56% /etc/hostsMuito melhor, certo? Agora os tamanhos estão em GB e MB, o que é mais fácil de entender.
Se você quiser verificar o espaço usado pelo sistema de arquivos que contém um arquivo ou diretório específico, você pode passar esse caminho para o
df:df -h /etc/hostsIsso mostrará informações apenas para o sistema de arquivos que contém o
/etc/hosts. Neste ambiente, esse sistema de arquivos é normalmente o/dev/nvme1n1.
O comando df é extremamente útil para verificar rapidamente quanto espaço em disco você ainda tem. Se você encontrar problemas onde o sistema diz que está ficando sem espaço, o df é frequentemente o primeiro comando que você usará para investigar.
Examinando Tamanhos de Diretórios com du
Enquanto o df nos dá uma visão geral do uso do disco, às vezes precisamos investigar mais a fundo. É aí que entra o du (disk usage). Ele nos ajuda a entender quais diretórios e arquivos estão ocupando mais espaço.
Vamos começar usando o
duem sua forma mais simples. Execute:du ~Você verá uma longa lista de números e nomes de diretórios. Cada número representa o tamanho do diretório em kilobytes. Isso pode ser exaustivo, então vamos tornar mais gerenciável.
Para uma saída mais legível, use a opção
-h:du -h ~A opção
-h, assim como nodf, torna a saída legível para humanos. Você verá tamanhos em KB, MB ou GB, conforme apropriado.Frequentemente, queremos apenas saber o tamanho total de um diretório. Para isso, use:
du -sh ~Aqui,
-ssignifica "summarize" (resumir) e~representa seu diretório pessoal (home). Este comando mostrará o tamanho total de tudo dentro do seu diretório home.Para visualizar os tamanhos dos subdiretórios imediatos no seu diretório home, use:
du -h --max-depth=1 ~Isso mostra o tamanho de cada subdiretório em um nível de profundidade. A opção
--max-depth=1limita o quanto oduirá recursivamente entrar nos subdiretórios.Vamos verificar o tamanho dos itens no seu diretório home:
du -sh ~/*Isso mostrará o tamanho de cada arquivo e diretório não oculto diretamente sob seu diretório home.
Aqui está um comando poderoso para encontrar os maiores itens no seu diretório home:
du -h ~ | sort -rh | head -n 10Vamos detalhar:
du -h ~lista todos os arquivos e diretórios no seu diretório home com seus tamanhossort -rhordena esta lista em ordem reversa (maiores primeiro) e em formato legível para humanoshead -n 10mostra apenas as primeiras 10 linhas da saída|é um pipe, que passa a saída de um comando como entrada para o próximo
Este comando é um ótimo exemplo de como podemos combinar comandos simples do Linux para realizar operações mais complexas.
O comando du é inestimável quando você está tentando liberar espaço em disco. Ele ajuda a identificar quais diretórios ou arquivos estão ocupando mais espaço, para que você saiba onde focar seus esforços de limpeza.
Criando e Gerenciando um Disco Virtual
Antes de começarmos, vamos entender o que é um disco virtual. Um disco virtual é simplesmente um arquivo que atua como uma unidade de disco física. Pense nele como a criação de um arquivo contêiner que o sistema operacional pode tratar como se fosse um disco rígido real. Isso é semelhante a como máquinas virtuais usam arquivos de disco virtual para armazenar seus dados.
Por que faríamos isso? Discos virtuais são úteis para:
- Testar operações de disco com segurança sem arriscar o hardware real
- Criar espaços de armazenamento isolados
- Aprender sobre gerenciamento de disco sem precisar de hardware físico adicional
- Criar imagens de backup de discos reais
Entendendo Conceitos Chave
Antes de prosseguirmos com a parte prática, vamos entender alguns conceitos importantes:
Sistema de Arquivos (Filesystem): Pense em um sistema de arquivos como a forma como arquivos e pastas são organizados em um disco. É como um sistema de arquivamento em um escritório - ele determina como os dados são armazenados e recuperados. Sistemas de arquivos comuns no Linux incluem ext4 (que usaremos), XFS e btrfs.
Montagem (Mounting): Montar é o processo de tornar um sistema de arquivos acessível ao sistema operacional. Quando você monta um sistema de arquivos, você está dizendo ao Linux: "disponibilize o conteúdo deste disco neste diretório específico". É semelhante a:
- Conectar um pendrive (a conexão física)
- Depois dizer ao computador onde mostrar seu conteúdo (o ponto de montagem)
Partições: Uma partição é uma seção de um disco que é tratada como uma unidade separada. Pense nisso como dividir um grande disco rígido em seções menores e independentes. As razões para particionar incluem:
- Separar arquivos do sistema de arquivos do usuário
- Usar diferentes sistemas de arquivos para diferentes propósitos
- Facilitar backups
- Limitar o impacto de falhas no disco
Vamos criar e trabalhar com um disco virtual:
Primeiro, vamos criar um disco virtual de 256MB usando o comando
dd:dd if=/dev/zero of=virtual.img bs=1M count=256Vamos detalhar este comando:
ddé um utilitário para copiar e converter arquivosif=/dev/zerosignifica "input file is /dev/zero" (um arquivo especial que fornece zeros infinitos)of=virtual.imgsignifica "output file is virtual.img" (nosso novo arquivo de disco virtual)bs=1Mdefine o tamanho do bloco para 1 megabyte (quanto dado copiar de uma vez)count=256significa copiar 256 blocos (resultando em um arquivo de 256MB)
Isso cria um arquivo vazio preenchido com zeros que usaremos como nosso disco virtual.
Verifique o tamanho do arquivo:
ls -lh virtual.imgVocê deve ver que
virtual.imgtem exatamente 256MB.Agora, vamos formatar este disco virtual com um sistema de arquivos ext4:
sudo mkfs.ext4 virtual.imgO que está acontecendo aqui? Este comando:
- Cria um novo sistema de arquivos ext4 dentro do nosso arquivo de disco virtual
- Configura a estrutura básica necessária para armazenar arquivos e diretórios
- É semelhante a formatar um novo pendrive antes do primeiro uso
O sistema de arquivos ext4 é o padrão para muitas distribuições Linux porque é confiável e bem testado.
Em seguida, precisamos criar um ponto de montagem. Este é o diretório onde o conteúdo do nosso disco virtual aparecerá:
sudo mkdir /mnt/virtualdiskPense em um ponto de montagem como uma "janela" para o seu disco virtual. Após a montagem, quando você olhar para este diretório, você estará vendo o conteúdo do disco virtual.
Agora podemos montar o disco virtual:
sudo mount -o loop virtual.img /mnt/virtualdiskVamos detalhar o que está acontecendo:
- A opção
-o loopdiz ao Linux para tratar nosso arquivo como se fosse um dispositivo de disco real virtual.imgé nossa fonte (o disco virtual que criamos)/mnt/virtualdiské onde queremos que o conteúdo apareça
Isso é semelhante ao que acontece automaticamente quando você conecta um pendrive, exceto que estamos fazendo manualmente com nosso arquivo de disco virtual.
- A opção
Vamos verificar se o disco está montado:
mount | grep virtualdiskVocê deve ver uma linha indicando que
virtual.imgestá montado em/mnt/virtualdisk.Agora que está montado, podemos usá-lo como qualquer outro diretório. Vamos criar um arquivo:
sudo touch /mnt/virtualdisk/testfile ls /mnt/virtualdiskVocê deve ver
testfilelistado.Quando terminar de usar o disco virtual, você deve desmontá-lo:
sudo umount /mnt/virtualdiskDesmontar remove o sistema de arquivos daquele diretório, garantindo que o sistema operacional finalize todas as operações de leitura e escrita pendentes antes de desconectá-lo. Não desmontar corretamente pode levar à corrupção de dados. Embora a sintaxe do comando foque em desmontar o diretório, internamente, o sistema operacional sabe que este diretório corresponde à imagem de disco montada.
Este processo de criar, formatar e montar um disco virtual é muito semelhante ao que acontece quando você conecta um novo disco rígido ou pendrive. A principal diferença é que estamos fazendo tudo com um arquivo em vez de um dispositivo físico.
Montar um sistema de arquivos significa anexá-lo a um diretório especificado para que o sistema operacional possa acessar os dados dentro do sistema de arquivos. Neste laboratório, o arquivo de imagem do disco virtual é tratado como se fosse um disco físico, e a montagem torna seu conteúdo disponível em um diretório específico (por exemplo, /mnt/virtualdisk).
Gerenciando Partições de Disco com fdisk
Em um sistema real, antes de criar um sistema de arquivos, você geralmente precisa criar partições. Embora não possamos modificar partições de disco reais neste ambiente virtual, podemos explorar como usar o fdisk para visualizar informações de partição.
Primeiro, vamos visualizar informações sobre todas as partições de disco:
sudo fdisk -lIsso exibirá informações sobre todos os dispositivos de disco e suas partições. Você verá detalhes sobre o tamanho do disco, número de setores e a tabela de partição.
Agora, vamos ver as informações de partição do nosso disco virtual:
sudo fdisk -l virtual.imgIsso mostrará a tabela de partição do disco virtual. Como criamos o sistema de arquivos diretamente na imagem do disco sem particionar, você pode ver uma mensagem dizendo que ele não contém uma tabela de partição válida.
Em um sistema real, você usaria o fdisk interativamente para criar, excluir ou modificar partições. Aqui está uma breve visão geral de como isso funcionaria:
- Você iniciaria o
fdiskcomsudo fdisk /dev/sdX(substitua X pela letra apropriada do disco que deseja particionar) - Você usaria o comando 'n' para criar uma nova partição
- 'd' excluiria uma partição
- 't' alteraria o ID do sistema de uma partição (que indica o uso pretendido da partição)
- 'w' gravaria as alterações e sairia
Lembre-se, modificar partições pode levar à perda de dados, portanto, sempre tenha cuidado e faça backup de dados importantes antes de fazer alterações nas partições do disco.
O Fdisk não se limita a exibir informações de partição. Ele também pode criar, excluir e modificar partições de disco interativamente. Embora seja uma ferramenta essencial para particionamento de disco, seja cauteloso ao usar o fdisk para alterar partições em um sistema que contém dados críticos; alterações inadequadas podem levar à perda de dados.
Resumo
Parabéns! Neste laboratório, você aprendeu como:
- Visualizar o uso do disco com
df - Examinar tamanhos de diretórios com
du - Criar, formatar, montar e desmontar um disco virtual
- Visualizar informações de partição com
fdisk
Essas habilidades formam uma base para tarefas mais avançadas de administração de sistemas Linux. Elas são cruciais para gerenciar o armazenamento, solucionar problemas de espaço em disco e manter a saúde do sistema de arquivos em sistemas Linux.
Como um desafio extra, tente escrever um script shell que encontre os 10 maiores arquivos ou diretórios no seu diretório home e exiba seus tamanhos em formato legível para humanos. Isso combinará vários dos comandos que você aprendeu neste laboratório.
Lembre-se, a prática é a chave para dominar esses conceitos. Não hesite em experimentar esses comandos (em um ambiente seguro) para aprofundar seu entendimento. Boa sorte em sua jornada contínua de aprendizado em administração de sistemas Linux!



