Вы находитесь на странице: 1из 9

Adicionando um novo disco no Linux

mar 11 GustavoLinux disco, fdisk, Linux, lvcreate, lvm, mkfs, mkfs.ext4, pvcreate, vgcreate No Comments Como adicionar um novo disco (estamos falado de HD e no de qualquer outro tipo de mdia) num Linux? O escopo deste post mostrar como configurar um novo disco num Linux, pulando a parte hardware da coisa, ou seja, no vamos falar de cabeamento, parafusos e eventuais jumpers. Uma vez que o disco foi instalado fisicamente na mquina, devemos identific-lo para prepar-lo e ento poder utiliz-lo. Primeiramente, com o comando df, vamos verificar qual o nosso disco atual:
[root@localhost ~]# df Filesystem 1K-blocks /dev/sda2 19306788 tmpfs 515428 /dev/sda1 297485 Used Available Use% Mounted on 2809356 15516696 16% / 88 515340 1% /dev/shm 31238 250887 12% /boot

Com a sada do comando, verificamos que o disco atualmente utilizado o /dev/sda. Agora, para identificar o disco novo, podemos executar o comando dmesg e procurar por disk:
[root@localhost ~]# dmesg|grep disk sd 1:0:0:0: [sdb] Attached SCSI disk sd 0:0:0:0: [sda] Attached SCSI disk

Se nosso disco em uso o sda e agora temos um sdb, acabamos de identificar nosso disco recm adicionado. Com o disco identificado, agora vamos prepar-lo para utilizar no Linux. Preparar consiste basicamente em particionar e formatar o disco. Para particionar, usaremos o comando fdisk:
[root@localhost ~]# fdisk /dev/sdb WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').

Ok, vamos sair do modo de compatibilidade DOS e utilizar setores como medida de unidades:
[root@localhost ~]# fdisk -cu /dev/sdb Command (m for help):

No fdisk, digitamos p para mostrar informaes sobre o disco como as parties atuais (que no nosso caso, no existem):
Command (m for help): p Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x62e8c07a Device Boot Start End Blocks Id System Command (m for help):

Se no temos parties, vamos criar uma:


Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (2048-20971519, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): Using default value 20971519 Command (m for help):

E ento listar essa nova partio criada:


Command (m for help): p Disk /dev/sdb: 10.7 GB, 10737418240 bytes 107 heads, 17 sectors/track, 11529 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x62e8c07a Device Boot Start /dev/sdb1 2048 Command (m for help): End 20971519 Blocks 10484736 Id 83 System Linux

Por padro, o tipo de partio criada Linux. Este tipo utilizado para sistemas de arquivo do tipo Ext2/Ext3/Ext4, por exemplo. Se estiver apenas adicionando um disco e no quiser utiliz-lo com LVM, pode ignorar os prximos passos, salvar as alteraes na tabela de parties (digitando w no fdisk) e ir direto para o comando mkfs.ext4, mais ao final do texto. Caso queira utilizar LVM, continue lendo. Para utilizar a partio com LVM, deve-se mudar o tipo de partio. Para isso, ainda no fdisk, digite t e mude o tipo para 8e (Linux LVM):
Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help):

Vamos listar a tabela de parties para verificar as modificaes:


Command (m for help): p Disk /dev/sdb: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x62e8c07a Device Boot Start End Blocks Id System /dev/sdb1 2048 20971519 10484736 8e Linux LVM Command (m for help):

Se estiverem OK, basta salvar as mudanas e sair do fdisk (comando w):


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

De volta ao bash, podemos verificar se as mudanas realmente foram salvas com:


[root@localhost ~]# fdisk -cul /dev/sdb Disk /dev/sdb: 10.7 GB, 10737418240 bytes 107 heads, 17 sectors/track, 11529 cylinders, total 20971520 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x62e8c07a Device Boot Start End Blocks Id System

/dev/sdb1

2048

20971519

10484736

8e

Linux LVM

