From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:PPC/Installation/Disks and the translation is 50% complete.
PPC Manual
Sobre a instalação
Escolhendo a mídia
Configurando a rede
Preparando os discos
Instalando o stage3
Instalando o sistema base
Configurando o kernel
Configurando o sistema
Instalando as ferramentas
Configurando o gerenciador de boot
Trabalhando com o Gentoo
Introdução ao Portage
USE flags
Recursos do Portage
Sistema initscript
Variáveis de ambiente
Trabalhando com o portage
Arquivos e diretórios
Misturando ramos de software
Ferramentas adicionais
Árvore customizada do Portage
Recursos avançados
Configuração de rede
Configuração avançada
Uso de rede modular
Rede sem fio
Adicionando funcionalidade
Gerenciamento dinâmico

Introdução aos dispositivos de bloco

Dispositivos de bloco

Vamos dar uma boa olhada nos aspectos relacionados a discos do Gentoo Linux e do Linux em geral, incluindo dispositivos de bloco, partições e sistemas de arquivos Linux. Uma vez que os meandros dos discos forem 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 bloco. As unidades SCSI e Serial ATA são rotuladas pelo sistema como: /dev/sda, /dev/sdb, /dev/sdc, etc. Em maquinas modernas, os discos rígidos NVMe baseados em PCI Express são identificados como /dev/nvme0n1, /dev/nvme0n2, etc.

A tabela abaixo ajudará os leitores a determinar onde encontrar um certo tipo de dispositivo de bloco no sistema:

Tipos de dispositivo Identificador de dispositivo padrão Notas do editor e considerações
SATA, SAS, SCSI, ou USB flash /dev/sda Encontrados em hardware por volta de 2007 até os dias atuais, esses dispositivos são geralmente identificados no Linux dessa forma. Esses tipos de dispositivos podem ser conectados pelas entradas SATA, SCSI, USB como armazenamento em bloco. Por exemplo, a primeira partição do primeiro dispositivo SATA device é chamada de /dev/sda1.
NVM Express (NVMe) /dev/nvme0n1 A mais recente tecnologia de disco rigido, NVMe drives são conectados via PCI Express bus e possuem a velocidade de transferência de blocos mais rápida do mercado. Sistemas por volta de 2014 e recentes possuem suporte para NVMe no hardware. A primeira partição no primeiro dispositivo NVMe é chamada de /dev/nvme0n1p1.
MMC, eMMC, e SD /dev/mmcblk0 Dispositivos embutidos MMC, cartões SD, e outros tipos de cartões de memória podem ser uteis para armazenar dados. Dito isso, muitos sistemas talvez não permitam iniciar a partir desses tipos de dispositivo. É sugerido que não se use esses dispositivos para iniciar uma instalação do Linux; em vez disso, considere usá-los com o objetivo de transferir arquivos, no qual eles foram projetados. Alternativamente, eles podem ser úteis para backups de curto prazo.

Os dispositivos de bloco acima representam uma interface abstrata para o disco. Programas de usuários podem usar esses dispositivos de bloco para interagir com o disco sem se preocupar se são SATA, SCSI, ou de outro tipo. O programa pode simplesmente endereçar o armazenamento do disco como um grupo de blocos de 4096-bytes (4K) contínuos e acessíveis aleatoriamente.


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. Na maioria dos sistemas são chamados de partições.

No restante das instruções de instalação usaremos o layout de partições do Pegasos. Ajuste conforme suas preferências pessoais.

Designing a partition scheme

How many partitions and how big?

The design of disk partition layout is highly dependent on the demands of the system and the file system(s) applied to the device. If there are lots of users, then it is advised to have /home on a separate partition which will increase security and make backups and other types of maintenance easier. If Gentoo is being installed to perform as a mail server, then /var should be a separate partition as all mails are stored inside the /var directory. Game servers may have a separate /opt partition since most gaming server software is installed therein. The reason for these recommendations is similar to the /home directory: security, backups, and maintenance.

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.

How many partitions and how big very much depends on considering the trade-offs and choosing the best option for the circumstance. Separate partitions or volumes have the following advantages:

  • Choose the best performing filesystem for each partition or volume.
  • The entire system cannot run out of free space if one defunct tool is continuously writing files to a partition or volume.
  • If necessary, file system checks are reduced in time, as multiple checks can be done in parallel (although this advantage is realized more with multiple disks than it is with multiple partitions).
  • Security can be enhanced by mounting some partitions or volumes read-only, nosuid (setuid bits are ignored), noexec (executable bits are ignored), etc.

