Você está na página 1de 8

Fonte: http://www.gentoo.

org/doc/pt_br/handbook/handbook-
x86.xml?part=1&chap=4

4. Preparando os discos
Conteúdo:
• Introdução a dispositivos de bloco
• Desenhando um esquema de particionamento
• Usando o fdisk para particionar seu disco
• Criando sistemas de arquivos
• Montando
4.a. Introdução a dispositivos de bloco
Dispositivos de bloco
Iremos estudar os aspectos de manuseio de discos do Gentoo Linux e do Linux
em geral, incluindo sistemas de arquivos de Linux, partições e dispositivos de
bloco. Então, uma vez que você estiver familiar com o funcionamento de
discos e sistemas de arquivos, você será levado para o processo de
configuração de partições e sistemas de arquivos para sua instalação do
Gentoo Linux.
Para começar, vamos introduzir os dispositivos de bloco. O dispositivo de
bloco mais famoso é provavelmente aquele que representa o primeiro disco
IDE em um sistema Linux, chamado de /dev/hda. Se o seu sistema usa discos
SCSI, então seu primeiro disco rígido deve ser /dev/sda.
Os dispositivos de bloco acima representam uma interface abstrata para o
disco. Programas de usuário podem usar os dispositivos de bloco para
interagir com seu disco sem preocupação se eles são IDE, SCSI ou outra
coisa. O programa pode simplesmente classificar o espaço de armazenagem
no disco como um monte de blocos de 512 bytes contíguos acessíveis
aleatoriamente.
Partições
Embora seja teoricamente possível usar um disco inteiro para armazenar seu
sistema Linux, isto é quase nunca feito na prática. Ao invés disso, dispositivos
de bloco de discos são divididos em dispositivos de bloco menores e mais
fáceis de manusear. Em sistemas x86, são chamados de partições.
As partições são divididas em três tipos: primária, estendida e lógica.
Uma partição primária é uma partição que tem sua informação gravada no
registro mestre de inicialização (MBR). Como um MBR é muito pequeno (512
bytes) somente quatro partições primárias podem ser definidas (por exemplo,
de /dev/hda1 até /dev/hda4).
Uma partição estendida é uma partição primária especial (significando que a
partição estendida deve ser uma das quatro partições primárias possíveis) que
contém mais partições. Tal partição não existia originalmente, mas como
quatro partições era muito pouco, estendeu-se o esquema de formatação sem
perder compatibilidade com o método antigo.
Uma partição lógica é uma partição dentro de uma partição estendida. Suas
definições não são colocadas dentro do registro mestre de inicialização (MBR),
mas são declaradas dentro da partição estendida.
Armazenamento avançado
Os CDs de instalação de x86 oferecem suporte para EVMS e LVM2. EVMS e
LVM2 aumentam a flexibilidade oferecida pela sua configuração de
particionamento. Durante as instruções de instalação, nós iremos focar em
partições "normais", mas ainda é bom saber que EVMS e LVM2 também são
suportados.
4.b. Desenhando um esquema de particionamento
Esquema de particionamento padrão
Se você não está interessado em desenhar um esquema de particionamento
para seu sistema, você pode usar o esquema de particionamento que usamos
neste manual inteiro:
Sistema de
Partição Tamanho Descrição
arquivos
Partição de inicialização
/dev/hda1 ext2 32M
(boot)
/dev/hda2 (swap) 512M Partição de swap
/dev/hda3 ext3 Resto do disco Partição raiz (root)
Se você estiver interessado em saber o tamanho que uma partição (ou volume
lógico) deve ter, ou mesmo quantas partições (ou volumes) você precisa, leia
mais. Senão, continue com Usando o fdisk para particionar seu disco.
Quantas e de que tamanho?
O número de partições depende muito de seu ambiente. Por exemplo, se você
tem muitos usuários, você provavelmente deve ter seu /home separado para
aumentar a segurança e tornar backups mais fáceis. Se você estiver
instalando o Gentoo para funcionar como um servidor de e-mails, seu /var
deve ser separado, uma vez que todos e-mails são gravados dentro de /var.
Uma boa escolha de sistema de arquivos irá maximizar sua performance.
Servidores de jogos têm uma partição /opt separada, uma vez que a maior
parte de servidores de jogos são instalados lá. A razão é semelhante à do /
home: segurança e backups. Você deve manter seu /usr grande: não só irá
conter a maior parte das aplicações, a árvore do Portage sozinha toma em
torno de 500 Mbyte excluindo as várias fontes que são gravadas nela.
Como você pode ver, muito depende do que você quer fazer. Partições ou
volumes separados têm as seguintes vantagens:
• Você pode escolher o sistema de arquivos de melhor performance para
cada partição ou volume
• Seu sistema inteiro não irá ficar sem espaço se uma ferramenta defunta
estiver continuamente escrevendo arquivos em uma partição ou volume
• Se necessárias, verificações de sistemas de arquivos têm seu tempo
reduzido, já que verificações múltiplas podem ser feitas em paralelo
(embora esta vantagem seja maior com vários discos que com várias
partições)
• A segurança pode ser melhorada ao montar algumas partições ou
volumes como somente-leitura, nosuid (bits de setuid são ignorados),
noexec (bits executáveis são ignorados), etc...
No entanto, partições múltiplas têm uma grande desvantagem: se não são
configuradas apropriadamente, você pode acabar com um sistema com muito
espaço livre em uma partição e nenhum em outra. Também existe um limite
de 15 partições para SCSI e SATA.
Como um exemplo de particionamento, iremos mostrar uma de um disco de
20GB, usado como um laptop de demonstração (contendo um servidor de web,
servidor de e-mail, gnome, ...):
Listagem de código 1: Exemplo de utilização de sistema de arquivos
$ df -h
Filesystem Type Size Used Avail Use% Mounted on
/dev/hda5 ext3 509M 132M 351M 28% /
/dev/hda2 ext3 5.0G 3.0G 1.8G 63% /home
/dev/hda7 ext3 7.9G 6.2G 1.3G 83% /usr
/dev/hda8 ext3 1011M 483M 477M 51% /opt
/dev/hda9 ext3 2.0G 607M 1.3G 32% /var
/dev/hda1 ext2 51M 17M 31M 36% /boot
/dev/hda6 swap 516M 12M 504M 2% <not mounted>
(Espaço sem particionamento para uso futuro: 2 GB)
A partição /usr está bastante cheia (83% usado) aqui, mas uma vez que todo
software está instalado, a /usr não tende a crescer tanto. Para a /var, as
pessoas podem achar que o espaço designado é muito. No entanto, o Gentoo
compila todos seus programas dentro do /var/tmp/portage, então você deve
ter uma /var com pelo menos 1G livre se você não quer compilar programas
grandes e pelo menos 3G livres se você quer compilar o KDE ou
OpenOffice.org.
4.c. Usando o fdisk para particionar seu disco
As partes seguintes explicam como criar o modelo de partições descrito
anteriormente:
Partição Descrição
/dev/hda1 Partição de inicialização (boot)
/dev/hda2 Partição de swap
/dev/hda3 Partição raiz (root)
Mude o seu arranjo de partições de acordo com sua preferência.
Vendo o arranjo de partições atual
O fdisk é uma ferramenta popular e poderosa para dividir seu disco em
partições. Inicie o fdisk em seu disco (em nosso exemplo, usamos /dev/hda):
Listagem de código 2: Iniciando o fdisk
# fdisk /dev/hda
Uma vez dentro do fdisk, você verá um prompt que se parece com o seguinte:
Listagem de código 3: prompt do fdisk
Command (m for help):
Digite p para ver a configuração de partições atual de seu disco:
Listagem de código 4: Um exemplo de configuração de partições
Command (m for help): p

