Manual:IA64/Blocos/Discos
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 design do layout de partições é altamente dependente das demandas do sistema e do(s) sistema(s) de arquivos aplicados ao dispositivo. Caso exista muitos usuários, é aconselhável ter o /home/ em uma partição separada pois isso traz segurança e torna o backup e outros tipos de manutenção mais fáceis. Se o Gentoo estiver sendo instalado para ser um pequeno servidor de email, então o diretório /var/ deve ficar separado em uma outra partição pois todos os emails armazenados ficam no /var/. Servidores de jogos podem ter o /opt/ separado em uma outra partição, já que a maioria dos softwares do servidor são instalados lá. A razão dessas recomendações são similares à do diretório /home/: segurança, backups e manutenções.
In most situations on Gentoo, /usr and /var should be kept relatively large in size. /usr hosts the majority of applications available on the system and the Linux kernel sources (under /usr/src). By default, /var hosts the Gentoo ebuild repository (located at /var/db/repos/gentoo) which, depending on the file system, generally consumes around 650 MiB of disk space. This space estimate excludes the /var/cache/distfiles and /var/cache/binpkgs directories, which will gradually fill with source files and (optionally) binary packages respectively as they are added to the system.
A quantidade de partições e os seus tamanhos dependem muito de vários fatores que devem ser considerados para escolher a melhor opção para a circunstância. Separar as partições em volumes têm a seguinte 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 é mais percebida 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 têm algumas desvantagens:
Há também o limite de 15 partições para SCSI e SATA, a menos que sejam utilizadas etiquetas GPT.
Installations that intend to use systemd as the service and init system must have the /usr directory available at boot, either as part of the root filesystem or mounted via an initramfs.
E o espaço de swap?
RAM size | Suspend support? | Hibernation support? |
---|---|---|
2 GB or less | 2 * RAM | 3 * RAM |
2 to 8 GB | RAM amount | 2 * RAM |
8 to 64 GB | 8 GB minimum, 16 maximum | 1.5 * RAM |
64 GB or greater | 8 GB minimum | Hibernation not recommended! Hibernation is not recommended for systems with very large amounts of memory. While possible, the entire contents of memory must be written to disk in order to successfully hibernate. Writing tens of gigabytes (or worse!) out to disk can can take a considerable amount of time, especially when rotational disks are used. It is best to suspend in this scenario. |
Não existe um valor perfeito para o espaç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 na RAM para a tarefa atual. É claro que, se de repente essas páginas forem necessárias, elas serão trazidas de volta para a memória (page-in) o que irá demorar bem mais do que se fossem lidas direto na memória RAM (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
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) mklabel
gpt
(parted) mklabel
print
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.