Manual:IA64/Instalação/Discos

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:IA64/Installation/Disks and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎português do Brasil • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
IA64 Handbook
Installation
About the installation
Choosing the media
Configuring the network
Preparing the disks
Installing stage3
Installing base system
Configuring the kernel
Configuring the system
Installing tools
Configuring the bootloader
Finalizing
Working with Gentoo
Portage introduction
USE flags
Portage features
Initscript system
Environment variables
Working with Portage
Files and directories
Variables
Mixing software branches
Additional tools
Custom package repository
Advanced features
Network configuration
Getting started
Advanced configuration
Modular networking
Wireless
Adding functionality
Dynamic management


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.


Partições

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 IA64 são chamados de partições.

Sistemas Itanium usam EFI ("Extensible Firmware Interface" - Interface de Firmware Estensível) para dar boot. O formato da tabela de partição que o EFI entende é o GPT ("GUID Partition Table" - Tabela de Partição GUID). O programa de particionamento que entende GPT é chamado "parted", assim, essa é a ferramenta usada abaixo. Além disso, o EFI pode ler apenas sistemas de arquivo FAT, então esse é o formato usado para a partição de boot EFI, onde o kernel será instalado pelo "elilo".

Armazenamento avançado

Os CDs de instalação do IA64 provêm suporte ao LVM2. O LVM2 aumenta a flexibilidade oferecida pela configuração de particionamento. Durante as instruções de instalação, focaremos em partições "normais", mas mesmo assim é bom saber que o LVM2 também é suportado.

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 /var/db/repos/gentoo) que sozinho ocupa cerca de 650 MiB. Essa estimativa de espaço em disco exclui ainda os diretórios packages/ e distfiles/ que são armazenados no diretório /var/cache/ por default.

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.


Exemplos de esquema de partição não-default

Um exemplo de particionamento de um disco de 20GB é mostrado abaixo, usado em um laptop de demonstração (contendo servidor web, servidor de e-mail, gnome etc):

root #df -h
Filesystem    Type    Size  Used Avail Use% Mounted on
/dev/sda5     ext4    509M  132M  351M  28% /
/dev/sda2     ext4    5.0G  3.0G  1.8G  63% /home
/dev/sda7     ext4    7.9G  6.2G  1.3G  83% /usr
/dev/sda8     ext4   1011M  483M  477M  51% /opt
/dev/sda9     ext4    2.0G  607M  1.3G  32% /var
/dev/sda1     ext2     51M   17M   31M  36% /boot
/dev/sda6     swap    516M   12M  504M   2% <not mounted>
(Unpartitioned space for future usage: 2 GB)

O /usr/ está um tanto cheio (83% usado), mas uma vez todos os softwares instalados, o /usr/ não tende a crescer muito. Mesmo que alocar alguns gigabytes de espaço em disco para o /var/ possa parecer excessivo, lembre-se que o portage usa essa partição por default para a compilação dos pacotes. Para manter o /var/ em um tamanho razoável, tal como 1GB, altere a variável PORTAGE_TMPDIR em /etc/portage/make.conf para apontar para outra partição com espaço livre suficiente para compilar pacotes extremamente grandes tal como o LibreOffice.

Usando parted para particionar o disco

As partes seguintes explicam como criar o esquema de particionamento usado com o exemplo no restante destas instruções de instalação, a saber:

Partição Descrição
/dev/sda1 Partição de boot EFI
/dev/sda2 Partição de swap
/dev/sda3 Partição root

Altere o layout das partições de acordo com suas preferências pessoais.

Visualizando o layout de partições atual

parted é o editor de partições da GNU. Execute o parted no disco (no nosso exemplo usamos /dev/sda):

root #parted /dev/sda

Uma vez no parted, um sinal de pronto como o abaixo é mostrado:

(parted)

Neste ponto um dos comandos disponíveis é "help", para ver outros comandos disponíveis. Outro comando é "print", para mostrar a configuração atual das partições do disco.

