⬅ Voltar ao Dashboard Módulo 1 — Fundamentos do Linux
Aula 8

💾 Sistema de Arquivos e Montagem

Filesystems, mount, umount, /etc/fstab e gerenciamento de dispositivos de armazenamento no Linux

lsblk Listar discos
mount Montar devices
fstab Boot automático
UUID ID permanente

🗂️ O que é Sistema de Arquivos?

O sistema de arquivos (filesystem) é a estrutura que define como os dados são organizados, armazenados e recuperados em um dispositivo. Cada partição ou disco precisa ter um filesystem para guardar arquivos.

📚 Analogia: Biblioteca

🏛️
No mundo real
Prédio
Disco / SSD
📐
Classificação
Sistema Dewey
Filesystem (ext4)
🗄️
Armazenamento
Estantes
Pastas / diretórios
📖
Conteúdo
Livros
Arquivos

O que o filesystem define

📏
Tamanho máximo de arquivo
Limite por arquivo individual (ex: FAT32 = 4 GB, ext4 = 16 TB)
📝
Nomes de arquivos
Caracteres permitidos, comprimento máximo, case-sensitive ou não
🔒
Permissões e proprietários
Suporte a chmod, chown, ACL (ext4, XFS, Btrfs)
📓
Journaling
Registro de operações para recuperação após quedas de energia

⚠️ Importante: cada partição pode ter um filesystem diferente. Um mesmo disco pode ter /dev/sda1 em ext4 e /dev/sda2 em NTFS ao mesmo tempo.

📁 Tipos de Sistema de Arquivos

Existem diversos filesystems, cada um adequado para um cenário específico. Conhecer as diferenças ajuda a escolher o correto na hora de formatar.

🐧
ext4
Padrão Linux
O filesystem mais usado no Linux. Journaling confiável, amplamente testado, suporta permissões Unix completas.
Máx. arquivo: 16 TB
🚀
XFS
Alta Performance
Ótimo para arquivos grandes e servidores de alta carga. Padrão no Red Hat/CentOS.
Máx. arquivo: 8 EB
🆕
Btrfs
Moderno
Suporta snapshots, compressão nativa, subvolumes e verificação de integridade. Crescente adoção.
Máx. arquivo: 16 EB
🪟
NTFS
Windows
Padrão Windows. Leitura nativa no Linux, escrita via ntfs-3g. Use para compartilhar dados com Windows.
Máx. arquivo: 16 TB
📱
FAT32
Universal
Compatível com qualquer SO. Limite de 4 GB por arquivo. Pendrives pequenos e cartões SD simples.
Máx. arquivo: 4 GB
🔄
exFAT
FAT Melhorado
FAT sem limite prático de arquivo. Ideal para pendrives, SSDs externos e cartões SD modernos.
Máx. arquivo: 16 EB
Filesystem Uso recomendado Máx. arquivo Journaling Permissões Unix
ext4Disco interno Linux16 TB
XFSServidor, arquivos grandes8 EB
BtrfsSnapshots, compressão16 EB
NTFSCompartilhar com Windows16 TB⚠️ parcial
FAT32Pendrive pequeno4 GB
exFATPendrive grande, dual-OS16 EB

🔗 O que é Montagem?

No Linux, todo dispositivo de armazenamento existe como um arquivo em /dev/. Para acessar seus dados, é preciso montar o dispositivo: associá-lo a uma pasta da árvore de diretórios, chamada de ponto de montagem.

💾
Dispositivo
/dev/sdb1
🔧
Comando
mount
📁
Ponto de Montagem
/mnt/pendrive

Nomenclatura dos dispositivos

/dev/sda
1º disco (SATA/SSD/USB)
/dev/sda1 1ª partição — geralmente /
/dev/sda2 2ª partição — geralmente swap
/dev/sdb
2º disco (ex: pendrive)
/dev/sdb1 1ª partição do pendrive
/dev/sdb2 2ª partição (se existir)

💡 A pasta usada como ponto de montagem deve existir antes de montar. Crie-a com mkdir -p /mnt/pendrive. Pontos comuns: /mnt/ (manual), /media/ (mídias removíveis), /home (partição separada).

🔧 Montando Dispositivos com mount

O fluxo para montar um dispositivo é sempre o mesmo: identificar, criar o ponto de montagem e montar.

bash — fluxo completo de montagem
# 1. Ver todos os dispositivos de bloco conectados root@servidor:~# lsblk NAME SIZE TYPE MOUNTPOINT sda 500G disk ├─sda1 499G part / └─sda2 1G part [SWAP] sdb 16G disk └─sdb1 16G part # ← pendrive sem ponto de montagem # 2. Criar o ponto de montagem root@servidor:~# mkdir -p /mnt/pendrive # 3. Montar o dispositivo root@servidor:~# mount /dev/sdb1 /mnt/pendrive # 4. Acessar os arquivos root@servidor:~# ls /mnt/pendrive fotos/ documentos/ backup.zip # 5. Verificar espaço em disco root@servidor:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 500G 120G 380G 24% / /dev/sdb1 16G 8G 8G 50% /mnt/pendrive

