Grub2 MBR vs. Windows MBR

4

Eu tenho um sistema HP que veio com o Vista instalado e também uma partição de restauração oculta. Subsequentemente, atualizei para o Win7 (32 bits) Ultimate, e de lá para o Win7 Pro. Agora o disco rígido está falhando. Consegui usar a partimage para pegar a partição de recuperação (sem erros) antes de colocá-la no gelo em preparação para uma recuperação baseada em freezer da partição Win7.

Em outra unidade, criei 3 partições primárias e uma partição estendida:

  1. partição de recuperação (NTFS)
  2. partição Win7 (NTFS)
  3. raiz do Ubuntu (ext4)
  4. Ubuntu swap (ext4) (partição lógica)

Em seguida, instalei o Ubuntu 10.4 e permiti que o grub2 instalasse o MBR. Em seguida, usei partimage para preencher a partição de recuperação com a imagem que obtive da unidade com falha. Agora, antes de tentar recuperar a partição Win7, quero ter certeza de que posso acessar a partição de recuperação existente. E eu não posso. Eu posso ver os arquivos, mas não consigo inicializá-lo. O Grub o vê como um partiton do Windows e o lista no menu. Mas quando eu tento inicializar, olho para uma tela em branco com um cursor piscando. Eu tentei ignorar o grub usando o gparted para ativar a partição de recuperação e inicializar diretamente para isso em vez de grub, mas ainda inicializo no grub.

Então, com esse histórico, deixe-me fazer minhas perguntas.

  1. Pelo que entendi, o código MBR padrão do IBM / WIndows procura na tabela de partição a primeira partição primária com o sinalizador ativo / inicializável e, em seguida, transfere o controle para o código encontrado no início dessa partição ou "partição boot record" (PBR). O PBR localiza então NTLDR / BOOTMGR / grub / etc e o carrega. Meu entendimento é correto?
  2. Onde no processo de inicialização é a chave de interrupção (f11 no caso da HP) para inicializar a partição de recuperação tratada? MBR PBR? Gerenciador de inicialização / carregador?
  3. Quando o GRUB grava o MBR, ele também parece usar o resto da trilha 0 e o código MBR executa este código antes de prosseguir para carregar o resto do código grub em qualquer partição na qual ele está carregado (no meu caso, a partição 3) . Nesse sentido, desconsidera o sinalizador ativo / inicializável na tabela de partições. Eu entendi isso corretamente?

Eu obviamente estou perdendo algumas partes aqui porque não consigo carregar minha partição de recuperação. Eu acho que o comando grub "chainloader" (por que +1?) Seria apenas um código PBR exec. Se isso for verdade, então algo na minha partição de recuperação será escolhido.

    
por NetWorker 23.09.2010 / 18:49

3 respostas

3

Em sistemas com essa partição de recuperação, geralmente a partição ativa é a partição de recuperação. A partição de recuperação exibe a mensagem "Pressione F11" e, se não for pressionada, encaminha para a partição principal do sistema operacional.

O MBR é essencialmente idiota; tudo o que ele faz é escolher uma das partições e encaminhar para o VBR da partição.

Se você quisesse uma inicialização dupla do linux / windows, a partição de recuperação precisaria ser encaminhada para a partição do GRUB, o que permitiria opções e encaminharia para o Windows se o Windows fosse escolhido.

Eu não perderia tempo com a partição de recuperação - você pode obter todos os drivers do site da HP, e se você já tiver 7 na caixa, acho que podemos concordar em querer reverter para o Vista é improvável.

Então, para suas perguntas específicas.

  1. Sim, sua compreensão está correta
  2. respondidas acima
  3. Não tenho certeza especificamente do que o GRUB faz quando instalado no MBR. No meu entender, isso não colocou a lógica dos negócios lá, mas posso estar errado.

Espero que ajude:)

    
por 23.09.2010 / 19:25
0

Pergunta 3: Sim grub coloca um pouco de si na faixa 0. Eu pessoalmente nunca coloco grub no mbr, eu sempre uso um mbr "normal" e instalo o grub em uma partição primária.

Se usar uma parte do disco que não está marcada como sendo usada causará um problema, isso dependerá. Acredito que o particionador de disco no Windows Vista e no 7 se comporte de maneira diferente da versão anterior, mas não sei se ele utiliza as peças de reposição da faixa 0.

Eu ouvi recentemente pessoas tendo problemas porque uma versão de teste de um programa (algo da Adobe?) escreve para aquela área do disco sobrescrevendo alguns do grub (para poder impedir que pessoas reinstalem o teste novamente e novamente suponha). (Ouça um episódio recente do podcast do Ubuntu UK para obter detalhes) Minha opinião é que, se você escreve em áreas que não lhe pertencem, não pode se queixar de outras pessoas fazendo exatamente a mesma coisa.

O mbr bit do grub grava o endereço do disco físico do próximo estágio de si mesmo em seu próprio código e não leva em consideração as partições, ativas ou não.

    
por 23.09.2010 / 21:50
0

O MBR (1 setor, 512 bytes) contém o código de inicialização e a tabela de partições. O código MBR "padrão" encontra a partição primária ativa e a cadeia a carrega. (No jargão do GRUB, +1 significa o primeiro setor, o setor de inicialização dessa partição.)

Quando você instala o GRUB no MBR, ele substitui o código MBR padrão (mantendo a tabela de partições, é claro) e, em vez disso, carrega o restante da imagem principal do GRUB, que é instalada na "lacuna MBR" - supostamente não usada parte da primeira "faixa" que vem depois do setor de MBR. Se você instalar o GRUB em uma partição, ele será instalado como o setor de inicialização; a cadeia de código MBR padrão carrega esse setor de inicialização do GRUB.

É por isso que você está sempre executando o GRUB - é o que o código no MBR foi modificado para fazer. Você pode restaurar o código MBR padrão com alguma variação de fixmbr .

Mas na melhor das hipóteses, isso só provaria que sua imagem da partição de recuperação é boa e que você pode acessá-la através de um MBR de baunilha. Na verdade, se você provar que sua imagem da partição de recuperação está ruim, talvez seja por isso que ela não funcionou no GRUB e, se fosse boa, teria funcionado. Então, isso pode ser melhor, se você puder fazer uma boa cópia.

É possível que a partição de recuperação não inicialize pelo GRUB, por algum motivo bizarro. Pode ter havido algum molho especial no MBR original de fábrica que era um pré-requisito para a partição de recuperação. Eu evitei sistemas que os tinham, então não posso oferecer muita percepção lá.

    
por 24.09.2010 / 01:51