Problemas com o Grub

Iniciado por nazeazeno, 03 de Abril de 2011, 19:54

tópico anterior - próximo tópico

nazeazeno

Uso o Ubuntu em um HD de 320 GB. Precisei instalar o Windows, por isso o instalei numa partição de 21 GB em outro HD de 40 GB.
Bem, após isso, fui recuperar o Grub para poder bootar em ambos os sistemas. Acontece que nada, absolutamente nada deu certo e agora quando inicio o PC entra-se direto na linha de comando do Grub.
Uso o fdisk -l para identificar tudo, recebo isto:

Identificador do disco: 0x2d902d8f

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sda1   *           1        2550    20482843+   7  HPFS ou NTFS
/dev/sda2            2551        4864    18587205    f  Win95 (LBA) Partição Extendida
/dev/sda5            2551        4864    18587173+   7  HPFS ou NTFS

Disco /dev/sdb: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Unidades = cilindros de 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Identificador do disco: 0x0002f155

Dispositivo Boot Início Fim Blocos Id Sistema
/dev/sdb1               1       38740   311175168   83  Linux
/dev/sdb2           38740       38914     1393665    5  Estendida
/dev/sdb5           38740       38914     1393664   82  Linux swap / Solaris

SDA1 é onde está o Windows.
Se utilizo o comando mount /dev/sda1 /mnt/sda1, recebo

Mount is denied because the NTFS volume is already exclusively opened.
The volume may be already mounted, or another software may use it which
could be identified for example by the help of the 'fuser' command.

Na verdade, na primeira vez em que utilizo o comando, nada acontece. Daí na segunda vez recebo isso.
Se insisto e digito find /boot/grub/stage1, recebo "não foi possível mudar o diretório raiz para /mnt/sda1: Arquivo ou diretório não encontrado".
O comando "find /boot/grub/stage1" tambem não funciona porque diz que não há stage1.

Enfim, qual é a solução para isso agora? Já vi diversas vezes pessoas com problemas para arrumar o Grub, mas nada que tento fazer dá certo.
Obrigado pela força!

fabiorumor

Olá : nazeazeno, dá uma vista de olhos neste tópico.

http://ubuntuforum-pt.org/index.php/topic,14614.0.html


Abraço.

nazeazeno

Eu já conhecia essa página do link. Claro que não testei tudo até porque é tanta informação que fiquei meio perdido. Ainda nada deu certo.
Precisei bootar pelo windows para dar um fdisk /mbr para eliminar o grub que estava aparecendo antes (aquele a que me referi, que era só um terminal pra digitar sabe-se-lá o que).
Depois de tanto tentar, finalmente a partição do Windows está sendo detectada.
Utilizei o processo abaixo para recriar o grub:

sudo mkdir /mnt
sudo mount /dev/sda5 /mnt
sudo mount -o bind /dev /mnt/dev
sudo mount -o bind /proc /mnt/proc
sudo chroot /mnt bash
sudo update-grub

No entanto, após dar o update-grub, recebo a mensagem de que não se pode encontrar as partições (cannot find partitions).
Então, estou de volta à estaca zero!
Hoje já pensei em formatar tudo e instalar pelo Wubi, mas descartei isso porque o backup seria grande demais, de modo que não dá pra se fazer isso.

idicbr

nazeazeno, tentando dar uma força...

Vejamos se entendi: a máquina tinha apenas um HD de 320GB onde o Ubuntu estava instalado. Se isso é correto, esse HD era identificado como sda antes de você acrescentar o HD de 40GB. Quando você acrescentou o HD de 40GB ele, ele passou a ser identificado incorretamente como sda (o HD de 320GB, que antes era sda passou a ser sdb). O fdisk -l mostrou isso.

Parece que é aí que está a encrenca. A linha set root='(hd0,msdos5)' do arquivo /boot/grub/grub.cfg no atual HD sdb (o de 320GB) aponta para um boot do Linux que não mais existe em sda (que agora passou a ser o hd0). Esse boot (a linha  linux boot/vmlinuz-2.6.35-28-generic blá, blá, blá... do arquivo grub.cfg) está em sdb (que agora é o hd1).

Verifique isso: pelo LiveCD abra o arquivo /boot/grub/grub.cfg (que deve estar no HD de 320GB) e dê uma olhada na linha set root='(hd0,msdos5)'.

Outra coisa: o HD de 40GB agora é o "master" mas se ele fosse "slave" toda a configuração de boot anterior, em tese, teria sido preservada.

Minha sugestão é que você desconecte, por enquanto, o HD de 40GB e recupere o grub através de um dos procedimentos do link acima. A seguir, configure o HD de 40GB como "slave", conecte-o ao segundo canal IDE e/ou SATA) e reinicie o Linux. Isso deve fazer com que ele seja detectado como sdb. Finalmente, instale o Windows. Possivelmente, será necessário recuperar outra vez o grub (já que o Windows provavelmente detonará o mbr do sda). Em seguida, atualize o grub e verifique se a entrada correspondente ao Windows foi incluida.

Veja, é só uma hipótese baseada nas informações que você passou, mas espero que ajude  :)

Abs.