Já faz algum tempo que pretendo utilizar meus sistemas em RAID-0 nesta minha mother board da Gigabyte: GA-M61VME-S2 com software BIOS versã0 F10 (último estável).
Esta mobo, é designada para o mercado de baixo custo, tanto é que em breve pretendo trocá-la por uma melhor. Mais para o que se propõe o howto e os testes, ela funciona muito bem! :-)
Para o uso de qualquer conjunto RAID, é necessário ter dois HD’s (no mínimo), preferencialmente de mesmo tamanho, modelo e marca. (Não foi meu caso)
Eu por exemplo, possuo o seguintes HD’s no conjunto RAID-0:
bash-3.2# hdparm -i /dev/sdb
/dev/sdb:
Model=WDC WD1600AABS-61PRA0, FwRev=05.06H05, SerialNo= WD-WCAP94208730
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
BuffType=unknown, BuffSize=2048kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
(…)
bash-3.2# hdparm -i /dev/sdc
/dev/sdc:
Model=SAMSUNG HD160JJ, FwRev=ZM100-41, SerialNo=S08HJ1NL643890
Config={ Fixed }
RawCHS=16383/16/63, TrkSize=34902, SectSize=554, ECCbytes=4
BuffType=DualPortCache, BuffSize=8192kB, MaxMultSect=16, MultSect=?16?
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=312581808
(…)
Reparem que mesmo sendo de fabricantes e modelos diferentes, eles possuem o mesmo tamanho, mesmo número de CHS, mesmo número de setores LBA, sendo possível o uso em um conjunto RAID-0. O maior problema é o gargalo do cache do Western Digital (2Mb) se comparado ao SamSung (8Mb). Bola para frente!
Arranjando o conjunto
Para o uso em RAID, será necessário que os HD’s estejam vazios e limpos; para isso fiz o backup de documentos, músicas, fotos e filmes que tenho, para um HD maior de 320GB em uma placa PCI de expanção, e utilizei o comando dd no linux para limpar as partições através de um live-cd do archlinux:
#dd if=/dev/zero of=/dev/sdb bs=128M
#dd if=/dev/zero of=/dev/sdc bs=128M
Logo após isso, reiniciei a máquina e através do software de configuração SETUP do BIOS, na opção Integrated Periprherals (caso deste modelo de placa mãe e BIOS), ativei a opção da Função RAID existente no chipset. Para isto, marque em NV SATA RAID funcion para Enable.
Habilitado esta função, é necessário indicar como Enable as seguintes opções que agora também estão disponíveis:
- NV SATA 1 Primary RAID e NV SATA 1 Secundary RAID.
Salvo as configurações, no próximo boot, configure os arrays para data STRIPING, sendo acessível atravéz da tecla F10, conforme mostra o exemplo nesta galeria:
Com estas configurações, o Arranjo RAID 0 estará pronto, e a instalação dos sistemas será possível usando o conjunto dos HD como um único dispositivo de bloco.
Para entender o que é o RAID, recomendo a leitura dos seguinte texto na wikipedia:
- RAID e RAID 0 Striping.
Dual Booting
Windows Vista
Como todo dual boot de sistemas, os primeiros sistemas a serem instalados, são os da microsoft, e em um Array RAID esta regra também é verdadeira.
Para a instalação do Windows Vista, não é necessário mais nenhuma configuração, a não ser o habitual de iniciar pelo drive de DVD e particionar o conjunto normalmente, pois, o instalador reconhecerá o Array como um único dispositivo.
Em meu caso, meu Array tem 320GB, particionei o conjunto em 3:
- 80 GB para o Windows Vista;
- 160 GB para documentos, filmes, músicas, etc…
- 80 GB para a raíz Linux. ( Não chegou a 80GB reais, mais sim 68 GB)
Formatei só a primeira para instalação e tudo ocorreu da maneira simples e fácil como é a instalação do Vista.. sem mais segredos.
Se fosse com o Windows XP, seria necessário baixar o disco de drivers para RAID fornecido pelo fabricante, que pode ser encontrado aqui.
Arch Linux
Depois que instalei o Vista, parti para a instalação do ArchLinux.
Algumas informações são diferenciadas para que a instalação prossiga normalmente na instalação do Arch; alguns módulos devem ser carregados e os arranjos devem ser identificados para que a instalação continue sem nenhum problema.
As informações postadas aqui, foram retiradas do Wiki do ArchLinux internacional e através delas, consegui o dual boot entre ArchLinux e Windows Vista.
Após o boot através do CD de instalação do Arch, e com o terminal esperando comandos, vamos levantar os seguintes módulos:
#modprobe dm_mod
#modprobe sata_nv
Se você está utilizando a última imagem disponível do ArchLinux, sem problemas, se não, recomendo que a instalação seja executada a partir de uma destas -> i686 core 2008.06 ou x86_64 core 2008.06, para processadores 32 bits e 64 bits respectivamente.
Será necessário montar o CD para a instalação de um pacote importantíssimo antes de mais nada, pois, sem ele, a instalação não continuará:
#mount /dev/sr0 /media/cd
Proceda com os seguintes comandos:
#cd /media/cd/addons/core-pkgs/
#pacman -U dmraid-1.0.0.rc14*
#cd / && umount /media/cd
A instalação do dmraid é necessária, pois, por padrão, as ferramentas para que o ArchLinux identifique corretamente o array, não vem na imagem do boot da instalação utilizada no cd, sendo preciso, este passo adicional. Quem sabe em um futuro muito em breve, os desenvolvedores já não adicionem esta opção de instalação em RAID no menu de boot do Arch.. não é mesmo? ;-)
Para que possamos enxergar o arranjo, falta apenas mais dois comandos:
#dmraid -ay
E se tudo ocorreu bem:
#ls -la /dev/mapper/
Deverá ter um resultado conforme se segue:
drwxr-xr-x 2 root root 0 Dez 26 09:01 .
drwxr-xr-x 21 root root 0 Dez 26 12:14 ..
crw-rw---- 1 root root 10, 60 Dez 26 09:01 control
brw------- 1 root disk 254, 0 Dez 26 09:01 nvidia_higibbed
brw------- 1 root disk 254, 1 Dez 26 09:01 nvidia_higibbed1
brw------- 1 root disk 254, 2 Dez 26 09:12 nvidia_higibbed2
brw------- 1 root disk 254, 3 Dez 26 09:01 nvidia_higibbed3
Como se percebe, estes arquivos, são os dispositivos de bloco do arranjo RAID 0.
O nvidia_higibbed, é o dispositivo do Array, e é através dele que são criadas as partições do arranjo. Já os arquivos nvidia_higibbed1, nvidia_higibbed2 e 3, são as partições criadas anteriormente através do instalador do Windows Vista.
Caso você prefira recriar tais partições através do cfdisk, ou do parted, é muito simples; execute #cfdisk /dev/mapper/nvidia_higibbed e particione o disco da maneira que lhe convier e desejar.
Criei o sistema de arquivos para instalação do Arch, na 3ª partição do array: /dev/mapper/nvidia_higibbed3 e a formatei em JFS. Se preferir outro formato, também sinta-se a vontade quanto a isto.
#mkfs.jfs -L ArchLinux /dev/mapper/nvidia_higibbed3
Terminado a configuração, prossiga com a instação do arch. Na opção Prepare Hard Drive, vá direto para Set filesystem Mount points array e prossiga normalmente após isto, como em qualquer instalação do ArchLinux.
O que irá diferenciar esta instalação em RAID 0 de uma instalação normal a partir deste ponto, será na Configuração do Sistema/System Configuration, onde precisamos setar algumas opções e editar alguns arquivos: 

