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:Alpha/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.
Slices (fatias)
Apesar de ser teoricamente possível usar um disco inteiro para alojar um sistema Linux, isso quase nunca é feito na prática. Em vez disso, dispositivos de blocos inteiros são quebrados em dispositivos de blocos menores e mais gerenciáveis. Em sistemas Alpha são chamados de slices (fatias).
Nas seções a seguir, as instruções de instalação usará o exemplo de particionamento da configuração ARC/AlphaBIOS. Por favor, ajuste às suas preferências pessoais!
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.
Usando fdisk para particionar um disco (SRM apenas)
As partes a seguir mostram como criar um layout de slices para o SRM:
Slice | Descrição |
---|---|
/dev/sda1 | Slice de swap |
/dev/sda2 | Slice de root |
/dev/sda3 | Disco inteiro (requerida) |
Altere o layout das slices de acordo com suas preferências.
Identificando os discos disponíveis
Para descobrir quais discos estão disponíveis no sistema, use os seguintes comandos:
Para discos IDE:
root #
dmesg | grep 'drive$'
Para discos SCSI:
root #
dmesg | grep 'scsi'
A saída irá mostrar quais discos foram detectados e suas respectivas entradas no /dev/. Nas partes seguintes assumiremos que o disco é um disco SCSI em /dev/sda.
Agora rode o fdisk:
root #
fdisk /dev/sda
Removendo todas as slices
Se o disco rígido estiver totalmente em branco, primeiro crie uma etiqueta de disco (disklabel) BSD.
Command (m for help):
b
/dev/sda contains no disklabel. Do you want to create a disklabel? (y/n) y A bunch of drive-specific info will show here 3 partitions: # start end size fstype [fsize bsize cpg] c: 1 5290* 5289* unused 0 0
Começamos apagando todas as slices exceto a 'c' (requerida pela disklabel BSD). Abaixo é mostrado como apagar uma slice (no exemplo usamos a 'a'). Repita o processo para apagar todas as outras slices (novamente, exceto a 'c').
Use p para ver as todas as slices existentes. d é usado para apagar uma slice.
BSD disklabel command (m for help):
p
8 partitions: # start end size fstype [fsize bsize cpg] a: 1 235* 234* 4.2BSD 1024 8192 16 b: 235* 469* 234* swap c: 1 5290* 5289* unused 0 0 d: 469* 2076* 1607* unused 0 0 e: 2076* 3683* 1607* unused 0 0 f: 3683* 5290* 1607* unused 0 0 g: 469* 1749* 1280 4.2BSD 1024 8192 16 h: 1749* 5290* 3541* unused 0 0
BSD disklabel command (m for help):
d
Partition (a-h): a
Depois de repetir esse passos para todas as slices, uma listagem deve mostrar algo similar a:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] c: 1 5290* 5289* unused 0 0
Criando a slice de swap
Em sistemas Alpha não há necessidade de uma slice de boot separada. Porém, o primeiro cilindro não pode ser usado pois a imagem "aboot" será gravada lá.
Será criada uma slice de swap iniciando no terceiro cilindro com o tamanho total de 1 GB. Use n para criar uma nova slice. Depois de criar a slice, mudamos seu tipo para 1 (um), significando swap.
BSD disklabel command (m for help):
n
Partition (a-p): a First cylinder (1-5290, default 1): 3 Last cylinder or +size or +sizeM or +sizeK (3-5290, default 5290): +1024M
BSD disklabel command (m for help):
t
Partition (a-c): a Hex code (type L to list codes): 1
Depois desses passos, um layout similar ao seguinte deve ser mostrado:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] a: 3 1003 1001 swap c: 1 5290* 5289* unused 0 0
Criando a slice de root
Criaremos agora uma slice de root, iniciando do primeiro cilindro após a slice de swap. Use o comando p para ver onde termina a slice de swap. No nosso exemplo termina em 1003, fazendo a slice de root iniciar em 1004.
Outro problema é que existe um bug no disk que o faz pensar que o número de cilindros é um a mais que o número real de cilindros. Em outras palavras, quando perguntado pelo número de cilindros, decremente o número de cilindros (neste exemplo: 5290) em um.
Depois da slice criada, alteramos o tipo para 8, significando ext2.
BSD disklabel command (m for help):
n
Partition (a-p): b First cylinder (1-5290, default 1): 1004 Last cylinder or +size or +sizeM or +sizeK (1004-5290, default 5290): 5289
BSD disklabel command (m for help):
t
Partition (a-c): b Hex code (type L to list codes): 8
O layout das slices resultante deve ser similar ao abaixo:
BSD disklabel command (m for help):
p
3 partitions: # start end size fstype [fsize bsize cpg] a: 3 1003 1001 swap b: 1004 5289 4286 ext2 c: 1 5290* 5289* unused 0 0
Salve o layout das slices e saia
Saia do aplicativo fdisk digitando w. Isso vai também salvar o layout das partições.
Command (m for help):
w
Usando fdisk para particionar o disco (apenas ARC/AlphaBIOS)
As partes seguintes mostram como criar o layout de partições do exemplo para o ARC/AlphaBIOS:
Partition | Description |
---|---|
/dev/sda1 | Boot partition |
/dev/sda2 | Swap partition |
/dev/sda3 | Root partition |
Altere o layout das partições de acordo com suas preferências pessoais.
Identificando os discos discponíveis
Para descobrir quais discos estão disponíveis no sistema, use os seguintes comandos:
Para discos IDE:
root #
dmesg | grep 'drive$'
Para discos SCSI:
root #
dmesg | grep 'scsi'
A saída irá mostrar quais discos foram detectados e suas respectivas entradas no /dev/. Nas partes seguintes assumiremos que o disco é um disco SCSI em /dev/sda.
Agora rode o fdisk:
root #
fdisk /dev/sda
Removendo todas as partições
Se o disco rígido estiver totalmente em branco, primeiro crie uma etiqueta de disco (disklabel) DOS.
Command (m for help):
o
Building a new DOS disklabel.
Iniciamos apagando todas as partições. O exemplo abaixo mostra como apagar uma partição (no exemplo usamos a partição '1'). Repita o processo para apagar todas as outras partições.
Use a tecla p para ver todas as partições. d é usada para apagar uma partição.
command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 478 489456 83 Linux /dev/sda2 479 8727 8446976 5 Extended /dev/sda5 479 1433 977904 83 Linux Swap /dev/sda6 1434 8727 7469040 83 Linux
command (m for help):
d
Partition number (1-6): 1
Criando a partição de boot
Em sistemas Alpha que usam o MILO para dar boot, temos que criar uma pequena partição vfat.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-8727, default 1): 1 Last cylinder or +size or +sizeM or +sizeK (1-8727, default 8727): +16M
Command (m for help):
t
Selected partition 1 Hex code (type L to list codes): 6 Changed system type of partition 1 to 6 (FAT16)
Criando a partição de swap
Criaremos uma partição de swap com o total de 1 GB. Use a tecla n para criar uma nova partição.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (17-8727, default 17): 17 Last cylinder or +size or +sizeM or +sizeK (17-8727, default 8727): +1000M
Command (m for help):
t
Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap)
Depois desses passos, um layout similar ao seguinte deve ser mostrado:
Command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 16 16368 6 FAT16 /dev/sda2 17 971 977920 82 Linux swap
Criando a partição de root
Criaremos agora a partição de root. De novo, simplesmente use o comando n.
Command (m for help):
n
Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (972-8727, default 972): 972 Last cylinder or +size or +sizeM or +sizeK (972-8727, default 8727): 8727
Depois desses passos, um layout similar ao seguinte deve ser mostrado:
Command (m for help):
p
Disk /dev/sda: 9150 MB, 9150996480 bytes 64 heads, 32 sectors/track, 8727 cylinders Units = cylinders of 2048 * 512 = 1048576 bytes Device Boot Start End Blocks Id System /dev/sda1 1 16 16368 6 FAT16 /dev/sda2 17 971 977920 82 Linux swap /dev/sda3 972 8727 7942144 83 Linux
Salve o layout de partições e saia
Salve as mudanças feitas no fdisk digitando w.
Command (m for help):
w
Agora que as partições estão criadas, continue em Criando os sistemas de arquivos.
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 alpha - é 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/sda1) em ext2 e a partição root (/dev/sda3) em ext4 como usado no exemplo de estrutura de partições, o seguintes comandos seriam usados:
root #
mkfs.ext2 /dev/sda1
root #
mkfs.ext4 /dev/sda3
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/sda2
Para ativar a partição de swap, use swapon:
root #
swapon /dev/sda2
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/sda3 /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.