Disk /dev/hda: 240 heads, 63 sectors, 2184 cylinders


Units = cylinders of 15120 * 512 bytes

Device Boot Start End Blocks Id System


/dev/hda1 1 14 105808+ 83 Linux
/dev/hda2 15 49 264600 82 Linux swap
/dev/hda3 50 70 158760 83 Linux
/dev/hda4 71 2184 15981840 5 Extended
/dev/hda5 71 209 1050808+ 83 Linux
/dev/hda6 210 348 1050808+ 83 Linux
/dev/hda7 349 626 2101648+ 83 Linux
/dev/hda8 627 904 2101648+ 83 Linux
/dev/hda9 905 2184 9676768+ 83 Linux

Command (m for help):


Este disco em particular está configurado para armazenar sete sistemas de
arquivos Linux (cada um com uma partição correspondente listada como
"Linux") bem como uma partição de swap (listada como "Linux swap").
Apagando todas partições
Iremos primeiro apagar todas partições existentes do disco. Digite d para
apagar uma partição. Por exemplo, para apagar um /dev/hda1 já existente:
Listagem de código 5: Apagando uma partição
Command (m for help): d
Partition number (1-4): 1
A partição foi agendada para ser apagada. Ela não irá mais aparecer se você
digitar p, mas não será apagada até que suas mudanças sejam salvas. Se você
cometeu um erro e quer abortar sem salvar suas mudanças, digite q
imediatamente e aperte enter e sua partição não será apagada.
Agora, presumindo que você realmente quer apagar todas partições de seu
sistema, aperte p repetidamente para mostrar uma listagem de partições e
então digite d e o número da partição para apagá-la. No fim, você terminará
com uma tabela de partições sem nada:
Listagem de código 6: Uma tabela de partições vazia
Disk /dev/hda: 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

