Я пытался восстановить GRUB после установки Windows поверх Ubuntu. Но я не смог его починить и задал этот вопрос . При обсуждении с псуси мы кое-что замечаем. У меня установлена 64-битная система, но некоторые мои библиотечные файлы 32-битные (например: libdevmapper.so.1.02.1
).
( Вы можете проверить шаг 13 для моего вопроса. И проверить другие шаги, чтобы увидеть, какие шаги я выполнил. )
/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
update-grub
я получил mapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory
ошибку. /bin/mapdevfs
с помощью команды 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
Но когда я выбираю Ubuntu 3.0.0.17-generic
, на экране загрузки происходит зависание, и я получаю эту ошибку: ( Scroll Lock и Num Lock мигают.)
Когда я выбираю другие версии ядра - которые в предыдущих версиях Ubuntu ] screen-, я получаю эту ошибку для них обоих.
Примечание 1 (для иррационального Джона)
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
, а потом я заметил, что libnih1
не 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)
На этот раз я получаю то же самое ошибка загрузки для файла libnih-dbus.so....
.
Также для поиска других 32-битных файлов я выполнил ваши команды и вижу, что все файлы в /mnt/ubusda3/lib/modules/3.0.0-12-generic/
и /mnt/ubusda3/bin
являются 32-битными .
Можно ли переустановить целые файлы ядра?
Хорошо, я перепробовал все ответы, все. Но я не мог решить мою проблему. И наконец, я переустанавливаю свою Ubuntu.
Вам нужно попробовать дистрибутив «Ubuntu Rescue Remix» и загрузиться как live с cd / usb, там можно использовать приложение для восстановления Grub или обнаружить другую ОС.
It is very easy to use, I working great for me.
Вы можете получить спасательный ISO для здесь:
Я столкнулся с этой проблемой, когда изменил настройку BIOS
. Если вы изменили настройки BIOS или даже не просто сбросили BIOS
на значение по умолчанию и вернули нам результат.
Попробуйте загрузиться с Live CD и подключите необходимое устройство. Скопируйте
~ / mozilla / firefox / xxxxxxx.default
blockquote>в pendrive, переустановите Ubuntu, а затем скопируйте каталог mozilla в свою домашнюю библиотеку. Извините, мой английский ужасен. ; -)
Могут Вы для начальной загрузки в текущую установку с каким-либо из ядер, установленных в системе?
При рассмотрении чата с psusi существует сообщение со ссылкой на вставку восстановления начальной загрузки 938724. Это показывает Вашему созданному меню GRUB с записями для
'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)'
Вы судили их всех, и они все приводят тот же путь к сбою? Я просто задаюсь вопросом, позволяет ли один из них Вам загружаться успешно затем, возможно, можно затем восстановиться путем чистки/удаления ядра, которое перестало работать, и затем переустановите его.
Согласно восстановлению начальной загрузки вставляют 938724, update-grub
найденный теми записями в Вашем /boot
папка, когда это зондировало. По крайней мере, в именно это нашло восстановление начальной загрузки sda3/boot/grub/grub.cfg
.
Что Вы видите в своем меню GRUB, когда Вы загружаетесь? Это напоминает следующее?
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)
(Если Вы не получаете меню GRUB, когда Вы загружаетесь, затем попытайтесь нажимать/содержать клавишу Shift, когда процесс начальной загрузки начинает раскрывать меню.)
Если Вы видите меню GRUB с записью Previous Linux versions
, попытайтесь выбрать ту запись и нажать Enter. Необходимо видеть другое меню с записями для 3.0.0-16
и 3.0.0-12
ядра. Посмотрите то, что происходит, когда Вы загружаете их.
Curiouser и curiouser. Хорошо, таким образом, ELFCLASS32
вместо 64 все снова и снова. Не зная, что еще сделать, я предлагаю, чтобы Вы выполнили процедуру, которую Вы прошли во время своего чата с psusi.
chroot
в Ваш прерванный установка Ubuntu /dev/sda3
. Затем выполненный apt-get
переустановить корректную, 64-разрядную версию libnih.so.1
.# 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
Однако, прежде чем Вы делаете chroot
, Вы могли бы сначала хотеть попытаться узнать сколько другой ELFCLASS32
файлы могли бы присутствовать и (потенциально) потребовать фиксации. Я думаю, что команды ниже сделают это.
Команды ниже работают file
команда против каждого файла в каталогах /bin
, /sbin
, /lib
, и /lib64
на Вашей Ubuntu устанавливают в /dev/sda3
. grep
ограничивает вывод 32-разрядными исполняемыми файлами.
Если все корректно, то эти команды должны произвести ** НИКАКОЙ вывод. ** Любые файлы, перечисленные, когда Ваше выполнение эти команды являются 32-разрядными, когда они должны быть 64-разрядными. Они должны будут (вероятно), быть переустановлены, чтобы Ваша система работала правильно.
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
Выполните команды выше после монтирования /dev/sda3
как /mnt/ubu2fix
, но прежде чем Вы делаете chroot
. (Или выполненный их в другом терминале, который является вне chroot
.)
Я смотрел на Ваше Примечание 1.
Извините за не замечать ранее Ваш комментарий это
"все файлы в /mnt/ubusda3/lib/modules/3.0.0-12-generic/
и /mnt/ubusda3/bin
32 бита."
Я, конечно, не ожидал, что это будет иметь место.
"Действительно ли возможно переустановить целые файлы ядра?"
Я не уверен, что Вы спрашиваете. (Но даже если бы я сделал я не уверен, что знал бы, как сделать это. Извините.)
Ранее, когда я прочитал комментарий из @Alvar, который предложил делать установку для восстановления системы, я предположил, что это подразумевало разрушение текущей установки, таким образом, я проигнорировал его. Теперь я не так уверен.
Оказывается, что в ситуации как Ваша, где и Ubuntu и Windows установлены в различных разделах на том же жестком диске, установщик Ubuntu спросит, какую установку Вы хотите сделать как показано в изображении ниже.
Я попытался делать установку обновления от 11,10 до 11,10 в VirtualBox VM для получения лучшее представление о том, что это делает. Это, кажется, работает, как это утверждает. У меня действительно есть некоторые предупреждения, которые я упомянул ниже.
Я не могу дать Вам совет на том, является ли переустановка чем-то, что необходимо сделать. Я не знаю Вашей ситуации или какие ресурсы Вы имеете или не имеете под рукой.
Некоторые протесты:
Download updates while installing
, установка, по-видимому, выполняет эквивалент apt-get dist-upgrade
. У меня было 8 незаконченных обновлений перед установкой обновления. После того, как это завершилось было 0 ожиданий обновлений, и было установлено новое ядро, 3.0.0-19-универсальное.