Estaba intentando reparar mi GRUB después de instalar Windows sobre Ubuntu. Pero no pude repararlo yhizo esta pregunta.Mientras discutía con psusi, notamos algo. Mi sistema instalado es de 64 bits, pero algunos archivos de mi biblioteca son de 32 bits (por ejemplo:) libdevmapper.so.1.02.1
.
(Puedes consultar el paso 13 para mi pregunta. Y verifique otros pasos para ver qué pasos seguí.)
- Mi antiguo Ubuntu estaba instalado en
/dev/sda3
. Lo monté 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
- Y luego lo intenté nuevamente y
update-grub
obtuvemapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory
un error. - Reinicié mi sistema pero nada cambió.
- Encontré mapdevfs
/bin/mapdevfs
conwhich mapdevfs
el 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 solucioné mi problema de GRUB. Ahora hay un menú de GRUB durante el arranque. Pantalla de versiones anteriores de Linux (y polvos)
Pero cuando elijo Ubuntu 3.0.0.17-generic
, se congela en la pantalla de carga y aparece este error: (Bloqueo de desplazamientoyNum lockbrillante.)
Cuando elijo otras versiones del kernel -que enversiones anteriores de ubuntupantalla-, recibo este error 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
y luego me di cuenta de que libnih1
no lo es 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)
Esta vez recibo el mismo error de arranque para libnih-dbus.so....
el archivo.
También para encontrar otros archivos de 32 bits, ejecuté sus comandos y veo todos los archivos /mnt/ubusda3/lib/modules/3.0.0-12-generic/
y /mnt/ubusda3/bin
están32 bits.
¿Es posible reinstalar archivos completos del kernel?
Respuesta1
OK, probé todas las respuestas, todo. Pero no pude resolver mi problema. Y finalmente, reinstalo mi Ubuntu.
Respuesta2
¿Puede iniciar su instalación actual concualquierde los kernels instalados en su sistema?
mirando tuchatear con psusihay unmensaje con un enlaceapasta reparadora de maleteros 938724. Muestra que creó un menú de GRUB con 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)'
¿Los has probado todos y todos fallan de la misma manera? Me pregunto si uno de ellos le permite arrancar correctamente, entonces quizás pueda recuperarlo purgando/desinstalando un kernel que falla y luego reinstalándolo.
24 de abril
De acuerdo apasta reparadora de maleteros 938724, update-grub
encontró esas entradas en su /boot
carpeta cuando investigó. Al menos eso es lo que encontró boot-repair en sda3/boot/grub/grub.cfg
.
¿Qué ves en tu menú de GRUB cuando arrancas? ¿Se parece a lo siguiente?
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)
(Si no obtiene un menú de GRUB cuando inicia, intente presionar/mantener presionada la shifttecla cuando comience el proceso de inicio para mostrar el menú).
Si ve un menú de GRUB con la entrada Previous Linux versions
, intente seleccionar esa entrada y presionar enter. Deberías ver otro menú con entradas para los kernels 3.0.0-16
y 3.0.0-12
. Vea lo que sucede cuando los inicia.
26 de abril
Cada vez más curioso. Bien, entonces ELFCLASS32
en lugar de 64 una vez más. Sin saber qué más hacer, te sugiero que sigas el procedimiento que realizaste durante tuchatear con psusi.
- Inicie un Live CD/USB para Ubuntu 11.10 de 64 bits (AMD64).
- Monte y luego
chroot
en su instalación rota de Ubuntu en formato/dev/sda3
. Luego ejecuteapt-get
para reinstalar la versión correcta de 64 bits delibnih.so.1
.
# montar /dev/sda3 como /mnt/ubu2fix mkdir /mnt/ubu2fix montaje sudo /dev/sda3 /mnt/ubu2fix # chroot para que '/mnt/ubu2fix' se convierta en '/' para el procesamiento de comandos para i en /sys /proc /run /dev; hacer sudo mount --bind "$i" "/mnt/ubu2fix/$i"; hecho sudo chroot /mnt/ubu2fix # reinstale el paquete que contiene libnih1.so.1.0.0 (también conocido como libnih1.so.1) apt-get -V --reinstalar instalar libnih1
Sin embargo,anteshaces el chroot
, es posible que primero quieras intentar averiguar cuántosotro ELFCLASS32
Los archivos pueden estar presentes y (potencialmente) requerir reparación. Creo que los siguientes comandos harán esto.
Los siguientes comandos ejecutan el file
comando en cada archivo en los directorios /bin
, /sbin
, /lib
y /lib64
en su instalación de Ubuntu en /dev/sda3
. Esto grep
restringe la salida a ejecutables de 32 bits.
Si todo es correcto, entonces estos comandos deberían producir **NOsalida.** Todos los archivos enumerados cuando ejecuta estos comandos son de 32 bits cuando deberían ser de 64 bits. (Probablemente) será necesario reinstalarlos para que su sistema funcione correctamente.
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
Ejecute los comandos anterioresdespuésmontaje /dev/sda3
como /mnt/ubu2fix
, peroantestu haces el chroot
. (O ejecútelos en una terminal diferente que esté fuera del chroot
.)
29 de abril
miré tuNota 1.
Perdón por no haberme dado cuenta antes de tu comentario de que
"Todos los archivos /mnt/ubusda3/lib/modules/3.0.0-12-generic/
son /mnt/ubusda3/bin
de 32 bits."
Ciertamente no esperaba que este fuera el caso.
"¿Es posible reinstalar archivos completos del kernel?"
No estoy seguro de lo que estás preguntando. (Pero incluso si lo hiciera, no estoy seguro de saber cómo hacerlo. Lo siento).
1 de mayo: considere instalar una actualización del 11.10 al 11.10
Anteriormente, cuando leí el comentario de @Alvar que sugería realizar una instalación para recuperar su sistema, asumí que esto implicaba la destrucción de su configuración actual, así que lo ignoré. Ahora no estoy tan seguro.
Resulta que en una situación como la suya, donde Ubuntu y Windows están instalados en diferentes particiones en el mismo disco duro, el instalador de Ubuntu le preguntará qué tipo de instalación desea realizar, como se muestra en la imagen a continuación.
He intentado hacer uninstalación de actualizaciónde 11.10 a 11.10 en una VM VirtualBox para tener una mejor idea de lo que hace. Parece funcionar como dice.Tengo algunas advertencias que he enumerado a continuación.
No puedo ofrecerle ningún consejo sobre si reinstalar o no es algo que deba hacer. No sé tu situación ni qué recursos tienes o no a mano.
Algunas advertencias:
- Debes tener cuidado al ingresar tu actualID de usuariocuando la instalación lo solicite. Si ingresa un ID de usuario diferente, se eliminará el anterior. No podrás iniciar sesión con él. Esto se describe con más detalle en esta pregunta:¿Cómo puedo restaurar un nombre de usuario eliminado usando su antigua carpeta de inicio?
- Si lo desea
Download updates while installing
, la instalación aparentemente realiza el equivalente a un archivoapt-get dist-upgrade
. Tenía 8 actualizaciones pendientes antes de instalar la actualización. Después de que se completó, no había actualizaciones pendientes y se había instalado un nuevo kernel, 3.0.0-19-generic. - Firefox parecía estar bien. Mis contraseñas, mi historial y mis favoritos parecen haberse conservado. La parte de la aplicación de mi navegador Google Chrome se eliminó, pero los datos del usuario no. Entonces, después de reinstalar Chrome, mi configuración, marcadores, etc. también funcionaban correctamente en Chrome.
- Si bien todo pareció funcionar bien, lo más seguro es, como siempre, hacer una copia de seguridad de sus datos en la partición de Ubuntu antes de comenzar la instalación.TúEres la única persona que sabe qué tan valiosos son o no tus datos para ti. Por lo tanto, usted es la única persona que sabe qué riesgos está dispuesto a correr o no.
Respuesta3
Necesitas probar la distribución."Remezcla de rescate de Ubuntu"y arranca en vivo desde cd/usb, puede usar una aplicación para reparar Grub o detectar otro sistema operativo.
It is very easy to use, I working great for me.
Puede obtener la ISO de Rescue aquí:
Respuesta4
Me enfrenté a este problema cuando cambié mi BIOS
configuración. Si ha cambiado la configuración de su BIOS o incluso si no, simplemente restablezca BIOS
los valores predeterminados y revierta el resultado.