Command (m for help):


Agora que a tabela de partições na memória está vazia, estamos prontos para
criar as partições. Nós iremos usar o esquema de particionamento padrão que
discutimos anteriormente. Lógico, não siga as instruções à risca se você não
quer o mesmo esquema de particionamento!
Criando a partição de inicialização (boot)
Primeiro criamos uma pequena partição de inicialização (boot). Digite n para
criar uma nova partição, então p para selecionar a partição primária, seguida
de 1 para selecionar a primeira partição primária. Quando pedido o primeiro
cilindro, aperte enter. Quando pedido o último cilindro, digite +32M para
criar uma partição de 32 Mbytes de tamanho:
Listagem de código 7: Criando a partição de inicialização (boot)
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-3876, default 1): (Aperte Enter)
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-3876, default 3876): +32M
Agora, quando você digitar p, você verá o seguinte esquema de
particionamento:
Listagem de código 8: Partição de inicialização (boot) criada
Command (m for help): p

Disk /dev/hda: 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/hda1 1 14 105808+ 83 Linux
Nós precisamos fazer esta partição carregável. Digite a para ligar a opção de
carregável em uma partição e selecione 1. Se você apertar p de novo, você
verá que um * foi colocado na coluna de "Boot".
Criando a partição de swap
Vamos agora criar a partição de swap. Para fazer isto, digite n para criar uma
nova partição, então p para dizer ao fdisk que você quer uma partição
primária. Então digite 2 para criar a segunda partição primária, /dev/hda2 em
nosso caso. Quando for pedido o primeiro cilindro, aperte enter. Quando for
pedido o último cilindro, digite +512M para criar uma partição de 512MB.
Depois que você fez isso, digite t para ajustar o tipo de partição, 2 para
selecionar a partição que você acabou de criar e então digite 82 para ajustar o
tipo de partição para "Linux Swap". Depois de completar estes passos, ao
digitar p você deve ver uma tabela de partição que parece com isso:
Listagem de código 9: Listagem de partições depois de criar a partição de
swap
Command (m for help): p

Disk /dev/hda: 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/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
Criando a partição raiz (root)
Finalmente, vamos criar a partição raiz (root). Para fazer isso, digite n para
criar uma nova partição, então p para dizer ao fdisk que você quer uma
partição primária. Então digite 3 para criar a terceira partição primária, /
dev/hda3 em nosso caso. Quando for pedido o primeiro cilindro, aperte enter.
Quando for pedido o último cilindro, aperte enter para criar uma partição que
toma o resto do espaço disponível em seu disco. Depois de completar estes
passos, do digitar p você deve ver uma tabela de partições parecida com o
seguinte:
Listagem de código 10: Listagem de partições depois de criar a partição raiz
(root)
Command (m for help): p

