Eu estava tentando reparar meu GRUB depois de instalar o Windows no Ubuntu. Mas eu não consegui consertar efiz essa pergunta.Ao discutir com psusi, notamos algo. Meu sistema instalado é de 64 bits, mas alguns arquivos de minha biblioteca são de 32 bits (por exemplo:) libdevmapper.so.1.02.1
.
(Você pode verificar a etapa 13 da minha pergunta. E verifique outras etapas para ver quais etapas eu segui.)
- Meu antigo Ubuntu foi instalado em
/dev/sda3
. Eu montei para/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
sudo dpkg --root=/mnt/ubusda3 -i /mnt/ubusda3/var/cache/apt/archives/libbz2-1.0_1.0.5-6ubuntu1.11.10.1_amd64.deb
chroot /mnt/ubusda3
apt-get install --reinstall libdevmapper1.02.1
- E então novamente eu tentei e
update-grub
recebimapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory
um erro. - Reiniciei meu sistema, mas nada mudou.
- encontrei mapdevfs
/bin/mapdevfs
comwhich mapdevfs
comando. sudo rm /bin/mapdevfs
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
grub-install /dev/sda
- Finalmente resolvi meu problema do GRUB. Agora há um menu GRUB durante a inicialização. Tela de versões anteriores do Linux (e poeiras)
Mas quando eu escolho Ubuntu 3.0.0.17-generic
, ele congela na tela de carregamento e recebo este erro: (Bloqueio de rolagemeNum Lockpiscando.)
Quando eu escolho outras versões do kernel - que emversões anteriores do Ubuntuscreen- , estou recebendo esse erro para ambos.
Nota 1 (para John irracional)
ubuntu@ubuntu:~$ sudo su
root@ubuntu:/home/ubuntu# mkdir /mnt/ubusda3
root@ubuntu:/home/ubuntu# mount /dev/sda3 /mnt/ubusda3
root@ubuntu:/home/ubuntu# for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
root@ubuntu:/home/ubuntu# chroot /mnt/ubusda3/
root@ubuntu:/# apt-get -V --reinstall install libnih
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libnih
e então percebi que libnih1
não é linbih
(http://packages.ubuntu.com/search?keywords=libnih&searchon=names&suite=oneiric§ion=all)
root@ubuntu:/# apt-get -V --reinstall install libnih1
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
winbind (3.5.11~dfsg-1ubuntu2.2)
The following packages will be upgraded:
winbind (3.5.11~dfsg-1ubuntu2.1 => 3.5.11~dfsg-1ubuntu2.2)
1 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
6 not fully installed or removed.
Need to get 54.7 kB/5,693 kB of archives.
After this operation, 32.8 kB disk space will be freed.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
libnih1
Install these packages without verification [y/N]? y
Get:1 http://tr.archive.ubuntu.com/ubuntu/ oneiric/main libnih1 amd64 1.0.3-4ubuntu2 [54.7 kB]
Fetched 54.7 kB in 0s (57.1 kB/s)
Can not write log, openpty() failed (/dev/pts not mounted?)
(Reading database ... 196784 files and directories currently installed.)
Preparing to replace winbind 2:3.5.11~dfsg-1ubuntu2.1 (using .../winbind_2%3a3.5.11~dfsg-1ubuntu2.2_amd64.deb) ...
/sbin/runlevel: error while loading shared libraries: libnih.so.1: wrong ELF class: ELFCLASS32
* Stopping the Winbind daemon winbind
...done.
Unpacking replacement winbind ...
Preparing to replace libnih1 1.0.3-4ubuntu2 (using .../libnih1_1.0.3-4ubuntu2_amd64.deb) ...
Unpacking replacement libnih1 ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
ureadahead will be reprofiled on next reboot
Can not write log, openpty() failed (/dev/pts not mounted?)
Setting up libwbclient0 (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up samba-common (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up winbind (2:3.5.11~dfsg-1ubuntu2.2) ...
* Starting the Winbind daemon winbind
/usr/sbin/winbindd: error while loading shared libraries: libcap.so.2: wrong ELF class: ELFCLASS32
...fail!
invoke-rc.d: initscript winbind, action "start" failed.
dpkg: error processing winbind (--configure):
subprocess installed post-installation script returned error exit status 127
Setting up libsmbclient (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up samba-common-bin (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up smbclient (2:3.5.11~dfsg-1ubuntu2.2) ...
Setting up libnih1 (1.0.3-4ubuntu2) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Errors were encountered while processing:
winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)
Desta vez, estou recebendo o mesmo erro de inicialização do libnih-dbus.so....
arquivo.
Também para encontrar outros arquivos de 32 bits, executei seus comandos e vejo todos os arquivos /mnt/ubusda3/lib/modules/3.0.0-12-generic/
e /mnt/ubusda3/bin
estão32 bits.
É possível reinstalar arquivos inteiros do kernel?
Responder1
OK, tentei todas as respostas, tudo. Mas não consegui resolver meu problema. E finalmente, reinstalo meu Ubuntu.
Responder2
Você consegue inicializar sua instalação atual comqualquerdos kernels instalados em seu sistema?
Olhando para o seuconversar com psusiexiste ummensagem com linkparapasta de reparo de inicialização 938724. Ele mostra que você criou um menu GRUB com entradas para
'Ubuntu, with Linux 3.0.0-17-generic'
'Ubuntu, with Linux 3.0.0-17-generic (recovery mode)'
'Ubuntu, with Linux 3.0.0-16-generic'
'Ubuntu, with Linux 3.0.0-16-generic (recovery mode)'
'Ubuntu, with Linux 3.0.0-12-generic'
'Ubuntu, with Linux 3.0.0-12-generic (recovery mode)'
Você já tentou todos eles e todos falharam da mesma maneira? Só estou me perguntando se um deles permite que você inicialize com sucesso, então talvez você possa se recuperar limpando/desinstalando um kernel que falhou e depois reinstalá-lo.
24 de abril
De acordo compasta de reparo de inicialização 938724, update-grub
encontrou essas entradas em sua /boot
pasta quando foi investigado. Pelo menos foi isso que o boot-repair encontrou no sda3/boot/grub/grub.cfg
.
O que você vê no menu GRUB quando inicializa? É semelhante ao seguinte?
Ubuntu, with Linux 3.0.0-17-generic
Ubuntu, with Linux 3.0.0-17-generic (recovery mode)
Previous Linux versions
Memory test (memtest86+)
Memory test (memtest86+, serial console 115200)
Windows 7 (loader) (on /dev/sda4)
(Se você não obtiver um menu GRUB ao inicializar, tente pressionar/segurar a shifttecla quando o processo de inicialização começar para exibir o menu.)
Se você vir um menu GRUB com a entrada Previous Linux versions
, tente selecionar essa entrada e pressionar enter. Você deverá ver outro menu com entradas para os kernels 3.0.0-16
e 3.0.0-12
. Veja o que acontece quando você os inicializa.
26 de abril
Curioso e curioso. OK, então ELFCLASS32
em vez de 64 mais uma vez. Não sabendo mais o que fazer, sugiro que você siga o procedimento pelo qual passou durante o seuconversar com psusi.
- Inicialize um Live CD/USB para Ubuntu 11.10 de 64 bits (AMD64).
- Monte e depois
chroot
em sua instalação quebrada do Ubuntu em/dev/sda3
. Em seguida, executeapt-get
para reinstalar a versão correta de 64 bits dolibnih.so.1
.
# monte /dev/sda3 como /mnt/ubu2fix mkdir /mnt/ubu2fix sudo mount /dev/sda3 /mnt/ubu2fix # chroot para que '/mnt/ubu2fix' se torne '/' para processamento de comandos para i em /sys /proc /run /dev; faça sudo mount --bind "$i" "/mnt/ubu2fix/$i"; feito sudochroot /mnt/ubu2fix # reinstale o pacote que contém libnih1.so.1.0.0 (também conhecido como libnih1.so.1) apt-get -V --reinstalar instalar libnih1
No entanto,antesvocê faz o chroot
, primeiro você pode querer tentar descobrir quantosoutro ELFCLASS32
arquivos podem estar presentes e (potencialmente) exigir correção. Acho que os comandos abaixo farão isso.
Os comandos abaixo executam o file
comando em todos os arquivos nos diretórios /bin
, /sbin
, /lib
e /lib64
na instalação do Ubuntu em /dev/sda3
. O grep
restringe a saída a executáveis de 32 bits.
Se tudo estiver correto, esses comandos deverão produzir **NÃOsaída.** Todos os arquivos listados quando você executa esses comandos são de 32 bits, quando deveriam ser de 64 bits. Eles (provavelmente) precisarão ser reinstalados para que seu sistema funcione corretamente.
sudo find /mnt/ubu2fix/bin -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/sbin -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/lib -type f -exec file '{}' \; | grep 32-bit
sudo find /mnt/ubu2fix/lib64 -type f -exec file '{}' \; | grep 32-bit
Execute os comandos acimadepoismontagem /dev/sda3
como /mnt/ubu2fix
, masantesvocê faz o chroot
. (Ou execute-os em um terminal diferente que esteja fora do chroot
.)
29 de abril
Eu olhei para o seuNota 1.
Desculpe por não ter percebido antes seu comentário de que
"todos os arquivos /mnt/ubusda3/lib/modules/3.0.0-12-generic/
e /mnt/ubusda3/bin
são de 32 bits."
Eu certamente não esperava que fosse esse o caso.
"É possível reinstalar arquivos inteiros do kernel?"
Não tenho certeza do que você está perguntando. (Mas mesmo que o fizesse, não tenho certeza se saberia como fazê-lo. Desculpe.)
01 de maio – Considere uma instalação de atualização de 11.10 para 11.10
Anteriormente, quando li o comentário do @Alvar que sugeria fazer uma instalação para recuperar seu sistema, presumi que isso implicava a destruição de sua configuração atual, então ignorei. Agora não tenho tanta certeza.
Acontece que em uma situação como a sua, onde o Ubuntu e o Windows estão instalados em partições diferentes no mesmo disco rígido, o instalador do Ubuntu perguntará que tipo de instalação você deseja fazer, conforme mostrado na imagem abaixo.
Eu tentei fazer umatualizar instalardas 11h10 às 11h10 em uma VM VirtualBox para ter uma ideia melhor do que ele faz. Parece funcionar como afirma.Eu tenho alguns avisos que listei abaixo.
Não posso lhe oferecer nenhum conselho sobre se a reinstalação é algo que você deve fazer ou não. Não conheço a sua situação ou quais recursos você tem ou não em mãos.
Algumas advertências:
- Você deve ter cuidado ao inserir seu atualID do usuárioquando a instalação solicitar. Se você inserir um ID de usuário diferente, o antigo será excluído. Você não conseguirá fazer login com ele. Isso é descrito com mais detalhes nesta pergunta:Como posso restaurar um nome de usuário excluído usando sua antiga pasta pessoal?
- Se você escolher
Download updates while installing
, a instalação aparentemente executa o equivalente a um arquivoapt-get dist-upgrade
. Eu tinha 8 atualizações pendentes antes da instalação da atualização. Após a conclusão, havia 0 atualizações pendentes e um novo kernel, 3.0.0-19-generic, foi instalado. - O Firefox parecia bem. Minhas senhas, histórico e favoritos parecem ter sido preservados. A parte do aplicativo do meu navegador Google Chrome foi excluída, mas os dados do usuário não. Então, depois de reinstalar o Chrome, minhas configurações, favoritos etc. também funcionaram corretamente no Chrome.
- Embora tudo pareça funcionar bem, o mais seguro é, como sempre, fazer backup dos seus dados na partição do Ubuntu antes de iniciar a instalação.Vocêé a única pessoa que sabe o quão valiosos seus dados são ou não para você. Portanto, você é a única pessoa que sabe quais riscos está disposto a correr ou não.
Responder3
Você precisa experimentar a distro"Remix de resgate do Ubuntu"e inicializar ao vivo a partir de cd/usb, você pode usar um aplicativo para reparar o Grub ou detectar outro sistema operacional.
It is very easy to use, I working great for me.
Pode obter a iso do Rescue aqui:
Responder4
Eu enfrentei esse problema quando mudei minha BIOS
configuração. Se você alterou a configuração do BIOS ou mesmo não, basta redefinir BIOS
para o padrão e nos informar sobre o resultado.