启动时内核恐慌

在Ubuntu上安装Windows后,我试图修复我的GRUB。 但我无法修复它,并问了这个问题 。 在与psusi讨论时 ,我们注意到了一些事情。 我安装的系统是64位,但我的一些库文件是32位(例如: libdevmapper.so.1.02.1 )。

您可以查看步骤13中的问题。并查看其他步骤,了解我遵循的步骤。

  1. 我的旧Ubuntu安装在/dev/sda3 。 我将它挂载到/mnt/ubusda3
  2. 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
  3. 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
  4. sudo dpkg --root=/mnt/ubusda3 -i /mnt/ubusda3/var/cache/apt/archives/libbz2-1.0_1.0.5-6ubuntu1.11.10.1_amd64.deb
  5. chroot /mnt/ubusda3
  6. apt-get install --reinstall libdevmapper1.02.1
  7. 然后我再次尝试update-grub我得到mapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory错误。
  8. 我重新启动了系统但没有改变。
  9. 我在/bin/mapdevfs mapdevfs上找到了mapdevfs,用which mapdevfs命令。
  10. sudo rm /bin/mapdevfs
  11. for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt/ubusda3$i"; done
  12. grub-install /dev/sda
  13. 最后我修复了我的GRUB问题。 现在启动时有一个GRUB菜单。 在此处输入图像描述 以前的Linux版本屏幕(和灰尘) 在此处输入图像描述

但是,当我选择Ubuntu 3.0.0.17-generic ,它在加载屏幕上冻结,我收到此错误:( Scroll LockNum Lock闪烁。) 在此处输入图像描述

当我选择其他内核版本 – 在以前的ubuntu版本屏幕中 – 我得到这两个错误。

在此处输入图像描述

注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&section=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。

您是否可以使用系统上安装的任何内核启动当前安装?

查看与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)' 

你是否尝试过所有这些并且他们都以同样的方式失败了? 我只是想知道其中一个是否允许您成功启动然后您可以通过清除/卸载失败的内核然后重新安装来恢复。


4月24日

根据boot-repair paste 938724update-grub在探测时在/boot文件夹中找到了这些条目。 至少这是sda3/boot/grub/grub.cfg boot-repair。

你在启动时在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键。)

如果您看到带有条目Previous Linux versions的GRUB菜单,请尝试选择该条目并按Enter键 。 您应该看到另一个菜单,其中3.0.0-163.0.0-12内核的条目。 看看你启动时会发生什么。


4月26日

Curiouser和curiouser 。 好的,所以ELFCLASS32再次代替64。 不知道还能做什么,我建议您按照与psusi聊天时的过程进行操作

  1. 为64位(AMD64)Ubuntu 11.10启动Live CD / USB。
  2. 挂载然后chroot/dev/sda3破坏的Ubuntu安装。 然后运行apt-get以重新安装正确的64位版本的libnih.so.1
     #mount / dev / sda3 as / mnt / ubu2fix
     mkdir / mnt / ubu2fix
     sudo mount / dev / sda3 / mnt / ubu2fix

     #chroot使'/ mnt / ubu2fix'成为'/'进行命令处理
     for in in / sys / proc / run / dev; 做sudo mount --bind“$ i”“/ mnt / ubu2fix / $ i”;  DONE
     sudo chroot / mnt / ubu2fix

     #重新安装包含libnih1.so.1.0.0(又名libnih1.so.1)的软件包
     apt-get -V --reinstall install libnih1 

但是, 执行chroot 之前 ,您可能首先想要了解有多少其他 ELFCLASS32文件可能存在并且(可能)需要修复。 我认为下面的命令会做到这一点。

下面的命令对/dev/sda3安装的Ubuntu上的目录/bin/sbin/lib/lib64中的每个文件运行file命令。 grep将输出限制为32位可执行文件。

如果一切正确,那么这些命令应该产生** NO输出。**运行这些命令时列出的任何文件都是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/mnt/ubu2fix ,但执行chroot 之前运行上面的命令。 (或者在chroot外面的另一个终端中运行它们。)


4月29日

我喜欢你的笔记1

很抱歉没有注意到您的评论
/mnt/ubusda3/lib/modules/3.0.0-12-generic//mnt/ubusda3/bin中的所有文件都是32位。
我当然没想到会出现这种情况。

是否有可能重新安装整个内核文件?

我不确定你在问什么。 (但即使我这样做,我也不确定我会怎么做。抱歉。)


5月01日 – 考虑从11.10到11.10的升级安装

以前,当我阅读@Alvar建议进行安装以恢复系统的评论时,我认为这暗示了当前设置的破坏,所以我忽略了它。 现在我不太确定。

事实certificate,在像你这样的情况下,Ubuntu和Windows都安装在同一硬盘上的不同分区中,Ubuntu安装程序会询问你想要做什么类型的安装,如下图所示。

Install choices for Ubuntu 11.10 & Windows 7 dual boot

我尝试在VirtualBox VM中从11.10到11.10进行升级安装 ,以更好地了解它的作用。 它似乎按照它声称的那样工作。 我确实有一些警告,我在下面列出。

关于是否应该重新安装,我无法向您提供任何建议。 我不知道你的情况或你手边有什么资源。

一些警告:

  1. 当安装提示时,您必须小心输入当前的用户ID 。 如果输入其他用户ID,则将删除旧用户ID。 您将无法使用它登录。 这个问题在这个问题中有更详细的描述: 如何使用旧的主文件夹恢复已删除的用户名?
  2. 如果您选择Download updates while installing ,则安装显然会执行相当于apt-get dist-upgrade 。 在升级安装之前,我有8个待处理的升级。 完成后,有0个未决更新,并安装了一个新内核3.0.0-19-generic。
  3. Firefox似乎很好。 我的密码,历史记录和书签似乎已被保留。 我的Google Chrome浏览器的应用程序部分已删除,但其中的用户数据未删除。 因此,在重新安装Chrome后,我的设置,书签等也在Chrome中正常运行。
  4. 虽然一切似乎都运行良好,但最安全的是,在开始安装之前,一如既往地在Ubuntu分区中备份数据。 是唯一知道您的数据对您有多大价值的人。 因此,您是唯一知道您愿意承担或不承担风险的人。

您需要尝试发行版“Ubuntu Rescue Remix”并从cd / usb启动,可以使用应用程序修复de Grub或检测另一个操作系统。

It is very easy to use, I working great for me.

可以在这里获得Rescue iso:

  • 12.04: http : //ubuntu-rescue-remix.org/files/URR/iso/ubuntu-rescue-remix-12-04.iso

  • 11.10: http : //ubuntu-rescue-remix.org/files/URR/iso/ubuntu-rescue-remix-11-10.iso

尝试从Live CD启动,然后安装所需的设备。 复制

〜/ Mozilla浏览器/火狐/ xxxxxxx.default

到pendrive,重新安装Ubuntu,然后将mozilla目录复制到您的主库。 对不起,我的英语太可怕了。 😉

当我更改BIOS设置时,我遇到了这个问题。 如果您更改了BIOS设置,或者即使不将BIOS重置为默认设置并将结果还原我们。