Nesta aula, vamos explorar o gerenciamento de discos e sistemas de arquivos no Linux, um tema fundamental para qualquer administrador de sistemas ou usuário avançado. Dominar esses conceitos permite que você controle como os dispositivos de armazenamento são acessados, montados e utilizados pelo sistema operacional.

Vamos começar com uma visão geral dos sistemas de arquivos, depois mergulhar em comandos práticos como lsblk, df, mount e umount. Ao final, você terá uma base sólida para gerenciar discos em ambientes Linux.

mount e umount

O comando mount é utilizado para anexar um sistema de arquivos (como uma partição de disco, um pendrive ou uma imagem ISO) a um diretório específico, chamado de ponto de montagem. Isso torna o conteúdo do dispositivo acessível dentro da árvore de diretórios do sistema. O comando umount (ou unmount) faz o oposto: desanexa o sistema de arquivos do ponto de montagem, tornando o dispositivo novamente inacessível e podendo ser removido com segurança.

Para montar um dispositivo, você precisa de privilégios de superusuário (root) ou permissões adequadas. A sintaxe básica é mount [opções] dispositivo ponto_de_montagem. Por exemplo, para montar uma partição /dev/sdb1 em /mnt/dados:

sudo mount /dev/sdb1 /mnt/dados

O comando umount pode ser usado com o ponto de montagem ou com o dispositivo: sudo umount /mnt/dados ou sudo umount /dev/sdb1. É importante desmontar antes de remover dispositivos físicos para evitar perda de dados.

Existem opções úteis, como -t para especificar o tipo de sistema de arquivos (ex.: ext4, ntfs), -o para opções de montagem (ex.: ro para somente leitura, noexec para impedir execução de binários). Um exemplo com opções:

sudo mount -t ext4 -o ro /dev/sdb1 /mnt/dados

Para ver todas as montagens atuais, basta executar mount sem argumentos, ou usar findmnt para uma saída mais legível.

lsblk

O comando lsblk (list block devices) exibe informações sobre todos os dispositivos de bloco disponíveis no sistema, como discos rígidos, SSDs, pendrives e suas partições. Ele apresenta uma visão em árvore que mostra a hierarquia dos dispositivos, incluindo relações de dependência (por exemplo, quais partições pertencem a qual disco).

A saída padrão de lsblk inclui colunas como NAME (nome do dispositivo), MAJ:MIN (números major/minor), RM (removível), SIZE (tamanho), RO (somente leitura), TYPE (tipo do dispositivo, como disk ou part) e MOUNTPOINT (ponto de montagem, se houver). Exemplo:

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0  100G  0 disk
├─sda1   8:1    0   50G  0 part /
├─sda2   8:2    0    1K  0 part
└─sda5   8:5    0   50G  0 part /home
sdb      8:16   1   32G  0 disk
└─sdb1   8:17   1   32G  0 part /mnt/usb

Com lsblk, você pode identificar rapidamente os dispositivos disponíveis e onde estão montados, o que é essencial antes de montar ou desmontar algo. Opções úteis incluem -f para mostrar o sistema de arquivos e o UUID, e -t para exibir informações adicionais como o tipo de sistema de arquivos.

df

O comando df (disk free) mostra o espaço em disco utilizado e disponível nos sistemas de arquivos montados. É uma ferramenta essencial para monitorar o uso de armazenamento. A saída típica de df -h (modo legível para humanos) exibe o tamanho total, o espaço usado, o espaço disponível, a porcentagem de uso e o ponto de montagem.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        50G   20G   28G  42% /
/dev/sda5        50G   15G   33G  32% /home
/dev/sdb1        32G   10G   20G  34% /mnt/usb

O comando df é útil para verificar se um disco está cheio, identificar partições que precisam de limpeza ou dimensionamento, e para relatar o uso de espaço em scripts. Opções comuns incluem -h (humano), -T (mostrar tipo de sistema de arquivos), -i (mostrar inodes em vez de blocos).

Sistemas de arquivos (visão geral)

Um sistema de arquivos (filesystem) é a estrutura lógica que organiza e armazena arquivos em um dispositivo de armazenamento. Ele define como os dados são nomeados, armazenados, recuperados e gerenciados. No Linux, existem vários sistemas de arquivos, cada um com suas características, vantagens e desvantagens.

Os mais comuns são:

  • ext4: o sistema de arquivos padrão para muitas distribuições Linux. Oferece robustez, suporte a journaling (recuperação de falhas) e suporta arquivos grandes.
  • XFS: excelente para alto desempenho e grandes volumes de dados, muito usado em servidores.
  • Btrfs: moderno, com recursos avançados como snapshots, compressão e subvolumes.
  • NTFS: usado pelo Windows, suportado pelo Linux (principalmente para leitura/escrita via drivers como ntfs-3g).
  • FAT32/exFAT: sistemas de arquivos simples e compatíveis com muitos dispositivos (pendrives, câmeras), mas com limitações de tamanho de arquivo (FAT32) ou menos recursos.

Para criar um sistema de arquivos em uma partição, usa-se o comando mkfs (por exemplo, mkfs.ext4 /dev/sdb1). Isso apagará todos os dados existentes na partição, portanto, deve ser usado com cuidado. A escolha do sistema de arquivos depende do uso: para sistemas críticos, ext4 é uma escolha segura; para grandes volumes com muitos dados, XFS pode ser melhor; para necessidades avançadas, Btrfs oferece funcionalidades extras.

Boas práticas

  • Sempre desmonte um dispositivo antes de removê-lo fisicamente (use umount).
  • Verifique se o dispositivo está montado antes de tentar desmontar com lsblk ou mount.
  • Use df -h regularmente para monitorar o espaço em disco e evitar surpresas.
  • Prefira usar UUIDs em vez de nomes de dispositivo (ex.: /dev/sdb1) em arquivos como /etc/fstab para montagens automáticas, pois os nomes de dispositivo podem mudar.
  • Cuidado com o comando mkfs: ele destrói dados irreversivelmente. Sempre faça backup.

Exercícios

  1. Qual é a diferença entre mount e umount? Dê um exemplo de uso de cada um.

    ✓ Resposta: mount anexa um sistema de arquivos a um diretório (ponto de montagem), tornando-o acessível. umount desanexa-o. Exemplo: sudo mount /dev/sdb1 /mnt/dados e sudo umount /mnt/dados.
  2. Use lsblk para listar os dispositivos de bloco e identifique o ponto de montagem da raiz (/). Qual é o dispositivo?

    ✓ Resposta: A resposta depende do sistema, mas geralmente é algo como /dev/sda1 ou /dev/nvme0n1p2. Para verificar, rode lsblk e observe a coluna MOUNTPOINT com o valor /.
  3. O que o comando df -h exibe? Explique cada coluna principal.

    ✓ Resposta: df -h mostra o espaço em disco de sistemas de arquivos montados. Colunas: Filesystem (dispositivo), Size (tamanho total), Used (espaço usado), Avail (espaço disponível), Use% (percentual usado), Mounted on (ponto de montagem).
  4. Cite três sistemas de arquivos suportados pelo Linux e uma característica de cada um.

    ✓ Resposta: Exemplos: ext4 (robusto, journaling), XFS (desempenho para grandes volumes), Btrfs (snapshots e compressão).
  5. Escreva um comando para montar uma partição /dev/sdc1 (sistema de arquivos ext4) no diretório /mnt/backup em modo somente leitura.

    ✓ Resposta: sudo mount -t ext4 -o ro /dev/sdc1 /mnt/backup

Referências