Opções do mount -o

ro
Somente leitura. Nenhum arquivo pode ser modificado.
rw
Leitura e escrita. Comportamento padrão.
noexec
Impede execução de binários do dispositivo.
nosuid
Ignora o bit SUID/SGID. Aumenta segurança.
nofail
Não aborta o boot se o dispositivo não for encontrado.
bash — exemplos de opções
# Montar como somente leitura root@servidor:~# mount -o ro /dev/sdb1 /mnt/pendrive # Especificar o tipo de filesystem (útil para NTFS) root@servidor:~# mount -t ntfs /dev/sdc1 /mnt/windows # Listar tudo que está montado no momento root@servidor:~# mount /dev/sda1 on / type ext4 (rw,relatime) /dev/sdb1 on /mnt/pendrive type vfat (rw)

⏏️ Desmontando com umount

Antes de remover fisicamente qualquer dispositivo (pendrive, HD externo), é obrigatório desmontá-lo. Remover sem desmontar pode corromper dados.

🚫 Nunca remova um pendrive ou HD externo sem antes executar umount. Dados em buffer ainda não gravados serão perdidos e o filesystem pode ser corrompido permanentemente.
bash — desmontar e resolver erros
# Desmontar pelo ponto de montagem root@servidor:~# umount /mnt/pendrive # Ou pelo nome do dispositivo root@servidor:~# umount /dev/sdb1 # ── Erro: dispositivo ocupado ── root@servidor:~# umount /mnt/pendrive umount: /mnt/pendrive: target is busy # Descobrir qual processo está usando o dispositivo root@servidor:~# lsof /mnt/pendrive COMMAND PID USER NAME bash 1234 joao /mnt/pendrive # ← terminal ainda está nessa pasta # Solução: sair da pasta e tentar novamente root@servidor:~# cd ~ root@servidor:~# umount /mnt/pendrive # sucesso (sem mensagem de erro)

💡 O erro “target is busy” acontece quando algum terminal está com o diretório montado como diretório atual. Basta executar cd ~ no terminal afetado e tentar desmontar novamente.

📋 /etc/fstab — Montagem Automática no Boot

O arquivo /etc/fstab lista todos os dispositivos que devem ser montados automaticamente quando o sistema inicia. É um dos arquivos mais importantes do Linux — um erro aqui pode impedir o boot.

/etc/fstab
# <dispositivo> <ponto> <tipo> <opções> <dump> <pass> /dev/sda1 / ext4 defaults 0 1 /dev/sda2 none swap sw 0 0 /dev/sdb1 /dados ext4 defaults 0 2

Significado de cada coluna

col 1
Dispositivo
/dev/sda1
Ou UUID=... para maior segurança
col 2
Ponto
/home
Pasta onde será montado. none para swap
col 3
Tipo FS
ext4
ext4, ntfs, vfat, swap, auto
col 4
Opções
defaults
ro, rw, nofail, noexec, nosuid
col 5
Dump
0
Backup via dump? 0=não (quase sempre)
col 6
Pass
1 / 2
Ordem fsck: root=1, outros=2, 0=ignorar

⚠️ Erros no fstab podem impedir o boot! Sempre faça backup: cp /etc/fstab /etc/fstab.bak. Após editar, valide com mount -a antes de reiniciar.

🔑 UUID — Identificando Discos com Segurança

O nome /dev/sda1 pode mudar entre boots dependendo da ordem de detecção do hardware. O UUID é um identificador único e permanente — use-o no fstab.

❌ Evite
/dev/sdX no fstab
  • Pode mudar entre boots
  • Depende da ordem de detecção
  • Adicionar novos discos pode embaralhar
  • Causa erros de boot difíceis de diagnosticar
vs
✅ Prefira
UUID=... no fstab
  • Permanente e único por partição
  • Não muda com a ordem dos discos
  • Recomendado pela prática do mercado
  • Obtido com blkid
bash — UUID com blkid e fstab
# Descobrir o UUID de todos os dispositivos root@servidor:~# blkid /dev/sda1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4" /dev/sdb1: UUID="1A2B-3C4D" TYPE="vfat" # Usar UUID no /etc/fstab (mais seguro que /dev/sdX) UUID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 / ext4 defaults 0 1 UUID=1A2B-3C4D /mnt/usb vfat defaults,nofail 0 0 # Testar se o fstab está correto sem reiniciar root@servidor:~# mount -a # sem erros = fstab válido

💡 Use nofail no fstab para dispositivos removíveis. Assim, se o pendrive não estiver conectado, o sistema inicializa normalmente em vez de travar no boot.

🔧 Formatando com mkfs

Para preparar um novo disco ou mudar o filesystem de uma partição, usa-se a família de comandos mkfs (make filesystem).

