OK, tentei todas as respostas, tudo. Mas não consegui resolver meu problema. E finalmente, eu reinstalei meu Ubuntu.
Eu estava tentando reparar meu GRUB depois de instalar o Windows no Ubuntu. Mas eu não consegui repará-lo e fiz esta pergunta . Enquanto conversávamos com psusi , notamos algo. Meu sistema instalado é 64Bit, mas meus arquivos de biblioteca são de 32 bits (por exemplo: libdevmapper.so.1.02.1
).
( Você pode verificar a etapa 13 para minha pergunta. E verificar outras etapas para ver quais etapas eu segui. )
/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
update-grub
eu tenho mapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory
erro. /bin/mapdevfs
with which mapdevfs
. sudo rm /bin/mapdevfs
for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
grub-install /dev/sda
Mas quando eu escolho Ubuntu 3.0.0.17-generic
, está congelando na tela de carregamento e estou recebendo este erro:
( Scroll Lock e Num Lock piscando.)
Quando eu escolho outras versões do kernel, que estão em versões anteriores do Ubuntu , estou recebendo este 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, em seguida, notei que é libnih1
não linbih
( link )
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 para o arquivo libnih-dbus.so....
.
Também para encontrar outros arquivos de 32 bits, executei seus comandos e vi todos os arquivos em /mnt/ubusda3/lib/modules/3.0.0-12-generic/
e /mnt/ubusda3/bin
32 bits .
É possível reinstalar arquivos inteiros do kernel?
OK, tentei todas as respostas, tudo. Mas não consegui resolver meu problema. E finalmente, eu reinstalei meu Ubuntu.
Você consegue inicializar sua instalação atual com qualquer dos kernels instalados em seu sistema?
Olhando para o seu bate-papo com psusi há uma mensagem com um link para boot -repair paste 938724 . Ele mostra que você criou um menu do 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)'
Já experimentou todos eles e todos eles falham da mesma maneira? Eu só estou querendo saber se um deles permite que você inicialize com sucesso, então talvez você possa recuperar, limpando / desinstalando um kernel que falha e, em seguida, reinstalá-lo.
De acordo com a pasta de reparo de inicialização 938724 , update-grub
encontrou essas entradas na sua% pasta co_de% quando sondou. Pelo menos é isso que o boot-repair encontrou em /boot
.
O que você vê no menu do GRUB quando inicializa? Isso se assemelha 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 quando inicializar, tente pressionar / manter pressionada a tecla shift quando o processo de inicialização começar a mostrar o menu.)
Se você vir um menu do GRUB com a entrada sda3/boot/grub/grub.cfg
, tente selecionar essa entrada e pressionando enter . Você deve ver outro menu com entradas para os kernels Previous Linux versions
e 3.0.0-16
. Veja o que acontece quando você inicializa-os.
Curioso e curioso . OK, então 3.0.0-12
em vez de 64 novamente. Não sabendo mais o que fazer, sugiro que você siga o procedimento pelo qual passou durante o conversar com psusi .
ELFCLASS32
em sua instalação do Ubuntu quebrada em chroot
. Em seguida, execute /dev/sda3
para reinstalar a versão correta de 64 bits de apt-get
. # mount /dev/sda3 as /mnt/ubu2fix mkdir /mnt/ubu2fix sudo mount /dev/sda3 /mnt/ubu2fix # chroot so that '/mnt/ubu2fix' becomes '/' for command processing for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubu2fix/$i"; done sudo chroot /mnt/ubu2fix # reinstall the package which contains libnih1.so.1.0.0 (aka libnih1.so.1) apt-get -V --reinstall install libnih1
No entanto, antes de executar o libnih.so.1
, primeiro você pode tentar descobrir quantos arquivos outros chroot
podem estar presentes e (potencialmente ) requer fixação. Eu acho que os comandos abaixo farão isso.
Os comandos abaixo executam o comando ELFCLASS32
em todos os arquivos nos diretórios file
, /bin
, /sbin
e /lib
em sua instalação do Ubuntu em /lib64
. O /dev/sda3
restringe a saída para executáveis de 32 bits.
Se tudo estiver correto, esses comandos devem produzir a saída ** NO . ** 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 acima de após montar grep
como /dev/sda3
, mas antes de executar o /mnt/ubu2fix
. (Ou execute-os em um terminal diferente que esteja fora do chroot
.)
Eu peguei sua nota 1 .
Desculpe por não notar antes o seu comentário que você
" todos os arquivos em chroot
e /mnt/ubusda3/lib/modules/3.0.0-12-generic/
são 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 se eu soubesse, não tenho certeza se saberia como fazê-lo. Desculpe.)
Anteriormente, quando eu lia o comentário do @Alvar que sugeria fazer uma instalação para recuperar o seu sistema, presumi que isso implicava a destruição de sua configuração atual, então ignorei-a. Agora eu não tenho tanta certeza.
Acontece que em uma situação como a sua, onde o Ubuntu e o Windows estão instalados em diferentes partições 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 uma upgrade install de 11.10 para 11.10 em uma VM VirtualBox para ter uma idéia melhor do que ela faz. Parece funcionar como afirma. Eu tenho alguns avisos que listei abaixo.
Não posso oferecer nenhum conselho sobre a reinstalação ou não de algo que você deve fazer. Não conheço sua situação ou quais recursos você tem ou não tem à mão.
Algumas ressalvas:
/mnt/ubusda3/bin
, a instalação aparentemente executará o equivalente a Download updates while installing
. Eu tinha 8 upgrades pendentes antes da instalação da atualização. Após a conclusão, houve 0 atualizações pendentes e um novo kernel, 3.0.0-19-generic, foi instalado. Tente inicializar a partir de um CD interativo e monte o dispositivo necessário. Copiar
~ / mozilla / firefox / xxxxxxx.default
para um pendrive, reinstale o Ubuntu e copie o diretório do mozilla para sua biblioteca inicial. Desculpe, meu inglês é horrível. ; -)
Eu enfrentei esse problema quando mudei minha configuração de BIOS
. Se você mudou sua configuração de BIOS ou mesmo se não apenas redefinir BIOS
para padrão e reverter sobre o resultado.
Tags grub2