Disk /dev/hda: 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/hda1 * 1 14 105808+ 83 Linux
/dev/hda2 15 81 506520 82 Linux swap
/dev/hda3 82 3876 28690200 83 Linux
Salvando o arranjo de partições
Para salvar o arranjo de partições e sair do fdisk, digite w.
Listagem de código 11: Salve e saia do fdisk
Command (m for help): w
Agora que suas partições foram criadas, você pode continuar com Criando
sistemas de arquivos.
4.d. Criando sistemas de arquivos
Introdução
Agora que suas partições foram criadas, está na hora de colocar um sistema
de arquivos nelas. Se você não se importa em escolher o sistema de arquivos e
está contente com o que usamos como padrão neste manual, continue com
Aplicando um sistema de arquivos a uma partição. Caso contrário, leia mais
para aprender sobre os sistemas de arquivos disponíveis...
Sistemas de arquivos?
O kernel do Linux suporta vários sistemas de arquivos. Nós iremos explicar
sobre ext2, ext3, ReiserFS, XFS e JFS já que estes são os sistemas de arquivos
mais usados em sistemas Linux.
O ext2 é o sistema mais testado e fiel ao Linux, mas não tem journaling de
metadata, o que significa que verificações rotineiras de sistemas de arquivo
ext2 podem levar bastante tempo. Existe agora uma razoável seleção de
sistemas de arquivos de nova geração com journaling que podem ter sua
consistência verificada rapidamente e que são geralmente preferíveis aos seus
respectivos sistemas sem journaling. Sistemas de arquivo com journaling
previnem longas esperas quando você carrega seu sistema e seu sistema de
arquivos está em um estado inconsistente.
O ext3 é a versão com journaling do sistema de arquivos ext2, fornecendo
journaling de metadata para recuperação rápida, fora outros modos de
journaling aprimorados como full data e ordered data. O ext3 é um sistema de
arquivos muito bom e confiável. Tem uma opção adicional de catalogar hashed
b-trees que permite alta performance em quase todas situações. Para resumir,
o ext3 é um excelente sistema de arquivos.
O ReiserFS é sistema de arquivos baseado em B*-trees que tem uma
performance em geral muito boa e muito superior a tanto o ext2 quanto o ext3
na hora de lidar com arquivos pequenos (de menos de 4k), freqüentemente
com um fator de 10x-15x. O ReiserFS também escala extremamente bem e
tem journaling de metadata. A partir do kernel 2.4.18+, o ReiserFS está sólido
e pronto para ser usado tanto como um sistema de arquivos genérico quanto
para casos extremos como a criação de sistemas de arquivos enormes, uso de
muitos arquivos pequenos, arquivos muito grandes e diretórios contendo
dezenas de milhares de arquivos.
O XFS é um sistema de arquivos com journaling de metadata que vem com um
robusto conjunto de funções e é otimizado para escalabilidade. Só
recomendamos usar este sistema de arquivos em sistemas rodando Linux com
equipamento SCSI de ponta e/ou armazenamento em canais de fibra e fonte
de energia sem interrupção. Pelo fato de o XFS criar cachês agressivamente
de dados em uso na memória RAM, programas mal desenhados (que não
tomam precauções na hora de escrever os arquivos em disco, e existem
muitos deles) podem perder uma grande quantidade de dados se o sistema for
desligado sem aviso.
O JFS é o sistema de arquivos com journaling de alta performance da IBM.
Recentemente tornou-se pronto para uso em produção e não há experiência
suficiente para comentar a favor ou contra sua estabilidade geral neste ponto.
Aplicando um sistema de arquivos a uma partição
Para criar um sistema de arquivos em uma partição ou volume, existem
ferramentas disponíveis para cada sistema de arquivos possível:
Sistema de arquivos Comando de criação
ext2 mke2fs
ext3 mke2fs -j
reiserfs mkreiserfs
xfs mkfs.xfs
jfs mkfs.jfs
Por exemplo, para ter a partição de inicialização (boot) (/dev/hda1 em nosso
exemplo) em ext2 e a partição raiz (root) (/dev/hda3 em nosso exemplo) em
ext3 (como em nosso exemplo), você faria:
Listagem de código 12: Aplicando um sistema de arquivos a uma partição
# mke2fs /dev/hda1
# mke2fs -j /dev/hda3
Agora crie os sistemas de arquivos em suas partições recém-criadas (ou
volumes lógicos).
Ativando a partição de swap
mkswap é o comando usado para iniciar partições de swap:
Listagem de código 13: Criando uma assinatura de swap
# mkswap /dev/hda2
Para ativar a partição de swap, use swapon:
Listagem de código 14: Ativando a partição de swap
# swapon /dev/hda2
Crie e ative o swap com os comandos mencionados acima.
4.e. Montando
Agora que suas partições foram iniciadas e possuem um sistema de arquivos,
está na hora de montá-las. Use o comando mount. Não se esqueça de criar os
diretórios necessários de montagem para cada partição que você criou. Como
exemplo montamos a partição raiz (root) e de inicialização (boot):
Aviso: Devido a um bug no pacote e2fsprogs, você precisa explicitamente
usar a opção mount -t ext3 se você estiver usando um sistema de arquivos
ext3.
Listagem de código 15: Montando partições
# mount /dev/hda3 /mnt/gentoo
# mkdir /mnt/gentoo/boot
# mount /dev/hda1 /mnt/gentoo/boot
Nota: Se você quiser que seu /tmp resida em uma partição separada,
certifique-se de mudar suas permissões depois de montá-la: chmod 1777 /
mnt/gentoo/tmp. O mesmo vale para /var/tmp.
Agora iremos montar o sistema de arquivos proc (uma interface virtual com o
kernel) em /proc. Mas primeiro iremos colocar nossos arquivos nas partições.
Continue com Instalando os arquivos de instalação do Gentoo.