At aqui temos partio criada e tipo modificado para Linux LVM. Devemos ento criar um volume fsico para o LVM. Isso pode ser feito com o comando pvcreate:
[root@localhost ~]# pvcreate /dev/sdb1 Writing physical volume data to disk "/dev/sdb1" Physical volume "/dev/sdb1" successfully created

Ento vamos visualizar algumas informaes sobre este novo volume fsico criado:
[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 lvm2 a-- 10.00g 10.00g

E visualizar os atributos deste volume:


[root@localhost ~]# # pvdisplay "/dev/sdb1" is a new physical volume of "10.00 GiB" --- NEW Physical volume --PV Name /dev/sdb1 VG Name PV Size 10.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID XqqgNn-WYhy-NFA8-ntae-hVVw-4wrl-uHy2fK

Em um volume fsico, precisamos criar Volume Groups, que so as estruturas lgicas onde finalmente vamos armazenar os dados. Para listar informaes sobre os volume groups, usamos o comando lvs:
[root@localhost ~]# lvs No volume groups found

No nosso caso, ainda no temos nenhum criado. Vamos criar um volume group chamado vg_teste neste disco que acabamos de particionar e adicionar um volume fsico, para isso, usaremos o comando vgcreate:
[root@localhost ~]# vgcreate vg_teste /dev/sdb1 Volume group "vg_teste" successfully created

Para listar informaes sobre os Volume Groups, podemos usar o comando vgs:
[root@localhost ~]# vgs VG #PV #LV #SN Attr VSize VFree vg_teste 1 0 0 wz--n- 10.00g 10.00g

Se executarmos o comando pvs novamente iremos observar que a coluna VG agora est preenchida com o nosso vg_teste recm criado:
[root@localhost ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg_teste lvm2 a-- 10.00g 10.00g

Tendo um volume group criado, podemos criar um ou mais volumes lgicos. A grande vantagem de trabalharmos com volumes poder facilmente adicionar e/ou remover espao de um volume lgico. Se tivermos espao livre disponvel no volume group, podemos adicionar espao a um volume lgico sem sequer ter que parar o sistema. Para criar um volume lgico, usamos o comando lvcreate:
[root@localhost ~]# lvcreate -L 10G -n lv_teste vg_teste Volume group "vg_teste" has insufficient free space (2559 extents): 2560 required.

Um ponto a se observar que quando criamos o volume group alocamos 10 Gbytes para o mesmo mas agora no pudemos fazer o mesmo para o volume lgico, por que? Todos os volumes so divididos em partes menores, chamadas extents. Uma extent a menor parte alocvel de um volume e, sempre que criamos um volume, uma extent reservada e no podemos utiliz-la. Ento nossa possibilidade de uso de um volume pode ser definida como tamanho total do volume menos uma extent. Vamos ver com vgdisplay quantas extents temos livres no nosso volume group. Basta procurar a linha Free PE / Size e observarmos que temos 2559 ao invs das 2560 necessrias para 10 Gbytes:
[root@localhost ~]# vgdisplay --- Volume group --VG Name vg_teste System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 1 VG Access read/write VG Status resizable

MAX LV Cur LV Open LV Max PV Cur PV Act PV VG Size PE Size Total PE Alloc PE / Size Free PE / Size VG UUID

0 0 0 0 1 1 10.00 GiB 4.00 MiB 2559 0 / 0 2559 / 10.00 GiB Mv0C69-2t56-tPSI-rNX9-cUcj-r28q-89tgSp

Ento vamos criar um volume lgico novamente mas, ao invs de pedirmos 10 GB de tamanho (parmetro -L 10G), vamos pedir 2559 extents (parmetro -l 2559):
[root@localhost ~]# lvcreate -l 2559 -n lv_teste vg_teste Logical volume "lv_teste" created

Ento executamos vgdisplay novamente para verificar que a linha Alloc PE / Size passou a mostrar 2559 / 10.00 GiB ao invs de 0 / 0 que estava anteriormente:
[root@localhost ~]# vgdisplay --- Volume group --VG Name vg_teste System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 1 Act PV 1 VG Size 10.00 GiB PE Size 4.00 MiB Total PE 2559 Alloc PE / Size 2559 / 10.00 GiB Free PE / Size 0 / 0 VG UUID Mv0C69-2t56-tPSI-rNX9-cUcj-r28q-89tgSp

O comando pvdisplay tambm mostrar que temos todo o volume alocado:


[root@localhost ~]# pvdisplay --- Physical volume --PV Name /dev/sdb1 VG Name vg_teste PV Size 10.00 GiB / not usable 3.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 2559

Free PE Allocated PE PV UUID

0 2559 TvGETI-FbsG-0UWt-4v0N-TwT5-bfnj-IZZsQ0

E o comando lvs listar todos os volumes lgicos criados:


[root@localhost ~]# lvs LV VG Attr LSize Pool Origin Data% Copy% Convert lv_teste vg_teste -wi-a--- 10.00g Move Log

Com todos os passos executados, basta formatar o volume lgico com o comando mkfs.ext4. Neste ponto, se escolheu no utilizar volumes, substitua o caminho para sua partio que neste caso seria /dev/sdb1:
[root@localhost ~]# mkfs.ext4 /dev/mapper/vg_teste-lv_teste mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 655360 inodes, 2620416 blocks 131020 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2684354560 80 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 27 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.

Poderamos parar por aqui mas no quero que meu disco seja testado a cada 27 montagens ou 180 dias, que so os valores padro. Ento, com tune2fs, vamos mudar para ele nunca mais checar automaticamente:
[root@localhost ~]# tune2fs -c0 -i 0 /dev/mapper/vg_teste-lv_teste tune2fs 1.41.12 (17-May-2010) Setting maximal mount count to -1 Setting interval between checks to 0 seconds

E para montar o volume automaticamente em todo boot do sistema, vamos coloc-lo no arquivo /etc/fstab. Para isso, vamos identificar o id do volume, com o comando blkid:
[root@localhost ~]# blkid /dev/mapper/vg_teste-lv_teste /dev/mapper/vg_teste-lv_teste: UUID="fe556bcb-879a-4537-92cd2d40519089df" TYPE="ext4"

Criar um diretrio onde iremos montar este volume:


[root@localhost ~]# mkdir /teste

E adicionar uma linha ao final do /etc/fstab com o id do volume, diretrio e demais parmetros necessrios:
[root@localhost ~]# echo "UUID=fe556bcb-879a-4537-92cd-2d40519089df /teste ext4 defaults 0 0" >> /etc/fstab

Montamos todos os dispositivos contidos no /etc/fstab:


[root@localhost ~]# mount -a

E por fim verificamos se est tudo OK. [root@localhost ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 19306788 2809160 15516892 16% / tmpfs 515428 88 515340 1% /dev/shm /dev/sda1 297485 31238 250887 12% /boot /dev/mapper/vg_teste-lv_teste 10317112 154100 9638932 2% /teste

Pronto, nosso volume lgico lv_teste, contido no volume group vg_teste, identificado como /dev/mapper/vg_teste-lv_teste foi montado no diretrio /teste. No dia a dia, no precisamos executar alguns dos comandos citados neste post. Estes foram citados para facilitar a visualizao do processo. Um fluxo resumido para obter o mesmo resultado seria executar os comandos fdisk, pvcreate, vgcreate, lvcreate, mkfs.ext4, mkdir e mount com os respectivos parmetros.

Para um computador pessoal, onde no h muita movimentao de discos, no obrigatrio utilizar volumes de disco. A clara vantagem de se utilizar volumes de disco ser vista num prximo post onde irei mostrar como adicionar um segundo disco num volume j existente (o que criamos aqui) e somar suas capacidades fazendo o sistema operacional enxergar como se fosse um nico disco maior.

Вам также может понравиться