Hoje iremos trabalhar com sistemas de arquivos em Linux. Iremos tratar partições e seus dimensionamentos. Abaixo está uma tabela com significados de termos e exemplos de comados que usaremos.
Termo | Significado | Exemplo de Comando |
---|---|---|
Sistema de Arquivos Raiz / (Root) | O ponto inicial de todo o sistema de arquivos. Todos os outros diretórios estão localizados abaixo dele. | ls / – Lista o conteúdo do diretório raiz. |
Sistema de Arquivos /var | Armazena arquivos variáveis, como logs do sistema e dados temporários. | ls /var/log – Lista os logs armazenados no sistema. |
Sistema de Arquivos /home | Contém os diretórios pessoais dos usuários. | ls /home – Lista os diretórios dos usuários. |
Sistema de Arquivos /boot | Armazena os arquivos necessários para inicializar o sistema, como o kernel. | ls /boot – Lista os arquivos de inicialização. |
Partição de Sistema EFI (ESP) | Usada em sistemas UEFI, contém os arquivos de inicialização e dados de configuração. | ls /boot/efi – Lista o conteúdo da partição EFI (se montada). |
Espaço de Swap | Área de disco usada como memória virtual quando a RAM está cheia. | swapon -s – Mostra o status das partições de swap ativas. |
Pontos de Montagem | Diretórios onde sistemas de arquivos são montados para acesso. | mount /dev/sda1 /mnt – Monta a partição em /mnt . |
Partições | Divisões lógicas de um disco físico que contêm sistemas de arquivos ou outros dados. | fdisk -l – Lista as partições em um disco. |
Ainda chamados os dispositivos de armazenamento de discos. Isso se deve porque antigamente os dados eram armazenados em discos físicos como discos rígidos (HDDs) e discos ópticos (CDs, DVDs).
Todo disco precisa ser particionado antes de ser usado. Partição se refere ao ato de criar partes/divisões no disco e com isso, por exemplo, os dados do sistema operacional podem ficar separados dos dados do usuário. Todo disco precisa de pelo menos uma partição!
Na tabela de partições ficam as informações das partições. Tais informações são: primeiro e o último setores da partição e seu tipo, além de detalhes adicionais sobre cada partição.
Cada partição possui um Sistema de Arquivos que dita ou rege a maneira de como as informações estão de fato armazenadas no disco.
Você não pode criar uma partição iniciando em um espaço de um disco X e terminando em outro do disco Y. Partições são limitadas ao disco.
Aqui entra o conceito de Volume lógico que é tirar as limitações dos dispositivos físicos e trabalhar em espaços chamados de “pools” ou piscina; com volume lógicos podemos juntar várias partições/discos e formar um único espaço(pool). Isso independe se a partição está em outro disco.
Em um disco formatado com o esquema de particionamento MBR, o ID da Partição do Sistema EFI é 0xEF.
Pontos de montagens no Linux
Diferentemente do Windows, onde uma partição recebe letras, como c: ou d:, no Linux as partições são vinculadas à pastas, ou seja, ao abrir essa pasta vinculada à partição, estaremos abrindo a partição em si.
A pasta que representa a partição é chamada de ponto de montagem. Ao ato de vincular a pasta à partição é o ato de montar.
Se existir arquivos dentro de um diretório/pasta antes de montarmos esses arquivos ficarão indisponíveis até você desmontar o sistema de arquivos.
Os sistemas de arquivos podem ser montados em qualquer lugar que você desejar. Mas certas práticas são recomendadas para facilitar a administração do sistema.
Mais antigamente 🙂 os dispositivos externos eram montados no diretório /mnt. Ele foi substituído por /media, que agora é o ponto de montagem padrão para qualquer mídia removível(como discos externos, drives flash USB, leitores de cartão de memória, discos óticos…).
Na maioria das distribuições Linux e ambientes de desktop modernos, os dispositivos removíveis são montados automaticamente em /media/USER/LABEL, onde USER o nome de usuário e LABEL o nome do dispositivo. Exemplo, /media/joao/FlashDrive. A maneira como isso é feito varia de acordo com o ambiente de desktop.
Ainda assim, ainda é recomendado, ao montar manualmente dispositivos, dentro de /mnt
É recomendado deixar algumas pastas em partições separadas
No Linux, existem alguns diretórios que é melhor manter em partições separadas.
Diretório | Motivo |
---|---|
/boot | Separar o /boot garante que os arquivos de inicialização do sistema, como o kernel e o GRUB, estejam isolados de outros dados. Isso pode ser útil em casos de criptografia de disco ou para garantir que o sistema possa inicializar mesmo com problemas em outras partições. Os arquivos do GRUB, geralmente, são armazenados em /boot/grub.Tecnicamente, uma partição de inicialização não é necessária, pois na maioria dos casos o GRUB pode montar a partição raiz (/) e carregar os arquivos a partir de um diretório /boot separado. Geralmente é localizada no início do disco e termina antes do cilindro 1024 (528 MB). Atualmente, Um bom tamanho é de cerca de 300 MB. |
/boot/efi | A partição do sistema EFI (ESP) é usada por máquinas baseadas na UEFI para armazenar gerenciadores de inicialização e imagens do kernel para os sistemas operacionais instalados. é criado (ou preenchido) pelo sistema operacional após a instalação e, em um sistema Linux, é montado em /boot/efi. |
/home | Manter /home em uma partição separada preserva os dados dos usuários, como arquivos pessoais e configurações, em caso de reinstalação ou atualização do sistema operacional. Também facilita a migração de dados e a implementação de cotas de disco por usuário.O diretório inicial(ou home) de cada usuário costuma levar o nome do usuário, como /home/elder. Costuma ser, mas pode haver exceções. Não existe uma regra para determinar o tamanho de uma partição para o diretório /home |
/var | O diretório /var armazena arquivos variáveis, ou que estão sempre em alterações(escrita) como logs do sistema, caches, e dados de aplicações. Separá-lo pode evitar que o crescimento descontrolado desses arquivos ocupe todo o espaço disponível na partição raiz, prevenindo problemas de estabilidade no sistema. Exemplo: /var/log, /var/tmp, /var/www/html, /var/lib/mysql e /var/cacheSe /var estiver em /, ao ficar 100% ocupado isso pode disparar um pânico do kernel e corromper o sistema de arquivos. Não existe uma regra universal para determinar o tamanho da partição /var |
swap | é usada para passar as páginas de memória da RAM para o disco de acordo com a necessidade do sistema. Essa partição não pode ser montada como as demais e nem acessada normalmente e visualizar seu conteúdo. Linux suporta usarmos arquivos de troca em vez de partições Colocar o swap com duas vezes a quantidade de RAM é uma regra antiga e nem sempre útil. É útil consultar o fornecedor do programa sendo usado sobre a quantidade a ser usada de swap. Se quiser criar uma partição mkswap |
/tmp | O /tmp é usado para armazenar arquivos temporários que podem crescer rapidamente e consumir muito espaço. Colocá-lo em uma partição separada pode ajudar a controlar o uso do espaço e evitar que arquivos temporários afetem a operação do sistema. |
/srv | Para servidores que hospedam dados de serviços (por exemplo, web, FTP, etc.), separar o /srv pode melhorar a segurança e facilitar o gerenciamento, especialmente em ambientes onde os dados do servidor precisam ser preservados independentemente do sistema operacional. |
/var/log | Especificamente para logs, ter /var/log em uma partição separada evita que logs extensos comprometam a integridade do sistema, especialmente em servidores onde o log cresce rapidamente. |
/opt | O diretório /opt é utilizado para softwares adicionais ou de terceiros. Mantê-lo em uma partição separada pode facilitar a organização e a recuperação de softwares após uma reinstalação do sistema. |
/usr | Em sistemas com muitas aplicações, separar /usr pode melhorar o desempenho e facilitar a manutenção, além de garantir que o sistema possa ser recuperado mesmo se a partição raiz estiver comprometida. |
LVM
Uma das desvantagens do particionamento um disco é que o administrador do sistema deve decidir antecipadamente como o espaço em disco disponível em um dispositivo será distribuído. Se uma partição exigir mais espaço futuramente pode ser um grande problema ao usar partições comuns. A LVM pode ser bem útil.
- LVM: Virtualização de armazenamento que oferece flexibilidade em relação ao particionamento tradicional.
- Objetivo: Facilitar a gestão das necessidades de armazenamento dos usuários.
- Volume Físico (PV): uma partição de disco ou matriz RAID. Representa o físico.
- Grupos de Volumes (VG): Agrupam PVs, formando um único dispositivo lógico.
- Extensões: Subdivisões dos volumes em partes de tamanho fixo; Extensões Físicas (PE) e Extensões Lógicas (LE).
- Volumes Lógicos (LVs): Semelhantes a partições, mas mais flexíveis, criados a partir de VGs.
- Tamanho dos LVs: Definido pelo tamanho das extensões físicas multiplicado pelo número de extensões no volume.
- Expansão/Redução dos LVs: Feita ao adicionar ou remover extensões do VG.
- Dispositivos: Após a criação, LVs são vistos como dispositivos de bloco normais pelo sistema e podem ser formatados e montados como qualquer outro sistema de arquivos.
/dev/VGname/LV1
/dev/VGname/LV2
/dev/VGname/LV3
Grupo de Volumes (VG)
/dev/sda1
/dev/sdb1
O tamanho de um Volume Lógico (LV) é determinado pelo número de pequenos blocos chamados de “extensões físicas,” cada um com um tamanho padrão (geralmente 4 MB) multiplicado pelo número de extensões no volume. Para aumentar o tamanho de um LV, basta adicionar mais dessas extensões disponíveis no Grupo de Volumes (VG). Da mesma forma, para reduzir o tamanho do LV, algumas dessas extensões podem ser removidas. Isso torna o processo de ajuste do tamanho de um Volume Lógico bastante flexível e fácil de gerenciar.
Após sua criação, um Volume Lógico é visto pelo sistema operacional como um dispositivo de bloco normal. Um dispositivo será criado em /dev, com o nome /dev/VGNAME/LVNAME, em que VGNAME é o nome do Grupo de Volumes e LVNAME o nome do Volume Lógico.
Podemos usar mkfs.ext4, ou outro qualquer, para formatar o dispositivo da LVM, adicionando-o ao arquivo /etc/fstab.