12/03/2010

ad.

Como adicionar um HD no Linux

Este blog é pautado pelos pedidos que recebo nas mensagens e pelos serviços que meus clientes pedem. A dica de hoje é do segundo caso. Um cliente solicitou ao datacenter que adicionasse um novo HD ao seu servidor, para resolver os problemas em disco. Pois bem, o pessoal do DC fez exatamente isso. E agora, o que fazer? Como veremos abaixo, adicionar um HD e/ou criar e deletar partições e/ou formatar um disco é bastante fácil, mesmo pelo console.

O tutorial foi dividido em quatro partes:

  1. Encontrado o disco
  2. Criando a partição
  3. Formatando a partição
  4. Montando a partição

Encontrado o disco
Quando um novo disco é adicionado, precisamos descobrir qual o nome do device dele. No caso específico do cliente, ele já possuia um disco SATA que recebeu o device /dev/sda. Como o novo disco também é um SATA, recebeu /dev/sdb. Assim a primeira coisa a se fazer é invocar o programa fdisk para criar as partições.

Criando as partições
A linha abaixo chama o fdisk com o parâmetro do device, no caso /dev/sdb
# /sbin/fdisk /dev/sdb

Aparecerá o cabeçalho do programa, em seguida vamos entrar com o comando p (de print) para ver o que temos no disco:

Command (m for help): p
Disk /dev/sdb: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System

Como não há nenhuma partição nesse disco, o p exibe apenas os dados do disco (160GB, 255 cabeças, 63 setores, etc…)

Para criar a partição em si, entramos com o comando n, escolhemos o tipo de partição (extendida ou primária), indicamos o primeiro e o último ciindro. A escolha dos cilindros é uma forma de se dizer o tamanho da partição. No caso, todo o disk terá uma única partição, então utilizaremos o primeiro e o último cilindros disponíveis, como abaixo:

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

Vamos pedir uma impressão para ver como ficou o disco:

Command (m for help): p

Disk /dev/sdb: 160.0 GB, 160000000000 bytes
255 heads, 63 sectors/track, 19452 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       19452   156248158+  83  Linux

Caso a partição não tenha o formato desejato, utilize o comando “t”. O código hexa para o formato Linux é 83.

Agora basta “salvar” as configurações, para isso utilize o comando “w” (write).

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Formatando a partição
Para formatar a partição que criamos, utilizaremos o comando mk2fs. Esse aplicativo faz tudo o que é necessário. Basta invocar o programa e indicar qual a partição. Também vamos chamar com a opção -j, que ativa o journaling.

# /sbin/mke2fs -j /dev/sdb1 <– linha de comando

O programa irá escrever um bocado na sua tela, não se preocupe.

mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
19546112 inodes, 39062039 blocks
1953101 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
1193 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Montando a partição
Agora falta apenas criar o diretório e montar a partição. Eu gosto de coisas óbvias, então criei um diretório com o endereço /media/sdb1, assim sei que é a partição sdb1 em uma media física, mas você pode escolher qualquer diretório, se quiser criar um /backup não há nada de errado. Enfim, você escolhe.

# mkdir /media/sdb1

Agora vamos montar a partição. O comando mount será invocado com três parâmetros. -t indica o tipo de sistema de arquivos que utilizamos para formatar a partição, no nosso caso é ext3. Em seguida indicamos o device (/dev/sdb1) e o diretório onde deve ser montado (/media/sdb1 ou /backup ou /home/meu_diretorio).

# mount -t ext3 /dev/sdb1 /media/sdb1

um comando df deverá mostrar a partição e seu espaço livre:

# df

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3            153663236 140484488   5247056  97% /
/dev/sda1               101086     10177     85690  11% /boot
tmpfs                  1037320         0   1037320   0% /dev/shm
/tmpdir                 984248     17968    916280   2% /tmp
/dev/sdb1            153794688    192072 145790212   1% /media/sdb1 <– nossa nova partição!

O único problema até aqui é que ao reiniciarmos o computador a partição terá “sumido”. Para que isso não aconteça é necessário informar ao sistema como monta-la. Isso é feito adicionando-se a seguinte linha no final do arquivo /etc/fstab

#vi /etc/fstab
(vá até o final do arquivo, utilizando as setas e/ou pgdown e digite “i” seguido de ENTER. Em seguida, copie a linha abaixo)

/dev/sdb1    /media/sdb1    ext3    defaults    1    2

(pressione ESC e digite “wq” seguido de ENTER).

Pronto, está tudo certo. Sua nova partição foi criada a partir da linha de comando.

comentários

3 comentários para “Como adicionar um HD no Linux”

  1. lEANDRO em 29/06/2009

    MUITO LEGAL…
    E UM GRANDE CONTEUDO.
    CONTINUE …
    PARABENS MEU VELHO.!

  2. Rodrigo em 26/08/2009

    Ótimo artigo, segui os passos indicados e meu segundo HD SATA está funcionando perfeitamente, muito obrigado.

  3. Arnaldo Nascimento em 01/09/2009

    Ótimo! Muito obrigado.

Deixe seu comentário