Recentemente alguém me perguntou algo que achei interessante dividir com vocês, eis o problema hipotético:
o usuário tinha 2 HDs dividido da seguinte forma:
HD1 Ubuntu
hda1 /
hda2 /home
hda3 swap
hda5 /media/hda5
HD2 Fedora
hdb1 /
hdb2 /home
hdb3 swap
hdb5 /media/hdb5
Não satisfeito com a tranqüilidade e estabilidade dos sistemas, comprou um terceiro e colocou um pouco de mais emoção e aventura na sua vida, afinal de contas, é bom viver perigosamente.
O "técnico" de informática disse que na compra, com uma pequena taxa ele já instalava e configurava o Xistema oPeracional. Jogou os HDs anteriores para a IDE2 porque pensou que seria "backup" e colocou na Master da IDE1. Feliz e serelepe assim que iniciou, sentiu falta de algo, o livre arbítrio de escolher que sistema queria iniciar. O que fazer, se ambos sistemas estão instalados e atualizados?
Vamos esquecer por um momento que o Ubuntu tem uma opção "rescue", ok? Pra ficar divertido
1º Tenha um CD live ou floppy de qualquer distro em mãos e dê boot por ele, abra um terminal e mãos à massa! \o/
Obs.: Cada distro tem seu root ou seu jeito de dar o poder de root aos usuários, então, supondo que do Ubuntu você já digitou um
sudo su - ou vai prefixar cada comando abaixo, seguiremos:
2º Descobrindo por onde andam os hds. Você não tem idéia de onde estão os HDs e não pode abrir o gabinete:
fdisk -l /dev/hda
fdisk -l /dev/hdb
fdisk -l /dev/hdc
fdisk -l /dev/hdd
Se a IDE estiver livre ou tiver nela um leitor de CD, não vai apresentar nenhuma saída, mas se tiver, vai aparecer o "retrato" das suas partições. No caso em tela, alguns sistemas podem aparecer:
Windows:
W95 FAT32 (LBA)
W95 FAT32
W95 Ext'd (LBA) ou Win95 (LBA) Partição Extendida
HPFS/NTFS
Para LBA leia-se "Partição que já foi considerada imensa em dias pretéritos" (Logical Block Addressing)
Linux:
Linux
Linux swap / Solaris
Estendida
3º Descobriu as partições e descobriu que o HD com Windows foi dividido em 2 partições, vamos montar pra saber quem é o:
HD1 Windows
hda1 Windows
hda5 Meus Documentos
HD2 Linux
hdc1 /
hdc2 /home
hdc3 swap
hdc5 /media/hdc5
HD3 Linux
hdd1 /
hdd2 /home
hdd3 swap
hdd5 /media/hdd5
São 2 do HD com Windows + 3 do HD com Ubuntu + 3 do HD com Fedora = 8. Para não ter que digitar 8 vezes o mesmo comando, vou usar o for:
for i in a1 a5 c1 c2 c5 d1 d2 d5 ; do mkdir /media/hd$i ; done
Leia-se "Pra cada valor de i (a1 a d5) vou fazer um /media/hda1 até /media/hdd5
Para montar, como são tipos de partição diferente, vou usar o read com o for, que lerá o que eu digitar:
for i in a1 a5 c1 c2 c5 d1 d2 d5 ; do echo "digite o sistema da partição hd$i" ; read s ; mount -t $s /dev/hd$i /media/hd$i; done
Sistema pode ser ext3, ntfs, vfat (Linux, HPFS/NTFS, W95 FAT32, respectivamente, conforme o que se achou no 2º passo)
Depois de tudo montado, basta navegar nos diretórios e descobrir, pelo conteúdo quem é o que
Intervalo para os comerciais:http://wiki.ubuntubrasil.org/GuiaDapper#head-b9ea717f965346b1ccd1519ca249d90819071e2bhttp://wiki.ubuntubrasil.org/GuiaDapper#head-f2c4a72d5ba3058985cbf80cc278fa4d29f4ac154º Grub lê Unix!
O Grub lê os drivers nas IDEs como Unix e não como Linux, eles contam a partir de 0, quando o Linux conta a partir de um, daí podemos concluir:
Na Motherboard => Linux => Unix
Master da IDE 1 => hda > hd0
Slave da IDE 1 => hdb > hd1
Master da IDE 2 => hdc > hd2
Slave da IDE 2 => hdd > hd3
Linux => Unix
hda1 => hd0,0
hdb2 => hd1,1
hdc1 => hd2,0
hdd7 => hd3,6
Agora é hora de editar menu.lst do Grub, depois de ter vasculhado os /media/hdXY descobrimos que o que queremos está em /media/hdc1
Backup!
cp /media/hdc1/boot/menu.lst /media/hdc1/boot/menu.lst.backup
Editando o /media/hdc1/boot/menu.lst
=============================
default=0
timeout=5
splashimage=(hd3,0)/boot/Grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.20-1.2952.fc6)
root (hd3,0)
kernel /boot/vmlinuz-2.6.20-1.2952.fc6 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.20-1.2952.fc6.img
title Ubuntu, kernel 2.6.20-15-generic
root (hd2,0)
kernel /boot/vmlinuz-2.6.20-15-generic root=UUID=7efb0622-377a-4a47-9b2b-f870d6bc38a9 ro quiet splash
initrd /boot/initrd.img-2.6.20-15-generic
title Windows XP
rootnoverify (hd0,0)
chainloader +1
=============================
5º O pulo do gato
Terminamos de fazer tudo o que tinha pra fazer dentro do Linux-genérico, agora precisamos entrar no sistema de onde editamos o menu do Grub:
chroot /media/hdc1
Agora que você está lá no sistema novo, siga a documentação do "intervalo comercial"
Grub-install /dev/hda
E reinicie o computador, mas, agora, com livre arbítrio
Obs.: Esse pode não ser o jeito mais fácil, talvez tenham CDs de busca e recuperação que automatizam todas as tarefas, mas essa é uma forma que acho que cabe para praticamente todas as distros que usam Grub.
Obs.: Para quem ainda usa lilo, o arquivo de edição está em /etc/lilo.conf e é muito intuitivo, para instalar o lilo na MBR digita-se
lilo no terminal.
Espero que isso sirva para algo e/ou alguém