Gerenciamento de Disco e Sistema de Arquivos

LinuxBeginner
Pratique Agora

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 as ferramentas fundamentais de gerenciamento de disco do 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:

  1. 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 comando pwd.

  2. Execute o seguinte comando para visualizar o uso do disco:

    df

    Você 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/vdb       104806400  57754052  47052348  56% /etc/hosts

    Nã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 kilobyte.
    • Used: Mostra quanto espaço está sendo usado no momento.
    • Available: Mostra quanto espaço livre 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.
  3. Agora, vamos tornar essa saída mais legível para humanos. Execute:

    df -h

    A opção -h significa "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/vdb        100G   56G   45G  56% /etc/hosts

    Muito melhor, certo? Agora os tamanhos estão em GB e MB, o que é mais fácil de entender.

  4. Se você quiser verificar o espaço em um sistema de arquivos específico, você pode especificá-lo:

    df -h /dev/vdb

    Isso mostrará informações apenas para o sistema de arquivos /dev/vdb.

O comando df é incrivelmente ú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 o Tamanho de Diretórios com du

Enquanto o df nos dá uma visão geral do uso do disco, às vezes precisamos nos aprofundar. É aí que entra o du (disk usage). Ele nos ajuda a entender quais diretórios e arquivos estão ocupando mais espaço.

  1. Vamos começar usando o du em 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 cansativo, então vamos torná-lo mais gerenciável.

  2. Para uma saída mais legível, use a opção -h:

    du -h ~

    A opção -h, assim como no df, torna a saída legível para humanos. Você verá tamanhos em KB, MB ou GB conforme apropriado.

  3. Frequentemente, queremos apenas saber o tamanho total de um diretório. Para isso, use:

    du -sh ~

    Aqui, -s significa "summarize" (resumir) e ~ representa seu diretório home. Este comando mostrará o tamanho total de tudo o que está no seu diretório home.

  4. Para visualizar os tamanhos dos subdiretórios imediatos no seu 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=1 limita o quanto o du percorrerá os subdiretórios.

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

  6. Aqui está um comando poderoso para encontrar os maiores itens no seu diretório home:

    du -h ~ | sort -rh | head -n 10

    Vamos detalhar:

    • du -h ~ lista todos os arquivos e diretórios no seu home com seus tamanhos.
    • sort -rh ordena esta lista em ordem reversa (maiores primeiro) e em formato legível por humanos.
    • head -n 10 mostra 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 nisso como a criação de um arquivo de contêiner que o sistema operacional pode tratar como se fosse um disco rígido real. Isso é semelhante a como as 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:

  1. Sistema de Arquivos (Filesystem): Pense em um sistema de arquivos como a maneira 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 do Linux incluem ext4 (que usaremos), XFS e btrfs.

  2. Montagem (Mounting): Montagem é o processo de tornar um sistema de arquivos acessível ao sistema operacional. Quando você monta um sistema de arquivos, está dizendo ao Linux: "torne o conteúdo deste disco disponível neste diretório específico". É semelhante a:

    • Conectar um pendrive (a conexão física).
    • Em seguida, dizer ao computador onde mostrar seu conteúdo (o ponto de montagem).
  3. Partições: Uma partição é uma seção de um disco que é tratada como uma unidade separada. Pense nisso como dividir um disco rígido grande em seções menores e independentes. Razões para o particionamento 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:

  1. Primeiro, vamos criar um disco virtual de 256MB usando o comando dd:

    dd if=/dev/zero of=virtual.img bs=1M count=256

    Vamos detalhar este comando:

    • dd é um utilitário para copiar e converter arquivos.
    • if=/dev/zero significa "input file is /dev/zero" (um arquivo especial que fornece zeros infinitos).
    • of=virtual.img significa "output file is virtual.img" (nosso novo arquivo de disco virtual).
    • bs=1M define o tamanho do bloco para 1 megabyte (quanta informação copiar de uma vez).
    • count=256 significa copiar 256 blocos (resultando em um arquivo de 256MB).

    Isso cria um arquivo vazio preenchido com zeros que usaremos como nosso disco virtual.

  2. Verifique o tamanho do arquivo:

    ls -lh virtual.img

    Você deve ver que virtual.img tem exatamente 256MB.

  3. Agora, vamos formatar este disco virtual com um sistema de arquivos ext4:

    sudo mkfs.ext4 virtual.img

    O 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 por ser confiável e bem testado.

  4. Em seguida, precisamos criar um ponto de montagem. Este é o diretório onde o conteúdo do nosso disco virtual aparecerá:

    sudo mkdir /mnt/virtualdisk

    Pense em um ponto de montagem como uma "janela" para o seu disco virtual. Após a montagem, quando você olhar dentro deste diretório, estará vendo o conteúdo do disco virtual.

  5. Agora podemos montar o disco virtual:

    sudo mount -o loop virtual.img /mnt/virtualdisk

    Vamos detalhar o que está acontecendo:

    • A opção -o loop diz ao Linux para tratar nosso arquivo como se fosse um dispositivo de disco real.
    • virtual.img é a 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 isso manualmente com nosso arquivo de disco virtual.

  6. Vamos verificar se o disco está montado:

    mount | grep virtualdisk

    Você deve ver uma linha indicando que virtual.img está montado em /mnt/virtualdisk.

  7. Agora que está montado, podemos usá-lo como qualquer outro diretório. Vamos criar um arquivo:

    sudo touch /mnt/virtualdisk/testfile
    ls /mnt/virtualdisk

    Você deve ver o testfile listado.

  8. Quando terminar de usar o disco virtual, você deve desmontá-lo:

    sudo umount /mnt/virtualdisk

    A desmontagem 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. Falhar ao desmontar corretamente pode levar à corrupção de dados. Embora a sintaxe do comando foque em desmontar o diretório, nos bastidores, o sistema operacional sabe que este diretório corresponde à imagem de disco montada.

Este processo de criação, formatação e montagem de um disco virtual é muito semelhante ao que acontece quando você instala 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 dele. Neste laboratório, o arquivo de imagem de 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 (ex: /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.

  1. Primeiro, vamos visualizar informações sobre todas as partições de disco:

    sudo fdisk -l

    Isso 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 tabela de partições.

  2. Agora, vamos olhar as informações de partição para o nosso disco virtual:

    sudo fdisk -l virtual.img

    Isso mostrará a tabela de partições do disco virtual. Como criamos o sistema de arquivos diretamente na imagem do disco sem particionamento, você pode ver uma mensagem dizendo que ele não contém uma tabela de partições válida.

Em um sistema real, você usaria o fdisk de forma interativa para criar, excluir ou modificar partições. Aqui está uma breve visão geral de como isso funcionaria:

  • Você iniciaria o fdisk com sudo fdisk /dev/sdX (substitua X pela letra apropriada para o 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, então 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 de forma interativa. Embora seja uma ferramenta essencial para o particionamento de disco, seja cauteloso ao usar o fdisk para alterar partições em um sistema que contenha dados críticos; alterações inadequadas podem levar à perda de dados.

Resumo

Parabéns! Neste laboratório, você aprendeu como:

  1. Visualizar o uso do disco com df.
  2. Examinar o tamanho de diretórios com du.
  3. Criar, formatar, montar e desmontar um disco virtual.
  4. Visualizar informações de partição com fdisk.

Essas habilidades formam a 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 integridade 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 um formato legível por humanos. Isso combinará vários dos comandos que você aprendeu neste laboratório.

Lembre-se, a prática é fundamental 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 na administração de sistemas Linux!