1. Introdução
Este material cobre comandos Linux para manipulação de arquivos, sistemas de arquivos (ext4, ReiserFS, etc.), montagem de dispositivos, particionamento com fdisk e GParted, além de exercícios práticos e interativos.
- Terminal Linux (nativo, VM ou WSL)
- Privilégios de root para alguns comandos
- Pendrive para prática de montagem
- Ferramentas instaladas:
sudo apt install gparted fdisk
2. Sistemas de Arquivos
2.1 Tipos de Sistemas de Arquivos
Os sistemas de arquivos organizam dados em dispositivos de armazenamento. No Linux, os mais comuns são:
Sistema | Descrição | Vantagens | Desvantagens |
---|---|---|---|
ext4 | Padrão do Linux, com journaling | Estável, amplo suporte | Menos recursos avançados |
ReiserFS | Otimizado para arquivos pequenos | Alta performance | Menos usado, suporte limitado |
XFS | Alta performance, grandes volumes | Escalável | Complexo para recuperação |
Btrfs | Moderno, com snapshots e RAID | Recursos avançados | Estabilidade em evolução |
FAT32 | Compatível com múltiplos SOs | Portabilidade | Limite de 4GB por arquivo |
NTFS | Usado no Windows, suportado no Linux | Suporte a arquivos grandes | Menor performance no Linux |
2.2 Montagem de Dispositivos
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 500G 0 disk
└─sda1 8:1 0 500G 0 part /
sdb 8:16 1 16G 0 disk
└─sdb1 8:17 1 16G 0 part
- Insira um pendrive e identifique-o com
lsblk
- Crie um ponto de montagem:
sudo mkdir /mnt/pendrive
- Monte o pendrive:
sudo mount /dev/sdX1 /mnt/pendrive
(substitua sdX1) - Liste os arquivos:
ls /mnt/pendrive
- Desmonte:
sudo umount /mnt/pendrive
2.3 Particionamento e Verificação
(use 'm' para ajuda, 'n' para nova partição, 'w' para salvar)
Atenção: Use com cuidado, alterações podem apagar dados!
Atenção: O dispositivo não deve estar montado.
- Insira um pendrive e identifique-o com
lsblk
- Execute
sudo fdisk /dev/sdX
(substitua sdX) - Crie uma nova partição primária com
n
, tipop
- Salve com
w
- Formate como ext4:
sudo mkfs.ext4 /dev/sdX1
- Verifique com
sudo fsck /dev/sdX1
2.4 Gerenciamento com GParted
GParted é uma ferramenta gráfica para gerenciar partições.
- Instale:
sudo apt install gparted
- Execute:
sudo gparted
- Selecione um dispositivo (ex.: /dev/sdb)
- Crie uma partição FAT32 ou ext4
- Aplique as alterações e verifique com
lsblk
Atenção: Evite alterar o disco principal!
4. Manipulação de Arquivos e Diretórios
$ mkdir -p projetos/2024/janeiro
$ cp -r diretorio/ backup/
$ rm -r diretorio/
$ rm -f arquivo.txt
Atenção: Remove permanentemente!
- Crie um diretório:
mkdir aula_pratica
- Entre no diretório:
cd aula_pratica
- Crie três arquivos:
touch arquivo1.txt arquivo2.txt arquivo3.txt
- Renomeie:
mv arquivo1.txt dados.txt
- Crie um subdiretório backup e copie os arquivos para ele
- Remova os arquivos originais (mantenha o backup)
5. Visualização e Edição de Arquivos
$ tail -f /var/log/syslog
6. Comparação de Arquivos
7. Sincronização e Backup
8. Gerenciamento de Permissões
$ chmod u+x arquivo.txt
Permissões numéricas:
- 4 = Leitura (r)
- 2 = Escrita (w)
- 1 = Execução (x)
- Crie um arquivo:
touch teste.txt
- Verifique permissões:
ls -l teste.txt
- Altere para 640:
chmod 640 teste.txt
- Adicione execução ao dono:
chmod u+x teste.txt
- Remova escrita do grupo:
chmod g-w teste.txt
- Tente mudar o dono (com sudo):
sudo chown root teste.txt
9. Compactação de Arquivos
unzip arquivo.zip
10. Busca de Arquivos
11. Recuperação de Arquivos no Linux
A recuperação de arquivos é um processo crítico quando ocorrem exclusões acidentais ou corrupção de dados. O Linux oferece várias ferramentas poderosas para esta finalidade.
11.1 Quando a Recuperação é Possível
Os arquivos podem ser recuperados quando:
- Foram excluídos mas o espaço não foi sobrescrito
- O sistema de arquivos está corrompido mas o disco está intacto
- A partição foi formatada mas os dados não foram totalmente sobrescritos
Importante: Quanto menos operações forem feitas no disco após a perda, maiores as chances de recuperação.
Principais recursos:
- Recupera partições perdidas
- Repara tabelas de partição corrompidas
- Recupera setores de boot
- Funciona com diversos sistemas de arquivos (FAT, NTFS, ext2/3/4)
Características:
- Recupera por assinatura de arquivos (não depende do sistema de arquivos)
- Reconhece mais de 480 formatos de arquivos
- Pode recuperar mesmo de discos formatados
$ sudo extundelete /dev/sda1 --restore-file caminho/arquivo
Funcionalidades:
- Recupera arquivos excluídos
- Restaura arquivos específicos ou todo o sistema de arquivos
- Mostra arquivos recuperáveis sem restaurar
Vantagens:
- Tenta recuperar setores danificados
- Pode pular blocos ruins e voltar depois
- Mantém log do progresso para continuar interrompido
ATENÇÃO: Estes exercícios devem ser feitos em um ambiente controlado para não afetar dados reais.
- Preparação:
- Crie uma imagem de disco para testes:
dd if=/dev/zero of=disco_teste.img bs=1M count=100
- Formate com ext4:
mkfs.ext4 disco_teste.img
- Monte a imagem:
sudo mount -o loop disco_teste.img /mnt
- Crie alguns arquivos dentro do sistema montado
- Crie uma imagem de disco para testes:
- Simulação de perda:
- Exclua alguns arquivos:
rm /mnt/arquivo*
- Desmonte o sistema:
sudo umount /mnt
- Exclua alguns arquivos:
- Recuperação:
- Tente recuperar com extundelete:
sudo extundelete disco_teste.img --restore-all
- Verifique os arquivos recuperados no diretório RECOVERED_FILES/
- Tente recuperar com extundelete:
- Para prática adicional:
- Repita o processo usando photorec para recuperar arquivos específicos
- Experimente testdisk para simular recuperação de partição
11.2 Boas Práticas para Recuperação
- Pare de usar o disco imediatamente após perceber a perda de dados
- Se possível, trabalhe com uma imagem do disco em vez do original
- Não grave os dados recuperados no mesmo disco de origem
- Para sistemas críticos, considere um profissional especializado
11.3 Prevenção de Perda de Dados
- Mantenha backups regulares (3-2-1: 3 cópias, 2 mídias, 1 off-site)
- Use sistemas de arquivos com journaling (ext4, XFS, etc.)
- Implemente snapshots para sistemas importantes
- Considere soluções RAID para redundância
12. Sistemas RAID
RAID (Redundant Array of Independent Disks) é uma tecnologia que combina múltiplos discos físicos em uma única unidade lógica para melhorar desempenho, redundância ou ambos.
12.1 Níveis de RAID Comuns
Nível | Descrição | Mínimo de Discos | Vantagens | Desvantagens | Uso Recomendado |
---|---|---|---|---|---|
RAID 0 | Striping (distribuição de dados) | 2 | Máximo desempenho | Sem redundância - falha de um disco perde todos os dados | Dados temporários ou não críticos que requerem alta velocidade |
RAID 1 | Mirroring (espelhamento) | 2 | Redundância total - tolera falha de n-1 discos | Capacidade útil reduzida à metade | Sistemas críticos onde a disponibilidade é essencial |
RAID 5 | Striping com paridade distribuída | 3 | Bom equilíbrio entre desempenho, capacidade e redundância | Desempenho de escrita reduzido devido ao cálculo de paridade | Armazenamento geral com boa relação custo-benefício |
RAID 6 | Striping com paridade dupla | 4 | Tolerância a falhas de até 2 discos | Overhead maior que RAID 5 (mais capacidade para paridade) | Ambientes onde a disponibilidade é crítica e discos são grandes |
RAID 10 | Combina mirroring e striping | 4 | Alto desempenho e boa tolerância a falhas | Capacidade útil reduzida à metade | Bancos de dados e aplicações críticas de alto desempenho |
12.2 Implementação de RAID no Linux
No Linux, o RAID pode ser implementado via software (usando mdadm
) ou via hardware (com controladoras dedicadas).
$ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
Operações comuns:
--create
: Cria um novo array RAID--detail
: Mostra informações sobre um array--add
: Adiciona um disco a um array existente--remove
: Remove um disco de um array--fail
: Marca um disco como falho
mdadm --detail /dev/mdX
Personalities : [raid1]
md0 : active raid1 sdc[1] sdb[0]
1047552 blocks super 1.2 [2/2] [UU]
12.3 RAID por Software vs Hardware
Característica | Software RAID | Hardware RAID |
---|---|---|
Custo | Grátis (incluído no sistema operacional) | Requer controladora dedicada (custos adicionais) |
Desempenho | Depende da CPU do sistema | Processamento dedicado na controladora |
Portabilidade | Pode ter problemas entre sistemas diferentes | Depende da controladora específica |
Configuração | Flexível, pode ser modificada facilmente | Geralmente requer reinicialização para alterações |
BBU (Battery Backup Unit) | Não disponível | Disponível em controladoras enterprise |
Nota: Este exercício pode ser realizado com discos virtuais para prática.
- Preparação:
- Crie discos virtuais para teste:
$ dd if=/dev/zero of=/tmp/disk1.img bs=1M count=100
$ dd if=/dev/zero of=/tmp/disk2.img bs=1M count=100 - Associe os arquivos a dispositivos de loopback:
$ sudo losetup /dev/loop1 /tmp/disk1.img
$ sudo losetup /dev/loop2 /tmp/disk2.img
- Crie discos virtuais para teste:
- Criação de RAID 1:
- Crie o array:
$ sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/loop1 /dev/loop2
- Verifique o status:
$ cat /proc/mdstat
$ sudo mdadm --detail /dev/md0
- Crie o array:
- Usando o RAID:
- Crie um sistema de arquivos:
$ sudo mkfs.ext4 /dev/md0
- Monte o dispositivo:
$ sudo mkdir /mnt/raidtest
$ sudo mount /dev/md0 /mnt/raidtest
- Crie um sistema de arquivos:
- Simulação de falha:
- Marque um disco como falho:
$ sudo mdadm /dev/md0 --fail /dev/loop1
- Remova o disco:
$ sudo mdadm /dev/md0 --remove /dev/loop1
- Adicione um novo disco (simulado):
$ sudo mdadm /dev/md0 --add /dev/loop1
- Monitore a reconstrução:
$ watch cat /proc/mdstat
- Marque um disco como falho:
12.4 Considerações sobre RAID
Substituição rápida de discos falhos
Testes periódicos
Recomendações importantes:
- Implemente monitoramento para alertas de falhas
- Substitua discos falhos imediatamente
- RAID não substitui backup - sempre mantenha backups
- Teste periodicamente o processo de reconstrução
- Considere a compatibilidade ao migrar entre sistemas
13. Exercícios Práticos
- Insira um pendrive e identifique-o com
lsblk
- Formate como ext4 usando GParted ou
mkfs.ext4
- Monte e crie um arquivo de teste
- Configure permissões 660 para o arquivo
- Crie um backup compactado do conteúdo
14. Quiz de Verificação
1. Qual sistema de arquivos é mais adequado para pendrives devido à compatibilidade?
2. Qual comando monta um pendrive em /mnt/pendrive?
3. Qual comando verifica a integridade de um sistema de arquivos?
4. O que faz o comando tail -f?
5. Qual comando cria diretórios aninhados?
15. Referências
- Linux man pages
- GNU Coreutils
- GParted Documentation
- Shotts, William. "The Linux Command Line"
- Ward, Brian. "How Linux Works"