This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.
Please visit our production wiki at https://wiki.gentoo.org
Manual:X86/Instalação/Discos
Introdução aos dispositivos de blocos
Dispositivos de blocos
Vamos dar uma boa olhada nos aspectos relacionados a discos do Gentoo Linux e do Linux em geral, incluindo sistemas de arquivos Linux, partições e dispositivos de blocos. Uma vez que os detalhes de discos e partições estiverem compreendidos, serão configurados as partições e sistemas de arquivos para a instalação do Gentoo Linux.
Para começar, vamos dar uma olhada nos dispositivos de blocos. O dispositivo de bloco mais famoso é provavelmente aquele que representa o primeiro drive em um sistema Linux, o /dev/sda. Drives SCSI e Serial ATA são ambos chamados /dev/sd*; mesmo drives IDE são chamados /dev/sd* pelo sistema libata do kernel. Se for usado o sistema antigo de dispositivos, então o primeiro drive IDE é chamado /dev/hda.
Os dispositivos de blocos acima representam uma interface abstrata para o disco. Programas de usuários podem usar esses dispositivos de blocos para interagir com o disco sem se preocuparem se são IDE, SCSI, ou de outro tipo. O programa pode simplesmente endereçar o armazenamento do disco como um grupo de blocos de 512 bytes contínuos e acessíveis aleatoriamente.
Tabelas de partições
Embora seja teoricamente possível usar o disco todo, sem partições para abrigar um sistema Linux (quando criando um RAID btrfs, por exemplo), isso quase nunca é feito na prática. Em vez disso, os dispositivos de blocos são divididos em dispositivos menores, mais gerenciáveis. Em sistemas x86, eles são chamados partições. Há atualmente dois padrões de tecnologias de particionamento em uso: MBR e GPT.
MBR
A configuração MBR ("Master Boot Record" - Registro Mestre de Iniciliazação) usa identificadores de 32 bits para o setor de início e o tamanho das partições e suporta três tipos de partições: primária, estendida e lógica. Partições primárias têm suas informações armazenadas no MBR em si - um local muito pequeno (normalmente 512 bytes) bem no começo do disco. Devido a esse espaço pequeno, apenas quatro partições primárias são suportadas (ou seja, de /dev/sda1 a /dev/sda4).
Para suportar mais partições, uma das partições primárias pode ser marcada como uma partição estendida. Essa partição pode então conter partições lógicas (com partições dentro de uma partição).
Embora ainda suportadas pela maioria dos fabricantes de placas-mãe, tabelas de partição MBR são consideradas como sistema legado. A menos que esteja trabalhando com hardware fabricado antes de 2010, é melhor particionar um disco usando Tabela de Partição GUID. Leitores que precisarem usar MBR devem estar cientes do seguinte:
- A maioria das placas-mãe de depois de 2010 consideram MBR como modo de boot legado (suportado, porém não ideal).
- Devido ao uso de identificadores de 32 bits, tabelas de partição MBR não conseguem trabalhar com discos maiores do que 2 TiBs.
- A menos que sejam usadas partições estendidas, o MBR suporta um máximo de quatro partições.
- A configuração MBR não provê nenhuma cópia do MBR, assim, se uma aplicação sobrescreve o MBR, todas as informações de partições são perdidas.
Os autores deste Manual sugerem usar GPT sempre que possível nas instalações do Gentoo.
GPT
A configuração GPT ("GUID Partition Table" - Tabela de Partição GUID) usa identificadores de 64 bits para as partições. O local onde é armazenada a informação sobre as partições é muito maior que os 512 bytes da MBR o que significa que praticamente não há limite no número de partições de um disco GPT. Também o tamanho de uma partição tem um limite muito maior (quase 8 ZiB - sim, zebibytes).
Quando a interface do software de sistema entre o sistema operacional e o firmware é a UEFI (em vez da BIOS), o GPT é praticamente mandatório uma vez que surgirão problemas de compatibilidade com a MBR aqui.
A GPT também tem a vantagem de usar somas de checagem e redundância. Ele possui somas de checagem CRC32 para detectar erros no cabeçalho e tabelas de partição e tem um backup da GPT no final do disco. Esta tabela de backup pode ser usada para recuperar danos da GPT primária próxima do início do disco.
GPT ou MBR
Pela descrição acima, alguém pode imaginar que usar GPT é sempre o caminho recomendado, entretanto há alguns problemas.
Usar GPT em um computador baseado em BIOS funciona, mas com isso não é possível fazer dual boot com um sistema operacional Microsoft Windows. A razão é que o Microsoft Windows irá inicializar em modo UEFI se ele detectar uma etiqueta de partição GPT.
Alguns firmwares de placas mães configuradas para inicializar em modo BIOS/CSM/legado podem também ter problemas quando inicializar a partir de discos etiquetados como GPT. Nesse caso, pode ser possível contornar o problema adicionando o status "boot/active" à partição MBR, o que precisa ser feito através do fdisk com a opção -t dos
para forçá-lo a ler a tabela de partição usando o formato MBR.
Nesse caso, execute o fdisk e mude a sinalização usando a tecla a. Pressione 1 para selecionar a primeira partição, então use a tecla w para gravar as alterações no disco e saia do fdisk:
user $
fdisk -t dos /dev/sda
Welcome to fdisk (util-linux 2.24.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): a Partition number (1-4): 1 Command (m for help): w
Usando UEFI
Quando instalando o Gentoo em um sistema que usa UEFI para inicializar o sistema operacional (em vez da BIOS), é importante que uma partição de sistema EFI (ESP) seja criada. As instruções para o parted abaixo contém os passos necessários para fazer corretamente essa operação.
A ESP precisa ser uma partição do tipo FAT (algumas vezes mostradas como "vfat" em sistemas Linux). A especificação UEFI oficial denota que os sistemas de arquivos FAT12, FAT16, ou 32 irão ser reconhecidos pela firmware UEFI, apesar de que FAT32 é o recomendado para a ESP. Formate a ESP como FAT32:
root #
mkfs.fat -F 32 /dev/sda2
Se a partição FAT não for usada para a ESP, não haverá garantia que o firmware do sistema UEFI será capaz de encontrar o carregador de boot (ou o kernel do Linux) e provavelmente será incapaz de inicializar o sistema!
Armazenamento avançado
RAID Btrfs
Como mencionado acima, o btrfs tem a capacidade de criar sistemas de arquivos em dispositivos múltiplos. O sistema de arquivos btrfs criado dessa forma pode operar nos seguintes modos: raid0, raid1, raid10, raid5 e raid6. Os modos RAID 5 e 6 foram melhorados significativamente mas ainda são considerados instáveis. Depois que um sistema de arquivos em dispositivos múltiplos foi criado, novos dispositivos podem ser adicionados e dispositivos antigos removidos com uns poucos comandos. O btrfs exige maior envolvimento que outros sistemas de arquivos o que o torna não muito amigável para iniciantes.
Sistemas de arquivos ext4 podem ser convertidos em btrfs, o que pode ser útil para aqueles que gostariam de instalar o Gentoo em um sistema de arquivos estável e bem testado e gradualmente aumentar seus conhecimentos sobre novos sistemas de arquivos tais como o btrfs através de experimentação.
LVM
Os CDs de instalação para x86 proveem suporte para Gerenciador de Volumes Lógicos (LVM). O LVM aumenta a flexibilidade oferecida pela configuração de particionamento. As instruções de instalação abaixo focarão em partições "normais", mas mesmo assim é bom saber que o LVM também é suportado se for necessário. Visite o artigo LVM para mais detalhes. Iniciantes estejam avisados: apesar de completamente suportado LVM está fora do escopo deste guia.
Esquema de particionamento default
Até o final deste manual, o seguinte esquema de particionamento será usado como um layout simples de exemplo:
Partição | Sistema de arquivo | Tamanho | Descrição |
---|---|---|---|
/dev/sda1 | (bootloader) | 2M | Partição de boot BIOS |
/dev/sda2 | ext2 (ou FAT32 se UEFI está sendo usada) | 128M | Partição boot/Sistema EFI |
/dev/sda3 | (swap) | 512M ou maior | Partição de swap |
/dev/sda4 | ext4 | Resto do disco | Partição root |
Se isso já for suficiente e o leitor optou pelo caminho do GPT, ele pode saltar imediatamente para Default: Usando parted para particionar o disco. Aqueles ainda interessados em MBR (ei, acontece!) e usando o layout de exemplo podem saltar para Alternativa: Usando fdisk para particionar o disco.
Ambos o fdisk e o parted são utilitários de particionamento. O fdisk é bem conhecido, estável e recomendado para layout de particionamento MBR enquanto o parted foi um dos primeiros utilitários de gerenciamento de dispositivos de blocos do Linux a suportar partições GPT. Aqueles que gostam da interface do fdisk podem usar o gdisk (GPT fdisk) como alternativa ao parted.
Antes das instruções para criação das partições, o primeiro conjunto de seções descreverá em mais detalhes como os esquemas de particionamento podem ser criados mencionaremos as dificuldades mais comuns.
Criando um esquema de particionamento
Quantas partições e de que tamanho?
O número de partições é altamente dependente do ambiente. Por exemplo, se há muitos usuários, é aconselhável ter o /home/ separado pois isso aumenta a segurança e torna o backup mais fácil. Se o Gentoo estiver sendo instalado para ser um pequeno servidor de email, o /var/ deve ficar separado pois todos os emails armazenados ficam no /var/. Uma boa escolha do tipo do sistema de arquivos irá maximizar o desempenho. Servidores de jogos deverão ter o /opt/ separado já que a maioria dos servidores de jogos são instalados lá. A razão é similar ao do diretório /home/: segurança e backups. Na maioria das situações, o /usr/ deve ser grande: ele não apenas irá conter a maioria das aplicações como também armazena o repositório ebuild do Gentoo (por default localizado em /usr/portage) que sozinho ocupa cerca de 650 MiB. Essa estimativa de espaço em disco exclui ainda os diretórios packages/ e distfiles/ que geralmente são armazenados dentro desse repositório ebuild.
Depende muito do que o administrador pretende fazer. Partições ou volumes separados tem as seguintes vantagens:
- Escolha o sistema de arquivos de maior desempenho para cada partição ou volume.
- O sistema todo não ficará sem espaço se uma aplicação problemática encher todo o espaço de uma partição ou volume.
- Se necessário, a checagem do sistema de arquivos fica com o tempo reduzido, pois várias checagens podem ser feitas em paralelo (embora essa vantagem é maior com múltiplos discos do que com múltiplas partições).
- A segurança pode ser aumentada montando algumas partições ou volumes como somente leitura,
nosuid
(bits setuid são ignorados),noexec
(bits de execução são ignorados) etc.
Contudo, múltiplas partições tem desvantagens também. Se não configurado corretamente, o sistema pode ficar com muito espaço livre em uma partição e nenhum em outra. Outro percalço é que partições separadas - especialmente para pontos de montagem importantes como /usr/ ou /var/ - frequentemente requerem que o administrador inicialize o sistema com um initramfs para montar a partição antes que outros scripts de inicialização executem. Esse não é sempre o caso, então os resultados podem variar.
Há também o limite de 15 partições para SCSI e SATA, a menos que sejam utilizadas etiquetas GPT.
E o espaço de swap?
Não existe um valor perfeito para a partição de swap. O propósito da partição de swap é prover armazenamento em disco ao kernel quando a memória interna (RAM) estiver acabando. Um espaço de swap permite ao kernel mover páginas de memória que provavelmente não serão necessárias tão logo para o disco (swap ou page-out), liberando memória. É claro que, se essa memória de repente for necessária, essas páginas precisam ser trazidas de volta para a memória (page-in) o que pode ser demorado (pois discos são muito lentos comparados com a memória interna).
Se o sistema não for executar aplicações que necessitem de muita memória ou se o sistema tiver uma grande quantidade de memória disponível, então provavelmente ele não vai precisar de muito espaço de swap. Porém, o espaço de swap é também usado para armazenar a memória inteira no caso de hibernação. Se o sistema for precisar de hibernação, então um espaço de swap maior será necessário, pelo menos do tamanho da memória RAM instalada no sistema.
O que é a partição de boot da BIOS?
A partição de boot da BIOS é uma partição muito pequena (de 1 a 2 MB) na qual os gerenciadores de inicialização como o GRUB2 podem gravar dados adicionais que não couberem no espaço alocado (umas poucas centenas de bytes no caso da MBR) e que não puderem ser colocados em outro lugar.
Tais partições nem sempre são necessárias mas, considerando o baixo consumo de espaço e a dificuldade que teríamos documentando a pletora de diferentes particionamentos caso não a criássemos, é recomendável criá-la de qualquer forma.
Para ficar claro, a partição de inicialização da BIOS é necessária quando um layout de partições GPT é usado com o GRUB2 em modo PC/BIOS. Ela não é necessária quando é usado modo EFI/UEFI.
Default: Usando parted para particionar o disco
Neste capítulo, o exemplo de layout de partições mencionado anteriormente será usado:
Partição | Descrição |
---|---|
/dev/sda1 | Partição de boot da BIOS |
/dev/sda2 | Partição de boot |
/dev/sda3 | Partição de swap |
/dev/sda4 | Partição root |
Altere o layout de particionamento de acordo com suas preferências pessoais.
Visualizando o layout de particionamento atual com o parted
O programa parted oferece uma interface simples para o particionamento de discos e suporta partições bem grandes (mais de 2TB). Execute o parted no disco (em nosso exemplo, usamos /dev/sda). É recomendado solicitar ao parted para usar alinhamento de partições otimizado:
root #
parted -a optimal /dev/sda
GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands.
Alinhamento significa que as partições iniciam em limites bem estabelecidos do disco, assegurando que as operações no disco do nível do sistema operacional (recuperar páginas de disco) usam a menor quantidade de operações internas de disco. Partições desalinhadas podem exigir que o disco busque duas páginas em vez de uma mesmo que o sistema operacional tenha solicitado apenas uma.
Para conhecer todas as opções suportadas pelo parted, digite help e tecle Return.
Configurando a etiqueta GPT
A maioria dos discos das arquiteturas x86 e amd64 são preparados usando etiquetas msdos. Usando o parted, o comando para colocar uma etiqueta GPT no disco é mklabel gpt:
Trocar o tipo de partição irá remover todas as partições do disco. Todos os dados do disco serão perdidos.
(parted)
mklabel gpt
Para que o disco use o layout MBR, use mklabel msdos.
Removendo todas as partições usando parted
Se isto ainda não foi feito (por exemplo, através da operação com o mklabel anteriormente, ou porque o disco foi recém formatado), primeiro remova todas as partições do disco. Tecle print para ver todas as partições existentes, e rm <N> onde N
é o número da partição a ser removida.
(parted)
rm 2
Faça o mesmo para todas as partições que não forem necessárias. Entretanto, certifique-se de não cometer nenhum erro aqui - o parted executa as mudanças imediatamente (ao contrário do fdisk que as armazena, permitindo ao usuário "desfazer" suas mudanças antes de salvar ou saindo do fdisk).
Criando as partições
Agora o parted será usado para criar as partições com as seguintes configurações:
- O tipo da partição. Normalmente é primária ("primary"). Se a etiqueta de partição msdos for usada, tenha em mente que não podem ser criadas mais que 4 partições primárias. Se forem necessárias mais do que 4 partições, faça uma das 4 primeiras partições como estendida ("extended") e crie partições lógicas dentro dela.
- A localização do início da partição (que pode ser expressa em MB, GB, ...)
- A localização do fim da partição (que pode ser expressa em MB, GB, ...)
Primeiro, diga ao parted que a unidade que iremos trabalhar é megabytes (na verdade, mebibytes, abreviado como MiB que é a notação "padrão", mas usaremos MB no texto que é muito mais comum):
(parted)
unit mib
Agora crie uma partição de 2 MB que será usada pelo gerenciador de boot GRUB2 mais tarde. Use o comando mkpart para isso e informe ao parted para iniciar em 1 MB e terminar em 3 MB (criando assim uma partição de 2 MB).
(parted)
mkpart primary 1 3
(parted)
name 1 grub
(parted)
set 1 bios_grub on
(parted)
print
Model: Virtio Block Device (virtblk) Disk /dev/sda: 20480MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1.00MiB 3.00MiB 2.00MiB grub bios_grub
Faça o mesmo para a partição de boot (128 MB), partição de swap (512 MB, no exemplo) e partição root, que cobre o resto do disco (para a qual a localização do fim é marcada como -1, significando o fim do disco menos 1 MB, que é o mais distante que uma partição pode ir).
(parted)
mkpart primary 3 131
(parted)
name 2 boot
(parted)
mkpart primary 131 643
(parted)
name 3 swap
(parted)
mkpart primary 643 -1
(parted)
name 4 rootfs
Se usar a interface UEFI para inicializar o sistema (em vez da BIOS), marque a partição de boot como Partição de Sistema UEFI (UEFI System Partition). O parted faz isso automaticamente quando a opção "boot" é configurada em uma partição:
(parted)
set 2 boot on
O resultado final se parecerá com:
(parted)
print
Model: Virtio Block Device (virtblk) Disk /dev/sda: 20480MiB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1.00MiB 3.00MiB 2.00MiB grub bios_grub 2 3.00MiB 131MiB 128MiB boot boot 3 131MiB 643MiB 512MiB swap 4 643MiB 20479MiB 19836MiB rootfs
Em uma instalação UEFI, as sinalizações de boot e esp irão aparecer na partição de boot.
Use o comando quit para sair do parted.
Alternativa: Usando fdisk para particionar o disco
Apesar das versões recentes do fdisk suportarem GPT, ele ainda mostrou ter alguns problemas com ela. As instruções dadas abaixo assumem que o layout de partições utilizado é o MBR.
As partes seguintes explicam como criar o layout de partições de exemplo usando o fdisk. O layout de partições de exemplo foi mostrada anteriormente:
Partição | Descrição |
---|---|
/dev/sda1 | Partição de boot da BIOS |
/dev/sda2 | Partição de boot |
/dev/sda3 | Partição de swap |
/dev/sda4 | Partição de root |
Altere o layout das partições de acordo com suas preferências pessoais.
Visualizando o layout de partições atual
O fdisk é uma ferramenta popular e poderosa para dividir um disco em partições. Dispare o fdisk no disco desejado (em nosso exemplo usamos o /dev/sda):
root #
fdisk /dev/sda
Para usar o suporte GPT, adicione
-t gpt
. Recomenda-se prestar muita atenção à saída do fdisk no caso de novas versões do fdisk alterarem seu comportamento padrão de usar por default o MBR. O restante destas instruções assume um layout MBR.Use a tecla p para exibir a configuração atual das partições do disco:
Command (m for help):
p
Disk /dev/sda: 240 heads, 63 sectors, 2184 cylinders Units = cylinders of 15120 * 512 bytes Device Boot Start End Blocks Id System /dev/sda1 * 1 14 105808+ 83 Linux /dev/sda2 15 49 264600 82 Linux swap /dev/sda3 50 70 158760 83 Linux /dev/sda4 71 2184 15981840 5 Extended /dev/sda5 71 209 1050808+ 83 Linux /dev/sda6 210 348 1050808+ 83 Linux /dev/sda7 349 626 2101648+ 83 Linux /dev/sda8 627 904 2101648+ 83 Linux /dev/sda9 905 2184 9676768+ 83 Linux
Esse disco em particular foi configurado para abrigar sete sistemas de arquivos Linux (cada uma com uma partição correspondente listada como "Linux) bem como uma partição de swap (listada como "Linux swap").
Removendo todas as partições com o fdisk
Primeiro remova todas as partições existentes do disco. Tecle d para apagar uma partição. Por exemplo, para apagar a partição /dev/sda1:
Command (m for help):
d
Partition number (1-4): 1
A partição foi marcada para ser removida. Ela não vai aparecer na lista de partições (usando a tecla p), mas ela não será removida até que as mudanças sejam gravadas. Isso permite que o usuário aborte a operação no caso de algum erro - nesse caso, digite q imediatamente e tecle Enter e a partição não será apagada.
Tecle p repetidamente para ver a lista das partições e d e o número da partição para apagá-la. No final, a tabela de partições estará vazia:
Command (m for help):
p
Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System
Agora que a tabela de partições na memória está vazia, estamos prontos para criar as partições.
Criando a partição de boot da BIOS
Primeiro crie uma partição de boot da BIOS bem pequena. Tecle n para criar uma nova partição, e p para selecionar partição primária, seguida da tecla 1 para selecionar a primeira partição primária. Quando perguntado pelo primeiro setor, certifique-se que comece em 2048 (o que é necessário para o gerenciador de boot) e tecle Enter. Quando perguntado pelo último setor, digite +2M para criar uma partição de 2 Mbytes de tamanho:
O início do setor em 2048 é uma segurança no caso do gerenciador de boot não detectar esta partição para seu uso.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (64-10486533532, default 64): 2048 Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +2M
Marque a partição para a UEFI:
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 4 Changed system type of partition 1 to 4 (BIOS boot)
Usar UEFI com layout de partições MBR é desencorajado. Se for usado um sistema capaz de trabalhar com UEFI, use o layout GPT.
Criando a partição de boot
Agora crie uma pequena partição de boot. Tecle n para criar uma nova partição, e p para selecionar partição primária, seguida da tecla 2 para selecionar a segunda partição primária. Quando perguntado pelo primeiro setor, aceite o valor default teclando Enter. Quando perguntado pelo último setor, digite +128M para criar uma partição de 128 Mbytes de tamanho:
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First sector (5198-10486533532, default 5198): (Hit enter) Last sector, +sectors +size{M,K,G} (4096-10486533532, default 10486533532): +128M
Agora, pressionando p e Enter, a seguinte saída com as partições é mostrada:
Command (m for help):
p
Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 5198+ ef EFI (FAT-12/16/32) /dev/sda2 3 14 105808+ 83 Linux
Tecle a para alternar a sinalização de boot de uma partição e selecione 2. Depois de pressionar p novamente, note que um * é mostrado na coluna "Boot".
Criando a partição de swap
Para criar uma partição de swap tecle n para criar uma nova partição, e p para o fdisk criar uma partição primária. Então digite 3 para criar a terceira partição primária, /dev/sda3. Quando perguntado pelo primeiro setor, tecle Enter. Quando perguntado pelo último setor, digite +512M (ou qualquer outro tamanho necessário para área de swap) para criar uma partição de 512 MB de tamanho:
Depois de tudo feito, digite t para configurar o tipo da partição, 3 para selecionar a partição recém criada e então digite "82" para configurar o tipo da partição para "Linux Swap".
Criando a partição de root
Finalmente, para criar a partição root, tecle n para criar uma nova partição, e p para o fdisk criar uma partição primária. Então digite 4 para criar a quarta partição primária, /dev/sda4. Quando perguntado pelo primeiro setor, tecle Enter. Quando perguntado pelo último setor, tecle Enter para criar uma partição que ocupe o restante do espaço disponível do disco. Depois de completar esses passos, teclando p deve ser mostrada uma tabela de partições similar a esta:
Command (m for help):
p
Disk /dev/sda: 30.0 GB, 30005821440 bytes 240 heads, 63 sectors/track, 3876 cylinders Units = cylinders of 15120 * 512 = 7741440 bytes Device Boot Start End Blocks Id System /dev/sda1 1 3 5198+ ef EFI (FAT-12/16/32) /dev/sda2 * 3 14 105808+ 83 Linux /dev/sda3 15 81 506520 82 Linux swap /dev/sda4 82 3876 28690200 83 Linux
Gravando o layout de partições
Para gravar o layout de partições e sair do fdisk, digite w.
Command (m for help):
w
Com as partições criadas, é hora de criar sistemas de arquivos nelas.
Criando sistemas de arquivos
Introdução
Agora que as partições estão criadas, é hora de criar um sistema de arquivos nelas. Na próxima seção os diversos sistemas de arquivos suportados pelo Linux são descritos. Leitores que já souberem qual sistema de arquivos irão usar podem continuar em Criando um sistema de arquivos em uma partição.
Sistemas de arquivos
Vários tipos de sistemas de arquivos estão disponíveis. Alguns são considerados mais estáveis na arquitetura x86 - é recomendado se informar sobre os sistemas de arquivos e o estado do suporte de cada um antes de selecionar algum mais experimental para partições importantes.
- btrfs
- Um sistema de arquivos de próxima geração que provê vários recursos avançados como instantâneos (snapshots), autocorreção através de checksums, compressão transparente, subvolumes e RAID integrado. Algumas poucas distribuições começaram a distribui-lo como uma opção integrada, mas não está ainda pronto para ambientes de produção. Relatos de corrupção de sistemas de arquivos ainda são comuns. Seus desenvolvedores pedem aos usuários que utilizem a última versão do kernel por segurança pois as versões mais antigas têm problemas conhecidos. Isso tem sido o caso por anos e ainda é cedo para dizer se alguma coisa mudou. Correções para problemas de corrupção de dados são raramente portadas para as versões mais antigas do kernel. Proceda com cuidado ao usar este sistema de arquivos!
- ext2
- É o sistema de arquivo mais testado e estável mas não possui metadados de journaling, o que significa que a checagem de rotina do sistema de arquivos ext2 na inicialização pode ser bem demorada. Existe atualmente uma considerável seleção de sistemas de arquivos com journaling de nova geração que podem ser checados por consistência muito rapidamente e são, assim, geralmente preferidos sobre seus correspondentes sem journaling. Sistemas de arquivos com journaling evitam grandes esperas quando o sistema é inicializado e o sistema de arquivos encontra-se inconsistente.
- ext3
- A versão do sistema de arquivos ext2 com journaling, possuindo metadados de journaling para rápida recuperação além de outros modos aperfeiçoados de journaling como journaling completo de dados e de dados ordenados. Usa um índice HTree que proporciona alto desempenho em quase todas as situações. Em resumo, o ext3 é um sistema de arquivos muito bom e confiável.
- f2fs
- O Sistema de Arquivos "Amigável a Flash" (Flash-Friendly File System) foi originalmente criado pela Samsung para uso com memória flash NAND. Ainda hoje (segundo trimestre de 2016), esse sistema de arquivos é considerado imaturo, mas é uma escolha decente quando o Gentoo estiver sendo instalado em cartões microSD, pendrives ou outro tipo de dispositivos baseados em flash.
- ext4
- Inicialmente criado como uma derivação do ext3, o ext4 traz novos recursos, melhorias de desempenho e remoção de limites de tamanhos com mudanças moderadas no formato em disco. Ele pode cobrir volumes de até 1 EB com limite de tamanho de arquivo de 16TB. Em vez da alocação em bloco de mapa de bits clássico do ext2/3 o ext4 usa extensões, o que melhora o desempenho com arquivos grandes e reduz a fragmentação. O ext4 também provê algorítmos de alocação de blocos mais sofisticados (alocação atrasada e alocação múltipla de blocos), dando ao driver do sistema de arquivos mais formas de otimizar o layout dos dados no disco. O ext4 é o sistema de arquivos recomendado para propósitos gerais e plataformas em geral.
- JFS
- Sistema de arquivos com journaling de alto desempenho da IBM. O JFS é um sistema de arquivos baseado em árvore B+ confiável e rápido, com bom desempenho em várias situações.
- ReiserFS
- Um sistema de arquivos baseado em árvore B+ que tem bom desempenho geral, especialmente quando trabalha com muitos arquivos pequenos ao custo de ciclos de CPU extras. O ReiserFS aparentemente está recebendo menos manutenção que os outros sistemas de arquivos.
- XFS
- Um sistema de arquivos com metadados de journaling que vem com um robusto conjunto de recursos e é otimizado para escalabilidade. O XFS parece ser menos tolerante a vários problemas de hardware.
- vfat
- Também conhecido como FAT32, é suportado pelo Linux mas não tem suporte para configurações de permissões. É mais utilizado para interoperabilidade com outros sistemas operacionais (principalmente o Microsoft Windows) mas é também uma necessidade para alguns sistemas de firmware (como o UEFI).
- NTFS
- Este sistema de arquivos com "Nova Tecnologia" ("New Technology Filesystem") é o principal sistema de arquivos do Microsoft Windows. Similar ao vfat descrito acima, ele não armazena permissões ou atributos estendidos necessários para correto funcionamento do BSD ou Linux e, assim, não pode ser usado como sistema de arquivos da partição raiz (root). Deve ser usado apenas para interoperabilidade com sistemas Microsoft Windows (ênfase no apenas).
Se usar o ext2, ext3 ou ext4 em uma partição pequena (menor que 8GB), então o sistema de arquivos deve ser criado com opções adequadas para reservar inodes suficientes. O programa mke2fs (mkfs.ext2) usa a configuração "bytes por inode" para calcular quantos inodes um sistema de arquivos deve ter. Em partições pequenas, é aconselhável aumentar o número de inodes calculado.
No ext2, isso pode ser feito com o comando a seguir:
root #
mkfs.ext2 -T small /dev/<device>
No ext3 e ext4, acrescente a opção -j
para habilitar o journaling:
root #
mkfs.ext2 -j -T small /dev/<device>
Isso normalmente irá quadruplicar o número de inodes de um dado sistema de arquivos já que o número de "bytes por inode" é reduzido de um para cada 16kB para um para cada 4kB. Isso pode ser ajustado ainda mais fornecendo a relação:
root #
mkfs.ext2 -i <ratio> /dev/<device>
Criando um sistema de arquivos em uma partição
Para criar um sistema de arquivos em uma partição ou volume, há utilitários disponíveis para o usuário para cada possível sistema de arquivos. Clique no nome do sistema de arquivo na tabela abaixo para informações adicionais para cada sistema de arquivo:
Sistema de arquivo | Comando para criação | Disponível no CD mínimo? | Pacote |
---|---|---|---|
btrfs | mkfs.btrfs | Sim | sys-fs/btrfs-progs |
ext2 | mkfs.ext2 | Sim | sys-fs/e2fsprogs |
ext3 | mkfs.ext3 | Sim | sys-fs/e2fsprogs |
ext4 | mkfs.ext4 | Sim | sys-fs/e2fsprogs |
f2fs | mkfs.f2fs | Sim | sys-fs/f2fs-tools |
jfs | mkfs.jfs | Sim | sys-fs/jfsutils |
reiserfs | mkfs.reiserfs | Sim | sys-fs/reiserfsprogs |
xfs | mkfs.xfs | Sim | sys-fs/xfsprogs |
vfat | mkfs.vfat | Sim | sys-fs/dosfstools |
NTFS | mkfs.ntfs | Sim | sys-fs/ntfs3g |
Por exemplo, para ter a partição de boot (/dev/sda2) em ext2 e a partição root (/dev/sda4) em ext4 como usado no exemplo de estrutura de partições, o seguintes comandos seriam usados:
root #
mkfs.ext2 /dev/sda2
root #
mkfs.ext4 /dev/sda4
Agora crie os sistemas de arquivos nas partições recém criadas (ou volumes lógicos):
Ativando a partição de swap
mkswap é o comando que é utilizado para inicializar as partições de swap:
root #
mkswap /dev/sda3
Para ativar a partição de swap, use swapon:
root #
swapon /dev/sda3
Crie e ative o swap com os comandos mostrados acima.
Montando a partição root
Agora que as partições estão inicializadas e contém um sistema de arquivos, é hora de montar essas partições. Use o comando mount, mas não se esqueça de criar os diretórios de montagem necessários para cada partição criada. Como exemplo montaremos as partições root e boot:
root #
mount /dev/sda4 /mnt/gentoo
Se o /tmp/ precisar ficar em uma partição separada, certifique-se de alterar suas permissões depois de montar:
root #
chmod 1777 /mnt/gentoo/tmp
Mais tarde nestas instruções o sistema de arquivos proc (uma interface virtual com o kernel) e também outros pseudo sistemas de arquivos serão montados. Mas antes nós instalamos os arquivos de instalação do Gentoo.