/etc/mkinitcpio.conf
O principal é o /etc/mkinitcpio.conf; na Linha MODULES, adicionei os módulos necessário para montagem do array, como o dm_mod, sata_nv e o sistema de arquivos usado na raíz, “jfs”:
MODULES=”dm_mod pata_acpi pata_amd ata_generic scsi_mod s

ata_via sata_nv jfs xfs reiserfs”
Na Linha dos binários, adicionei o ‘mknod’ por precaução, acreditando eu, não ser necessário tal atitude:
BINARIES=”mknod”
E em HOOKS, lembre-se de verificar se as opções de raid, raid-partitions, dmraid estão marcados:
HOOKS=”base udev autodetect pata scsi sata usb raid raid-partitions dmraid usbinput keymap encrypt lvm2 filesystems“
/etc/fstab
Outro arquivo de importancia que deverá ser modificado/verificado é o /etc/fstab.
Costumo montar minhas partições, utilizando o UUID da partição e não o simplesmente o /dev… a vantagem, se dará ao alterar a ordem dos discos, eu consiga dar boot no sistema sem que para isso, eu recofigure o grub e até mesmo modifique novamente o fstab. Mais, acredito eu, que isto não valha muito para o RAID, então…não mecha na ordem dos discos do Array. Para verificar isto, acesse um segundo terminal com ctrl+alt+F2 ou F3 e rode o comando blkid.
#blkid
/dev/sdc1: LABEL=”Documments” UUID=”cce6d913-387a-4f54-881c-d8367ef445d4″ TYPE=”jfs”
/dev/sdc2: UUID=”0D368F61355F19A7″ LABEL=”Games” TYPE=”ntfs”
/dev/mapper/nvidia_higibbed1: UUID=”50D4963FD496276E” LABEL=”System” TYPE=”ntfs”
/dev/mapper/nvidia_higibbed2: UUID=”A24697D74697AA95″ LABEL=”Multimidia” TYPE=”ntfs”
/dev/mapper/nvidia_higibbed3: LABEL=”ArchLinux” UUID=”20373b41-e4be-4d27-826f-62a026c9d164″ TYPE=”jfs”
Edite o fstab, deixando a linha de montagem da raíz (/), conforme o UUID mostrado pelo comando “blkid”:
UUID=20373b41-e4be-4d27-826f-62a026c9d164 / jfs defaults 0 1
Caso preferir não mecher neste arquivo, deixe-o da forma ao que se encontrava anteriormente, pois, não dará nenhum problema, só tenha em mente de que a raíz (/) deve apontar para o dispositivo de bloco /dev/mapper/nvidia_higibbed3 ou mesmo outro ponto de montagem indicado por você.
Obs.: Em meu exemplo, é utilizado nvidia_higibbed, sendo que esta palavra poderá variar conforme o chipset da controladora raid de sua placa mãe e módulos carregados com o Arch/Linux.
GRUB
Após terminar a edição destes arquivos, criar sua senha de root, não instale o Gerenciador de Boot através do programa de instalação do Arch. Este passo deverá ser feito manualmente, então… terminado a configuração do sistema, saia do programa de instalação.
A instalação do Grub será feita no terminal com a ajuda do chroot, então, precisaremos acessar o sistema já instalado.
#mount /dev/mapper/nvidia_higibbed3 /mnt
#mount -o bind /dev/ /mnt/dev
#mount -t proc none /mnt/proc
#mount -t sysfs none /mnt/sys
#chroot /mnt /bin/bash
Como pode ver, você está agora no seu ArchLinux recém instalado na partição 3 do Array RAID 0. Antes da brincadeira total e de qualquer boot, vamos instalar logo o GRUB, pois, sem ele, não poderemos escolher entre nossos sistemas durante o boot.
Você precisará do hdparm para conseguir algumas informações. Sabendo-se que o arranjo do RAID estão sob o /dev/sda e /dev/sdb; execute os seguintes comandos:
#cfdisk /dev/sda
E marque o em separado, os valores presentes em Cylinders:
Disco: /dev/sda
Size: 160041885696 bytes, 160.0 GB
Heads: 255 Sectors per Track: 63 Cylinders: 19457
Saia do cfdisk e faça o mesmo com /dev/sdb.
O que interessa disso tudo, são os valores marcados nos cilindros: 19457 – Sem estes dados, o grub não conseguirá bootar o sistema.
Some os valores dos cilindros dos dispositivos /dev/hda e /dev/hdb (19457 + 19457 = 38914) e anote estes dados em algum lugar para que possamos utilizá-los na configuração do grub.
Agora execute no terminal:
#grub –device-map=/dev/null
Com o prompt de comandos do grub aberto, digite os seguintes comandos:
grub> device (hd0) /dev/mapper/nvidia_higibbed
grub> geometry (hd0) 38914 255 63
Deverá retornar algo como exemplificado:
drive 0×80: C/H/S = 38914/255/63, The number of sectors = 625153410, /dev/mapper/nvidia_higibbed
Partition num: 0, Filesystem type unknown, partition type 0×7
Partition num: 1, Filesystem type unknown, partition type 0×7
Partition num: 2, Filesystem type is jfs, partition type 0×6
Prossiga com:
grub> root (hd0,2)
Filesystem type is jfs, partition type 0×6
Esta é a partição onde o sistema foi instalado.
grub> setup (hd0)
Onde deverá termos a seguinte saída:
Checking if “/boot/grub/stage1″ exists… yes
Checking if “/boot/grub/stage2″ exists… yes
Checking if “/boot/grub/jfs_stage1_5″ exists… yes
Running “embed /boot/grub/jfs_stage1_5 (hd0)”… 25 sectors are embedded.
succeeded
Running “install /boot/grub/stage1 (hd0) (hd0)1+25 p (hd0,2)/boot/grub/stage2 /boot/grub/menu.lst”… succeeded
Done.
grub> quit
Agora que o grub já está instalado na “mbr” do array, editamos o /boot/grub/menu.lst para que possamos escolher entre os dois sistemas já instalados. Para isso, vamos utilizar o editor de texto de nossa preferência (vi ou nano) editando este arquivo:
#nano /boot/grub/menu.lst
Deixe conforme o modelo abaixo:
# (0) Arch Linux
title Arch Linux [64 bit]
root (hd0,2)
kernel /boot/vmlinuz26 root=/dev/mapper/nvidia_higibbed3 vga=791 ro
initrd /boot/kernel26.img
# (1) Windows
title Windows Vista [32 bit]
rootnoverify (hd0,0)
makeactive
chainloader +1
Salve o arquivo, saia do chroot, desmonte as partições e reboot o sistema e seja feliz com seu dual boot em RAID 0 com ArchLinux e Windows Vista.
Fontes de pesquisas:
http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=org.mozilla%3Aen-US%3Aofficial&hs=jCq&q=Dual+Booting+raid+0&btnG=Pesquisar&meta=
http://pt.wikipedia.org/wiki/Raid
http://forum.archlinux-br.org/viewtopic.php?id=1197
http://wiki.archlinux.org/index.php/Installing_with_Fake-RAID
Leitura recomendada:
http://wiki.archlinux.org/index.php/Installing_with_Software_RAID_or_LVM