OpenSuse 10.3 e discos SATA

Sei que este artigo foge do escopo do KDE-MG e do KDE, mas como se trata de Software Livre em geral, tentarei manter o costume de sempre publicar alguma coisa que ocorra no meu dia-a-dia.

Recentemente eu e "minha equipe" estamos fazendo uma re-estruturação de infra-estrutura de T.I. em uma multi-nacional de desenvolvimento de softwares e estamos enfrentando um cenário nada nada fácil.

Um dos servidores (DELL PE T300) está configurado com uma Raid-1 com 2 discos de 250GB e um outro servidor (DELL PE T105) está configurado com um disco sem Raid.

Como precisamos de refazer toda a estrutura do PET300, pensamos na seguinte estratégia: Retiramos um dos discos da RAID-1 e bootamos o mesmo no PET105. Bingo! Assim poderíamos levar o PET300 feliz para o laboratorio e deixar o PET105 dando conta do recado por 2 semanas… Mero engano… :( Foi ai que comecaram as minhas dores de cabeca com o OpenSuse 10.3.

Infelizmente o mesmo estava sem suporte à libata (que levanta os modulos para controladoras de discos pix_ii, sata_nv, sata_via, etc e principalmente o modulo ahci – o que nós precisavamos).

Para resolver o problema tivemos de rodar muito e ate mesmo pedir suporte local para a Novell que de nada adiantou.

Quando ja estavamos pra desistir, resolvemos dar uma checada no initrd do Kernel. Ai estava a surpresa.

Nao estava sendo levantado o modulo ahci e o disco ainda por cima era referenciado pelo seu ID, o que dificulta muito se a maquina estiver faltando bibliotecas de controladoras de discos e principalmente sem suporte a libata.

Para resumir o que fizemos foi:

1 – Gravar um DVD do OpenSuse 10.3 e iniciar o equipamento em modo Rescue;

2 – Assim que iniciar o sistema, devemos montar a particao raiz do disco (ex. /dev/sda1) em /mnt;

root@servidor:/#mount /dev/sda1 /mnt

2.1 – Montar o "/dev" no sistema de arquivos do disco – Isso fara com que os dispositivos reconhecidos no boot sejam mapeados corretamente quando usarmos o chroot;

root@servidor:/#mount -o bind /dev /mnt/dev

3 – Agora devemos utilizar o chroot no disco montado para que as alteracoes funcionem;

root@servidor:/# chroot /mnt

4 – Monte os sistemas de arquivos "proc" e "sys";

root@servidor:/# mount /proc; mount /sys; sync

5 – Altere o /boot/grub/menu.lst e /etc/fstab de acordo com seu disco:

DICA: Lembre-se de fazer um backup de cada um destes arquivos antes de altera-los.

root@servidor:/# fdisk -l

Disk /dev/sda: 18.3 GB, 18351959040 bytes <—– Disco que deverá ser iniciado.
255 heads, 63 sectors/track, 2231 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000b8ebb

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1945    15623181   83  Linux <—– Particao onde esta o sistema.
/dev/sda2            1946        2231     2297295   82  Linux swap / Solaris

5.1 – Editando o menu.lst (grub);

title           Debian GNU/Linux, kernel 2.6.26-1-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-1-686 root=/dev/sda1 ro vga=791 resume=/dev/sda2
initrd          /boot/initrd.img-2.6.26-1-686

5.2 – Editando a Tabela de Sistemas de Arquivos (/etc/fstab);

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/sda1       /               reiserfs notail          0       1
/dev/sda2       none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0
/dev/mapper/data-data.var       /var    reiserfs        notail,defaults 0       0
/dev/mapper/data-data.data      /data   reiserfs        defaults        0       0

DICA: Lembre-se: O seu disco muito provavelmente irá estar referenciado por ID (by-id). Remova esta entrada e coloque a particao correspondente de acordo com o resultado de "fdisk -l".

 

Pronto! Ja estamos com o ambiente preparado para as alteracoes que agora devem ser feitas.

Primeiramente, vamos alterar as opcoes do kernel em "/etc/sysconfig/kernel" e procurar pela linha:

***
INITRD_MODULES="ahci …"
***

Importante dizer que para que Murphy não entre em ação, coloque o modulo ahci como primeiro da lista.

# – Reconstrua o Initrd do kernel;

root@servidor:/# mkinitrd

A partir deste momento, ja teremos feito todas as altercacoes necessarias para bootar nosso sistema novamente em outra maquina, como é o nosso caso.

Antes, nao se esqueca de desmontar os sistemas que montamos anteriormente;

root@servidor:/# umount /proc

root@servidor:/# umount /sys

root@servidor:/# CTRL+D

root@servidor:/# umount /mnt/dev

root@servidor:/# umount /mnt

root@servidor:/# sync

root@servidor:/# reboot

Sei que este artigo nao deve abranger a todos, mas decidimos coloca-lo aqui depois da raiva que passamos. Importante ressaltar que se trata de procedimento extremamente tecnico e que é um cenário particular mas que pode servir de ajuda para outras pessoas. Nem nós e nem o KDE-MG se responsabiliza pelas informacoes aqui colocadas bem como seus resultados tendo o leitor e executor a total responsabilidade sobre os atos que atraves deste forem feitos.

Em caso de Duvidas, estou a disposicao!

Comments
Leave a Comment