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!


And I thought I was the seniblse one. Thanks for setting me straight.