(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017    203.938  fat32                             boot
2        203.938   4243.468  linux-swap
3       4243.469  34724.281  ext4

Essa configuração em particular é bem similar à recomendada acima. Note na segunda linha que o tipo da tabela de partição é GPT. Se for diferente o sistema ia64 não será capaz de dar boot por esse disco. Para explicar como as partições são criadas, vamos primeiro remover as partições e depois recriá-las.

Removendo todas as partições

Nota
Diferentemente do fdisk e de alguns outros programas de particionamento que postergam a aplicação das mudanças até que o comando de gravação seja dado, os comandos do parted são aplicados imediatamente. Assim, uma vez que as partições são criadas ou removidas, não há como desfazer as mudanças.

O modo fácil de remover todas as partições e começar do zero, o que garante que estaremos usando o tipo de partição correto, é criar uma nova tabela de partição usando o comando mklabel. O resultado é uma tabela de partição GPT vazia.

(parted) mklabelgpt
(parted) mklabelprint
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags

Agora que a tabela de partições está vazia, estamos prontos para criar as partições. Usaremos um esquema de particionamento default como discutido anteriormente. Obviamente, não siga estas instruções ao pé da letra, mas ajuste às suas preferências pessoais.

Criando a partição de boot EFI

Primeiro crie uma pequena partição de boot EFI. É necessário que seja um sistema de arquivos FAT para que o firmware IA64 seja capaz de lê-la. Nosso exemplo cria com 32 MB, apropriada para armazenar os kernels e a configuração do elilo. É esperado que cada kernel IA64 tenha cerca de 5 MB, o que deixa essa configuração com algum espaço para crescer e fazer experimentos.

(parted)mkpart primary fat32 0 32
(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32

Criando a partição de swap

Vamos agora criar a partição de swap. O tamanho clássico para se criar a partição de swap era de duas vezes o tamanho da RAM do sistema. Em sistemas modernos com muita memória isso não é mais necessário. Para a maioria dos sistemas desktop uma partição de swap de 512 megabytes é suficiente. Para um servidor, considere criar uma partição maior de modo a antecipar as necessidades do servidor.

(parted)mkpart primary linux-swap 32 544
(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32
2         32.000    544.000

Criando a partição de root

Finalmente, crie a partição de root. Nossa configuração fará a partição de root ocupar o resto do disco. O sistema de arquivos default é o ext4, mas é possível também usar ext2, jfs, reiserfs ou xfs. O sistema de arquivos real não é criado neste passo, mas a tabela de partições contém uma indicação do tipo de sistema de arquivos de cada partição e é uma boa ideia fazer a tabela casar com nossas intenções.

(parted)mkpart primary ext4 544 34732.890
(parted)print
Disk geometry for /dev/sda: 0.000-34732.890 megabytes
Disk label type: gpt
Minor    Start       End     Filesystem  Name                  Flags
1          0.017     32.000  fat32
2         32.000    544.000
3        544.000  34732.874

Saindo do parted

Para sair do parted, digite "quit". Não é necessário salvar as alterações do esquema de partições pois o parted grava as alterações conforme elas são feitas. O parted irá mostrar um lembrete para atualizar o arquivo /etc/fstab, o que é feito adiante nas instruções de instalação.

(parted)quit
Information: Don't forget to update /etc/fstab, if necessary.


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 ia64 - é 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, ext3 ou ext4, isso pode ser feito com um dos seguintes comandos, respectivamente:

root #mkfs.ext2 -T small /dev/<dispositivo>
root #mkfs.ext3 -T small /dev/<dispositivo>
root #mkfs.ext4 -T small /dev/<dispositivo>

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 root (/dev/sda3) em ext4 como usado no exemplo de estrutura de partições, o seguintes comandos seriam usados:


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 :

root #mount /dev/sda3 /mnt/gentoo
Nota
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
Isso também vale para o /var/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.