However, multiple partitions have certain disadvantages as well:

  • If not configured properly, the system might have lots of free space on one partition and little free space on another.
  • A separate partition for /usr/ may require the administrator to boot with an initramfs to mount the partition before other boot scripts start. Since the generation and maintenance of an initramfs is beyond the scope of this handbook, we recommend that newcomers do not use a separate partition for /usr/.
  • There is also a 15-partition limit for SCSI and SATA unless the disk uses GPT labels.
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.

What about swap space?

There is no perfect value for swap space size. The purpose of the space is to provide disk storage to the kernel when internal memory (RAM) is under pressure. A swap space allows for the kernel to move memory pages that are not likely to be accessed soon to disk (swap or page-out), which will free memory in RAM for the current task. Of course, if the pages swapped to disk are suddenly needed, they will need to be put back in memory (page-in) which will take considerably longer than reading from RAM (as disks are very slow compared to internal memory).

When a system is not going to run memory intensive applications or has lots of RAM available, then it probably does not need much swap space. However do note in case of hibernation that swap space is used to store the entire contents of memory (likely on desktop and laptop systems rather than on server systems). If the system requires support for hibernation, then swap space larger than or equal to the amount of memory is necessary.

As a general rule, the swap space size is recommended to be twice the internal memory (RAM). For systems with multiple hard disks, it is wise to create one swap partition on each disk so that they can be utilized for parallel read/write operations. The faster a disk can swap, the faster the system will run when data in swap space must be accessed. When choosing between rotational and solid state disks, it is better for performance to put swap on the SSD. Also, swap files can be used as an alternative to swap partitions; this is mostly interesting for systems with very limited disk space.

Apple New World

Apple New World machines are fairly straightforward to configure. The first partition is always an Apple Partition Map (APM). This partition keeps track of the layout of the disk. It is not possible to remove this partition. The next partition should always be a bootstrap partition. This partition contains a small (800KiB) HFS filesystem that holds a copy of the bootloader Yaboot and its configuration file. This partition is not the same as a /boot partition as found on other architectures. After the boot partition, the usual Linux filesystems are placed, according to the scheme below. The swap partition is a temporary storage place for when the system runs out of physical memory. The root partition will contain the filesystem that Gentoo is installed on. To dual boot, the OSX partition can go anywhere after the bootstrap partition to insure that yaboot starts first.

There may be "Disk Driver" partitions on the disk such as Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, and Apple_Patches. These are used to boot MacOS, so if there is no need for this, they can be removed by initializing the disk with mac-fdisk's i option. Be careful, this will completely erase the disk! If in doubt do not remove them.
If the disk is partitioned with Apple's Disk Utility, there may be 128 MiB spaces between partitions which Apple reserves for "future use". These can be safely removed.
Partition Size Filesystem Description
/dev/sda1 32KiB None. Apple Partition Map (APM).
/dev/sda2 800KiB HFS Apple bootstrap.
/dev/sda3 512 MiB swap Linux swap (type 0x82).
/dev/sda4 Rest of the disk. ext4, xfs, etc. Linux root.

Apple Old World

Apple Old World machines are a bit more complicated to configure. The first partition is always an Apple Partition Map (APM). This partition keeps track of the layout of the disk. It is not possible to remove this partition. When using BootX, the configuration below assumes that MacOS is installed on a separate disk. If this is not the case, there will be additional partitions for "Apple Disk Drivers" such as Apple_Driver63, Apple_Driver_ATA, Apple_FWDriver, Apple_Driver_IOKit, Apple_Patches and the MacOS install. When using Quik, it is necessary to create a boot partition to hold the kernel, unlike other Apple boot methods. After the boot partition, the usual Linux filesystems are placed, according to the scheme below. The swap partition is a temporary storage place for when the system runs out of physical memory. The root partition will contain the filesystem that Gentoo is installed on.

When using an OldWorld machine, it is necessary to keep MacOS available. The layout here assumes MacOS is installed on a separate drive.

Example partition layout for an Old World machine:

Partition Size Filesystem Description
/dev/sda1 32KiB None. Apple Partition Map (APM).
/dev/sda2 32MiB ext2 Quik Boot Partition (quik only).
/dev/sda3 512MiB swap Linux swap (type 0x82).
/dev/sda4 Rest of the disk. ext4, xfs, etc. Linux root.


The Pegasos partition layout is quite simple compared to the Apple layouts. The first partition is a boot partition, which contains kernels to be booted along with an Open Firmware script that presents a menu on boot. After the boot partition, the usual Linux filesystems are placed, according to the scheme below. The swap partition is a temporary storage place for when the system runs out of physical memory. The root partition will contain the filesystem that Gentoo is installed on.

Example partition layout for Pegasos systems:

Partition Size Filesystem Description
/dev/sda1 32MiB affs1 or ext2 Boot partition.
/dev/sda2 512MiB swap Linux swap (type 0x82).
/dev/sda3 Rest of the disk. ext4, xfs, etc. Linux root.

IBM PReP (RS/6000)

The IBM PowerPC Reference Platform (PReP) requires a small PReP boot partition on the disk's first partition, followed by the swap and root partitions.

Example partition layout for the IBM PReP:

Partition Size Filesystem Description
/dev/sda1 800KiB None PReP boot partition (type 0x41).
/dev/sda2 512MiB swap Linux swap (type 0x82).
/dev/sda3 Rest of the disk ext4, xfs, etc. Linux root (type 0x83).
parted is able to resize partitions including HFS+. Unfortunately there may be issues with resizing HFS+ journaled filesystems, so, for the best results, switch off journaling in Mac OS X before resizing. Remember that any resizing operation is dangerous, so attempt at own risk! Be sure to always have a backup of all data before resizing!

Using mac-fdisk (Apple)

At this point, create the partitions using mac-fdisk:

root #mac-fdisk /dev/sda

If Apple's Disk Utility was used prior to leave space for Linux, first delete the partitions that might have been created previously to make room for the new install. Use d in mac-fdisk to delete those partition(s). It will ask for the partition number to delete. Usually the first partition on NewWorld machines (Apple_partition_map) cannot be deleted. To start with a clean disk, simply initialize the disk by pressing i. This will completely erase the disk, so use this with caution.

Second, create an Apple_Bootstrap partition by using b. It will ask for what block to start. Enter the number of the first free partition, followed by a p. For instance this is 2p.

This partition is not a /boot partition. It is not used by Linux at all; there is no need to place any filesystem on it and it should never be mounted. Apple users don't need an extra partition for /boot.

Now create a swap partition by pressing c. Again mac-fdisk will ask for what block to start this partition from. As we used 2 before to create the Apple_Bootstrap partition, now enter 3p. When sked for the size, enter 512M (or whatever size needed - a minimum of 512MiB is recommended, but 2 times the physical memory is the generally accepted size). When asked for a name, enter swap.

To create the root partition, enter c, followed by 4p to select from what block the root partition should start. When asked for the size, enter 4p again. mac-fdisk will interpret this as "Use all available space". When asked for the name, enter root.

To finish up, write the partition to the disk using w and q to quit mac-fdisk.

To make sure everything is okay, run mac-fdisk -l and check whether all the partitions are there. If not all partitions created previously are shown, or the changes made are not reflected in the output, reinitialize the partitions by pressing i in mac-fdisk. Note that this will recreate the partition map and thus remove all existing partitions.

Using parted (Pegasos and RS/6000)

parted, the partition editor, can now handle HFS+ partitions used by Mac OS and Mac OS X. With this tool it is possible to resize the Mac partitions and create space for the Linux partitions. Nevertheless, the example below describes partitioning for Pegasos machines only.

To begin let's fire up parted:

root #parted /dev/sda

If the drive is unpartitioned, run mklabel amiga to create a new disklabel for the drive.

It is possible to type print at any time in parted to display the current partition table. To abort parted, press Ctrl+c.

If next to Linux, the system is also meant to have MorphOS installed, then create an affs1 filesystem at the start of the drive. 32MB should be more than enough to store the MorphOS kernel. With a Pegasos I, or when Linux will use any filesystem besides ext2 or ext3, then it is necessary to also store the Linux kernel on this partition (the Pegasos II can only boot from ext2/ext3 or affs1 partitions). To create the partition run mkpart primary affs1 START END where START and END should be replaced with the megabyte range (e.g. 0 32) which creates a 32 MB partition starting at 0MB and ending at 32MB. When creating an ext2 or ext3 partition instead, substitute ext2 or ext3 for affs1 in the mkpart command.

