Grub não reconhece o Windows nem após configuração manual.

Iniciado por Madrigal, 08 de Maio de 2008, 01:20

tópico anterior - próximo tópico

Madrigal

Instalei o Ubuntu 8.04 num pc com o particionamento muito estranho, o Windows XP instalado numa partição extendida dentro do hda1.

Está assim o HD:

hda1 (com extendida hda5, onde está instalado o Windows XP)
hda2 (sistema do Ubuntu)
hda3 (home do Ubuntu)
hda4 (Swap)

O Grub não reconheceu o Windows, por isso editei o menu.lst e coloquei:
title      Windows XP
root      (hd0,4)
savedefault
makeactive
chainloader   +1

Mesmo assim não deu certo!
Não posso formatar todo o HD porque o PC não tem gravadora, pra fazer cópia de segurança dos arquivos no XP.

O que pode ser isso? Será que não reconhece devido ao XP estar numa extendida? Eu nem sabia que poderia instalar o XP numa extendida.  :-\

clcampos

Windows não pode ficar em partição extendida.

Isso é uma limitação dele.
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

glilco

O windows já estava instalado antes de instalar o linux?

Até onde eu sei, o Windows XP pode sim ser instalado em partição extendida, mas a partição ativa tem que ser a primária para ele gravar na MBR.

O que acontece quando você tenta iniciar o windows a partir do grub depois dessa configuração?

Madrigal

Citação de: glilco online 08 de Maio de 2008, 10:31
O windows já estava instalado antes de instalar o linux?
Sim, já estava.

Citação de: glilco online 08 de Maio de 2008, 10:31
..., mas a partição ativa tem que ser a primária para ele gravar na MBR.
Como assim partição ativa?

Citação de: glilco online 08 de Maio de 2008, 10:31
O que acontece quando você tenta iniciar o windows a partir do grub depois dessa configuração?

Dá uma mensagem de erro, mas não me lembro qual é... é algo como /dev/... incorreta.

Já experimentei colocar (hd0,4), (hd0,0), e outros e não deu certo.

glilco

Cara... estive procurando algumas coisas sobre o assunto... uma dúvida: o seu XP dava boot normal antes da instalação do linux? se sim, pode ser possível fazer o seguinte:

1) instalar o grub do linux na partição em vez de na MBR.

2) recuperar o boot do windos através do cd de instalação (utilizando as ferramentas fixboot e fixmbr, lembrando de especificar corretamente o disco onde está instalado o windos).

3) utilizar o NTLDR do windows como gerenciador de boot.

Para o passo 3, existe a ferramenta BootPart e achei um tutorial em inglês de como utilizá-la: http://www.linuxforums.org/forum/401236-post13.html

Não testei essa solução... não sei se funciona...

clcampos

glilco a única vez que vi alguém tentando instalar o GRUB em uma partição ele acabou ficando sem os dados... tem certeza mesmo disso?
Cristiano/Timóteo - MG
.: Como Fazer Perguntas de Forma Inteligente :.                
Com dúvida? pesquise!

glilco

#6
clcampos, depois do seu alerta, resolvi fazer os testes aqui.

Nesse momento, estou usando o Ubuntu e o boot foi feito pelo NTLDR do windows, que executou o boot do grub na minha partição que, por sua vez, executou o boot do linux.

Claro, essas operações sempre envolvem risco de perda de dados, afinal, estamos mexendo diretamente nas tabelas de partição.

É muito importante ter um live cd do Linux ou um disco de boot para recuperar eventuais falhas.

Os passos que segui foram os seguintes:

1) instalar o grub do linux na partição em vez de na MBR.

Como a minha partição do linux é a /dev/sda2, executei:

sudo grub-install /dev/sda2

2) recuperar o boot do windows através do cd de instalação.

Inicializei o cd de instalação do windows (no meu caso, Windows 2000) e escolhi as opções até chegar no console de recuperação. No console, digitei

fixmbr c:

3) utilizar o NTLDR do windows como gerenciador de boot

Entrei no windows (agora diretamente, pois o grub foi removido da MBR), baixei o BootPart e usei para adicionar no NTLDR o boot para o linux.

==> Como usar o BootPart

os comandos que eu usei estão listados abaixo:

bootpart Lista todas as partições do disco, seguidas dos sistemas de arquivo, cada uma identificada por um número.
Ex.:

0 : C:* type=7 (HPFS/NTFS), size = 1741824 KB
1 : D:  type=b (Win95 Fat32), size = 1407136 KB
2 : E:* type=83 (Linux native), size = 16600 KB
3 : E: type=5 (Extended), size = 3136392 KB
4 : E: type=83 (Linux native), size = 3070336 KB


bootpart list Lista as entradas do BOOT.INI, utilizado pelo NTLDR para executar o boot.
Ex.:

0 : C:\bootsect.lnx="Fedora Core 6"
1 : multi(0)disk(0)rdisk(0)partition(2)\WINNT="Windows XP"


bootpart <nro_part> <arquivo_boot> <nome_exibicao> Adiciona uma entrada no boot.ini.

<nro_part> é o número da partição, que é obtido no comando bootpart
<arquivo_boot> é o arquivo que ele vai criar com as informações de boot.
<nome_exibicao> é o nome que vai aparecer na tela de boot para essa entrada do boot.ini. Lembrando que, se o nome tiver espaços, deve ser escrito entre aspas.

Ex.:
bootpart 2 c:/bootsect.lnx "Ubuntu Linux"

Aqui funcionou perfeito. Só que a minha partição do windows é primária. Mas se você conseguir restaurar o seu boot do windows através do fixmbr, provavelmente vai funcionar essa solução.

Mas não se esqueça! Essa não é uma operação simples e sempre há risco de perda de dados!

Madrigal

Muito obrigado Glilco pela atenção dispensada.  ;)

Bem, acabei não podendo executar suas indicações porque a dona do computador resolveu radicalizar antes de experimentar recuperar o glub... ela arrumou um HD externo, transferiu os arquivos e formatou tudo.

Portanto é uma pena que ficarei sem saber se sua dica daria certo ou não, pela sua explicação detalhada, é bem capaz que daria.

O bom disso, é que minha aluna resolveu nem colocar mais o Windows no PC, vai ser exclusivamente Ubuntu.  ;D