🚨 CUIDADO: formatar apaga todos os dados da partição permanentemente e sem confirmação. Certifique-se do dispositivo correto com lsblk antes de executar.
mkfs.ext4
ext4
Disco interno Linux. Padrão para servidores e desktops.
mkfs.vfat -F 32
FAT32
Pendrives pequenos. Máxima compatibilidade com qualquer dispositivo.
mkfs.exfat
exFAT
Pendrives grandes e SSDs externos. Sem limite prático de arquivo.
mkfs.ntfs
NTFS
Compartilhar dados com sistemas Windows. Requer ntfs-3g.
bash — mkfs na prática
# Confirmar o dispositivo antes de formatar! root@servidor:~# lsblk sdb 16G disk └─sdb1 16G part # Formatar como ext4 (padrão Linux) root@servidor:~# mkfs.ext4 /dev/sdb1 # Formatar como FAT32 (pendrives pequenos, compatível com tudo) root@servidor:~# mkfs.vfat -F 32 /dev/sdb1 # Formatar como exFAT (pendrives grandes) root@servidor:~# mkfs.exfat /dev/sdb1 # Formatar como NTFS (compatibilidade com Windows) root@servidor:~# mkfs.ntfs /dev/sdb1

📋 Resumo: Comandos Essenciais

lsblk Listar Discos Mostra dispositivos, partições e pontos de montagem.
mount Montar Conecta dispositivo a uma pasta da árvore.
umount Desmontar Desconecta com segurança antes de remover.
df -h Espaço em Disco Uso e disponibilidade por ponto de montagem.
blkid UUID e Tipo UUID e filesystem de cada partição.
mkfs.ext4 Formatar mkfs.vfat, mkfs.exfat, mkfs.ntfs, etc.
lsof Processo usando disco Quem está usando o dispositivo (umount busy).
mount -a Testar fstab Aplica o /etc/fstab sem precisar reiniciar.

📌 Fluxo completo — montar um pendrive:
lsblkmkdir /mnt/pendrivemount /dev/sdb1 /mnt/pendrive → usar → umount /mnt/pendrive → remover com segurança.

🎯 Exercício — Arraste e Conecte

Arraste cada descrição para o comando correto de gerenciamento de discos.

Descrição
Lista dispositivos de bloco conectados ao sistema, mostrando nome, tamanho, tipo e ponto de montagem
Conecta uma partição ou dispositivo a uma pasta da árvore de diretórios para que seus arquivos fiquem acessíveis
Desconecta com segurança um dispositivo montado, garantindo que todos os dados em buffer sejam gravados
Exibe o espaço usado e disponível em cada sistema de arquivos montado, em formato legível
Exibe o UUID e o tipo de filesystem de cada partição — essencial para configurar o /etc/fstab
Formata uma partição criando um novo sistema de arquivos ext4 (apaga todos os dados)
Comando
lsblk
mount
umount
df -h
blkid
mkfs.ext4

🛠️ Atividade Prática — Montando e Gerenciando Discos

⏱ ~30 min 💻 Ubuntu Server / Terminal 📸 Tirar screenshot da saída
1
Inspecione os discos do sistema
Execute lsblk e depois df -h. Identifique: quantos discos existem, quais partições estão montadas e qual o espaço disponível em cada uma. Tire screenshot.
2
Leia o /etc/fstab e entenda cada linha
Execute cat /etc/fstab. Para cada linha ativa (sem #), identifique: o dispositivo ou UUID, o ponto de montagem, o tipo de filesystem e as opções. Execute também blkid para confirmar os UUIDs.
3
Adicione um disco virtual (loop device)
Crie um arquivo de 50 MB e o use como disco virtual:
dd if=/dev/zero of=/tmp/disco.img bs=1M count=50
mkfs.ext4 /tmp/disco.img
mkdir -p /mnt/teste
mount -o loop /tmp/disco.img /mnt/teste
df -h /mnt/teste
Confirme que o disco virtual foi montado corretamente.
4
Crie arquivos e desmonte
Dentro do disco montado, crie alguns arquivos: echo "teste" > /mnt/teste/arquivo.txt && ls /mnt/teste. Depois desmonte: umount /mnt/teste. Verifique que o conteúdo não está mais acessível em /mnt/teste.
5
Remonte e verifique persistência
Monte novamente o mesmo arquivo: mount -o loop /tmp/disco.img /mnt/teste && ls /mnt/teste. Confirme que o arquivo criado no passo anterior ainda existe. Isso demonstra que o filesystem persiste no arquivo .img. Tire screenshot e desmonte ao finalizar.
📌 Para refletir: O conceito de montagem é central no Linux. Tudo é tratado como arquivo: discos, pendrives, partições e até imagens virtuais. O /etc/fstab é o que permite ao servidor inicializar e encontrar automaticamente todos os seus discos. Um erro nesse arquivo pode impedir o boot — por isso é tão importante entendê-lo bem.