Create two partitions for Linux, one root filesystem and one swap partition. Run mkpart primary START END to create each partition, replacing START and END with the desired megabyte boundaries.

It is generally recommended to create a swap partition that is two times bigger than the amount of RAM in the computer, but at least 512MiB is recommended. To create the swap partition, run mkpart primary linux-swap START END with START and END again denoting the partition boundaries.

When done in parted simply type quit.

Criando sistemas de arquivos


Agora que as partições foram corretamente 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

Linux suporta dezenas de sistemas de arquivos. Alguns deles são só aconselháveis usar para fins específicos. Alguns são considerados mais estáveis na arquitetura ppc - é 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. Ext4 é o sistema de arquivo recomendado para todos os propósitos e para todas as plataformas. Abaixo está uma lista não exaustiva

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. Kernels com versão anterior à 5.4.y não garantem segurança ao serem utilizados junto com btrfs em produção porque as correções de sérios problemas só estão presentes em versões mais recentes do branch LTS do kernel. Corrupção de sistema de arquivos são comuns em branches mais antigas do kernel, em qualquer outra versão anterior à 4.4.y é especialmente inseguro e propenso a corrupção. Corrupção de sistemas de arquivo são mais comuns em kernels mais antigos (anteriores à 5.4.y) quando a compressão de arquivos está habilitada. Funcionalidades como RAID 5/6 e quota groups são inseguros em todas as versões do btrfs. Além disso, o btrfs pode falhar contra intuitivamente nas operações de sistema de arquivos retornando ENOSPC quando o comando df reporta espaço livre devido a uma fragmentação interna (espaço livre fixado pelos chunks de DATA + SYSTEM, mas necessário em chunks de METADATA). Além disso, desde uma única referência de 4K até uma extensão de 128M dentro de um btrfs podem causar espaço livre indisponível para alocação. Isso também pode fazer com que o btrfs retorne ENOSPC quando o espaço livre é informado pelo comando df. Instalando o pacote sys-fs/btrfsmaintenance e configurando um script para executar periodicamente pode ajudar a reduzir a possibilidade do erro ENOSPC por rebalancear o btrfs, mas isso não elimina o risco de ENOSPC acontecer quando há espaço livre. Algumas workloads talvez nunca irão se deparar com o erro ENOSPC enquanto outras talvez irão. Se o risco de ENOSPC acontecer em produção for inaceitável, você deve usar algo diferente. Se estiver usando btrfs, certifique-se de evitar configurações conhecidas por terem problemas. Com exceção do ENOSPC, informações sobre os problemas presentes no btrfs nas branches mais recentes do kernel estão disponíveis em btrfs wiki status page.
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ê algoritmos 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.
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.
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.
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, mas foi continuamente atualizado incluindo funcionalidades modernas.
Também conhecido como FAT32, é suportado pelo Linux, mas não tem suporte para configurações de permissões padrão UNIX. É mais utilizado para interoperabilidade/intercâmbio com outros sistemas operacionais (como Windows ou macOS) mas é também uma necessidade para alguns sistemas de firmware (como o UEFI). Usuários de sistemas UEFI vão precisar de uma EFI System Partition formatada em VFAT para inicializar o sistema.
Este sistema de arquivos com "Nova Tecnologia" ("New Technology Filesystem") é o principal sistema de arquivos do Microsoft Windows desde o Windows NT 3.1. Assim como o vfat, ele não armazena permissões ou atributos estendidos necessários para correto funcionamento de um BSD ou Linux, por isso não deve ser usado como sistema de arquivos na maioria dos casos. Deve ser usado apenas para interoperabilidade/intercâmbio com sistemas Microsoft Windows (note a ênfase no apenas).

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
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 sistema EFI (/dev/sda1) em FAT32 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.vfat -F 32 /dev/sda1
root #mkfs.ext4 /dev/sda3

Se usar o 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. Isso pode ser resolvido usando um dos comandos a seguir, respectivamente:

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.

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

Usuários que estiverem usando uma media de instalação não-Gentoo vão precisar criar os pontos de montagem com o comando:
root #mkdir --parents /mnt/gentoo

Agora que as partições foram 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
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.