Manual:MIPS/Blocos/Discos

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:MIPS/Blocks/Disks and the translation is 91% complete.
Outdated translations are marked like this.


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 divididos em dispositivos de blocos menores e mais gerenciáveis chamados partições.

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.

Nota
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?

Recommendations for swap space size
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.


Usando o fdisk

Máquinas SGI: Criando rótulo de disco SGI

Todos os discos em um sistema SGI requerem um rótulo de disco ("disk label") onde são armazenadas informações sobre as partições de disco. Ao se criar um novo rótulo de disco SGI serão criadas duas partições especiais no disco:

  • Cabeçalho de volume SGI (9ª partição): Esta partição é importante. É nela que o gerenciador de boot ficará gravado e, em alguns casos, irá conter também a imagem dos kernels.
  • Volume SGI (11ª partição): Esta partição é similar em propósito a terceira partição do rótulo de disco Sun "disco inteiro". Esta partição cobre o disco todo e deve ser mantida intocada. Ela não serve a nenhum propósito especial que não seja ajudar a PROM de alguma forma não documentada (ou ela é usada pelo IRIX de alguma maneira).
Aviso
O cabeçalho de volume SGI deve iniciar no cilindro 0 ou o sistema não será capaz de inicializar pelo disco.

Abaixo é mostrada um trecho de uma sessão com o fdisk. Leia-a e ajuste-a às suas necessidades pessoais...

root #fdisk /dev/sda

Alterne para o modo expert:

Command (m for help):x

Usando a tecla m o menu completo de opções é mostrado:

Expert command (m for help):m
Command action
   b   move beginning of data in a partition
   c   change number of cylinders
   d   print the raw data in the partition table
   e   list extended partitions
   f   fix partition order
   g   create an IRIX (SGI) partition table
   h   change number of heads
   m   print this menu
   p   print the partition table
   q   quit without saving changes
   r   return to main menu
   s   change number of sectors/track
   v   verify the partition table
   w   write table to disk and exit

Crie um rótulo de disco SGI:

Expert command (m for help):g
Building a new SGI disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content will be irrecoverably lost.

Retorne ao menu principal:

Expert command (m for help):r

Dê uma olhada no layout de partições atual:

Command (m for help):p
Disk /dev/sda (SGI disk label): 64 heads, 32 sectors, 17482 cylinders
Units = cylinders of 2048 * 512 bytes
  
----- partitions -----
Pt#     Device  Info     Start       End   Sectors  Id  System
 9:  /dev/sda1               0         4     10240   0  SGI volhdr
11:  /dev/sda2               0     17481  35803136   6  SGI volume
----- Bootinfo -----
Bootfile: /unix
----- Directory Entries -----
Nota
Se o disco já possui um rótulo de disco SGI o fdisk não permitirá a criação de um novo rótulo. Há duas maneiras de se contornar isso. Uma é criar um rótulo de disco SUN ou MS-DOS, gravar as alterações no disco, e reiniciar o fdisk. A segunda é sobrescrever a tabela de partições com dados nulos com o seguinte comando: dd if=/dev/zero of=/dev/sda bs=512 count=1

Redimensionando o cabeçalho de volume SGI

Importante
Este passo é geralmente necessário devido a um bug no fdisk. Por alguma razão, o cabeçalho do volume não é criado corretamente, resultando que ele inicia e termina no cilindro 0, o que impede que sejam criadas múltiplas partições. Para contornar esse problema, continue lendo.

Agora que o rótulo de disco SGI foi criado, as partições podem ser definidas. No exemplo acima duas partições já foram definidas. Essas são as partições especiais mencionadas anteriormente e não devem ser alteradas. Entretanto, para a instalação do Gentoo, precisaremos carregar um gerenciador de boot e, possivelmente, múltiplas imagens do kernel (dependendo do tipo do sistema) diretamente no cabeçalho de volume. O cabeçalho de volume em si pode armazenar até oito imagens de qualquer tamanho, cada uma podendo ter um nome de até oito caracteres.

O processo de aumentar o cabeçalho de volume não é exatamente simples; há alguns truques para fazê-lo. Não se pode simplesmente apagar e recriar o cabeçalho de volume devido ao comportamento estranho do fdisk. No exemplo mostrado abaixo, criaremos um cabeçalho de volume de 50MB em conjunto com uma partição /boot/ de 50MB. O layout real pode variar, pois este apenas para propósitos ilustrativos.

Crie uma nova partição:

Command (m for help):n
Partition number (1-16): 1
First cylinder (5-8682, default 5): 51
 Last cylinder (51-8682, default 8682): 101

Notou como o fdisk só permite a partição 1 ser recriada iniciando pelo menos no cilindro 5? Se tentássemos apagar e recriar o volume de cabeçalho SGI desse modo, teríamos o mesmo problema já encontrado. No nosso exemplo queremos que a partição /boot/ seja de 50MB, então a iniciamos no cilindro 51 (o cabeçalho de volume precisa iniciar no cilindro 0, lembra-se?) e a fazemos terminar no cilindro 101 o que dá aproximadamente 50M (+/- 1-5MB).

Apague a partição:

Command (m for help):d
Partition number (1-16): 9

Agora recrie-a:

Command (m for help):n
Partition number (1-16): 9
First cylinder (0-50, default 0): 0
 Last cylinder (0-50, default 50): 50

Em caso de dúvidas no uso do fdisk, veja adiante nas instruções de particionamento em máquinas Cobalt. Os conceitos são exatamente os mesmos, apenas lembre-se de não alterar as partições de cabeçalho de volume e a do disco inteiro.

Uma vez feito isso, crie o restante de suas partições conforme necessário. Depois de todas as partições criadas, certifique-se de alterar o ID da partição de swap para 82, que é Linux Swap. Por default ela é 83, Linux Native.

Particionando drives Cobalt

Em máquinas Cobalt a BOOTROM espera encontrar um MBR MS-DOS, então particionar o drive é relativamente simples. Na verdade, isso é feito da mesma forma que para uma máquina x86. Entretanto, existem algumas diferenças que precisamos conhecer.

  • O firmware da Cobalt espera que /dev/sda1 seja uma partição Linux formatada com EXT2 Revisão 0. Partições com EXT2 Revisão 1 não funcionarão! (A BOOTROM Cobalt entende apenas o EXT2r0)
  • Essa partição deve conter uma imagem ELF compactada com gzip (vmlinux.gz) na raiz da partição, que é carregada como kernel

Por essa razão, é recomendado criar uma partição /boot/ de ~20MB formatada com EXT2r0 na qual serão instalados o CoLo e os kernels. Isso permite ao usuário usar um sistema de arquivos moderno (EXT3 ou reiserfs) no sistema de arquivos raiz.

No exemplo, assume-se que /dev/sda1 é criado para mais tarde ser montada como a partição /boot/. Para usar como raiz (/), tenha em mente as expectativas da PROM.

Então, continuando... Para criar as partições digite fdisk /dev/sda no prompt. Os principais comandos para se saber são estes:

CODE Lista dos comandos importantes do fdisk
'"`UNIQ--pre-00000006-QINU`"'
root #fdisk /dev/sda
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1 - software that runs at boot time (e.g., old versions of LILO)
2 - booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Comece apagando as partições existentes:

Command (m for help):o
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.
  
  
The number of cylinders for this disk is set to 19870.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1 - software that runs at boot time (e.g., old versions of LILO)
2 - booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Agora verifique se a tabela de partições está vazia usando o comando p:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
   Device Boot      Start         End      Blocks   Id  System

Crie a partiçã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-19870, default 1):
Last cylinder or +size or +sizeM or +sizeK (1-19870, default 19870): +20M

Ao mostrar as partições, note a partição recém-criada:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1          40       20128+  83  Linux

Agora criamos uma partição estendida cobrindo o restante do disco. Nessa partição estendida criaremos o resto (partições lógicas):

Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
e
Partition number (1-4): 2
First cylinder (41-19870, default 41):
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870):
Using default value 19870

Criamos agora as partições /, /usr, /var etc.

Command (m for help):n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (41-19870, default 41):<Press ENTER>
Using default value 41
Last cylinder or +size or +sizeM or +sizeK (41-19870, default 19870): +500M

Repita o processo conforme necessário.

Por fim, o espaço de swap. É recomendado ter pelo menos 250MB de swap.

Command (m for help):n
Command action
   l   logical (5 or over)
   p   primary partition (1-4)
l
First cylinder (17294-19870, default 17294): <Press ENTER>
Using default value 17294
Last cylinder or +size or +sizeM or +sizeK (1011-19870, default 19870): <Press ENTER>
Using default value 19870

Ao se checar a tabela de partições tudo deve estar pronto, exceto por uma coisa.

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
Device Boot      Start         End      Blocks      ID  System
/dev/sda1               1          21       10552+  83  Linux
/dev/sda2              22       19870    10003896    5  Extended
/dev/sda5              22        1037      512032+  83  Linux
/dev/sda6            1038        5101     2048224+  83  Linux
/dev/sda7            5102        9165     2048224+  83  Linux
/dev/sda8            9166       13229     2048224+  83  Linux
/dev/sda9           13230       17293     2048224+  83  Linux
/dev/sda10          17294       19870     1298776+  83  Linux

Notou que a partição 10, a partição de swap, ainda é do tipo 83? Troquemos para o tipo correto:

Command (m for help):t
Partition number (1-10): 10
Hex code (type L to list codes): 82
Changed system type of partition 10 to 82 (Linux swap)

Agora cheque:

Command (m for help):p
Disk /dev/sda: 10.2 GB, 10254827520 bytes
16 heads, 63 sectors/track, 19870 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes
  
Device Boot      Start         End      Blocks      ID  System
/dev/sda1               1          21       10552+  83  Linux
/dev/sda2              22       19870    10003896    5  Extended
/dev/sda5              22        1037      512032+  83  Linux
/dev/sda6            1038        5101     2048224+  83  Linux
/dev/sda7            5102        9165     2048224+  83  Linux
/dev/sda8            9166       13229     2048224+  83  Linux
/dev/sda9           13230       17293     2048224+  83  Linux
/dev/sda10          17294       19870     1298776+  82  Linux Swap

Gravamos a tabela de partições:

Command (m for help):w
The partition table has been altered!
  
Calling ioctl() to re-read partition table.
Syncing disks.