Não é possível reparar o GRUB

2

Estou tentando reparar meu GRUB após a instalação do Windows 7.

Tenho 64bit e 32bit live CDs do Ubuntu + Super Grub Disk (Rescatux) + Boot-Repair-Disk . Estou seguindo os passos da esta resposta . Mas no sexto passo eu estou ficando

/usr/sbin/grub-probe: error while loading shared libraries: libdevmapper.so.1.02.1: wrong ELF class: ELFCLASS32 após a execução do comando update-grub .

Depois, tentei usar o Boot-Repair . Em primeiro lugar tentou Reparação recomendada e terminou com sucesso, mas quando eu reiniciar não há menu de inicialização. E então da próxima vez eu mantenho o Shift Esquerdo enquanto estou inicializando. Ainda está inicializando o Windows automaticamente.

E então tentei usar Reparo avançado . Mesmos resultados Estes são os meus logs de Reparo de inicialização: link

Eu preciso de respostas específicas para o meu sistema. Obrigado.

Nota:

My installed Ubuntu system is 64 bit and I have 64bit and 32 bit Live CDs

Nota 2

(after booting with a 32bit Live CD) (look at Note 3 for 64bit Live CD results)

file /lib/libdevmapper.so.1.02.1 -> /lib/libdevmapper.so.1.02.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped

file /usr/sbin/grub-probe -> /usr/sbin/grub-probe: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

ubuntu@ubuntu:~$ sudo mkdir /mnt/ubusda3
ubuntu@ubuntu:~$ sudo mount -t ext4 /dev/sda3 /mnt/ubusda3
ubuntu@ubuntu:~$ file /mnt/ubusda3/sbin/init
/mnt/ubusda3/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

Nota 3

(after booting with a 64bit Live CD)

file /lib/libdevmapper.so.1.02.1 -> /lib/libdevmapper.so.1.02.1: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

file /usr/sbin/grub-probe -> /usr/sbin/grub-probe: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

ubuntu@ubuntu:~$ sudo su
root@ubuntu:/home/ubuntu# mkdir /mnt/ubusda3
root@ubuntu:/home/ubuntu# mount -t ext4 /dev/sda3 /mnt/ubusda3
root@ubuntu:/home/ubuntu# file /mnt/ubusda3/sbin/init
/mnt/ubusda3/sbin/init: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped
root@ubuntu:/home/ubuntu# file /mnt/ubusda3/lib/libdevmapper.so.1.02.1
/mnt/ubusda3/lib/libdevmapper.so.1.02.1: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, stripped
    
por Eray 19.04.2012 / 01:29

2 respostas

2

Drat!

Eu finalmente consegui um multi-boot de versões do Ubuntu e uma instalação do Windows 7 trabalhando em uma VirtualBox Virtual Machine para que eu pudesse experimentar com as ferramentas de reparo. Acontece que minha sugestão original estava errada e não funcionou como eu pensava que seria. : - (

Então ... começando de novo ...

Embora eu pretenda experimentar mais com uma VM para saber mais sobre as várias ferramentas, como o Boot-Repair ferramenta ou usando um Live CD e chroot e para reinstalar o GRUB, concluí que a coisa mais conveniente que eu poderia oferecer agora seria esboçar uma maneira de permitir a inicialização do Windows no menu GRUB.

Não estou sugerindo isso como "a" solução final. Mas deve pelo menos permitir a inicialização da partição Ubuntu novamente, o que também, creio eu, abre outras opções de reparo.

Além disso, depois de experimentar na VM, tenho certeza de que isso deve funcionar. (Mentalmente cruzando os dedos aqui ...)

Usando o EasyBCD 2.1.2 para inicializar no GRUB a partir do menu de inicialização do Windows

  1. Inicialize o Windows. Em seguida, abra a página EasyBCD 2.1.2 em um navegador e use o Download gratuito para uso limitado e não comercial link para baixar e instalar o EasyBCD.
    Observação: Este link está abaixo o botão Buy Now na parte inferior da página.
    Enquanto eles solicitam um nome & e-mail, você não precisa para inseri-los para fazer o download.
  2. Abra o programa EasyBCD e selecione Adicionar nova entrada na barra lateral à esquerda.
  3. Selecione a guia mais à direita, NeoGrub , em " Sistemas operacionais " e clique no botão Instalar . br> Nota: Isto adiciona o código do gerenciador de inicialização NeoGrub ao seu diretório C:\ .
    Você deve ver o arquivo NeoGrub e o diretório NST in C:\ se a instalação funcionou corretamente.
  4. Selecione a guia Linux / BSD . Escolha o tipo de GRUB que sua instalação usa (por exemplo, GRUB 2) e, opcionalmente, edite o nome do   entrada que você está prestes a adicionar ao menu de inicialização do Windows.
  5. Clique no botão Adicionar entrada para adicionar uma entrada para inicializar o Linux (menu GRUB) no menu de inicialização do Windows.
  6. Selecione Editar menu de inicialização na barra lateral para revisar suas alterações. Observação: Você pode excluir a entrada do NeoGrub Bootloader se você deseja.
    Foi adicionado quando você instalou o NeoGrub Bootloader no passo (3). Você precisa do bootloader, mas não precisa de uma entrada no menu de inicialização para ele. Você só precisa da entrada adicionada no passo (5).
  7. Salve suas alterações e reinicie. Quando o menu de inicialização do Windows aparecer, selecione a entrada que você adicionou para inicializar o Linux. Após um pequeno atraso, o menu de inicialização do GNU GRUB deve aparecer.
por irrational John 19.04.2012 / 05:08
1

Inicialize no live CD e tente estes comandos (somente se você já tiver o Ubuntu instalado). Isso é para o Grub2.

Você precisará encontrar sua partição com o Ubuntu e substituir / dev / sdAX. Isso pode ser feito com o seguinte comando sudo fdisk -l - e depois escolha a partição 'Linux'

sudo su
mkdir /mnt/root
mount -t ext4 /dev/sdAX /mnt/root
mount -t proc none /mnt/root/proc
mount -o bind /dev /mnt/root/dev
mount -o bind /sys /mnt/root/sys
chroot /mnt/root /bin/bash
sudo grub-install /dev/sda
sudo update-grub
    
por A. Hayes 19.04.2012 / 01:46