啟動時出現內核恐慌

啟動時出現內核恐慌

在 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 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,它在加載畫面上凍結並且我收到此錯誤:(滾動鎖數字鍵盤(的第一個鍵閃爍。 在此輸入影像描述

當我選擇其他內核版本時 - 其中以前的 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不是linbihhttp://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/bin32位

是否可以重新安裝整個核心檔案?

答案1

好吧,我嘗試了所有答案,一切。但我無法解決我的問題。最後,我重新安裝了 Ubuntu。

答案2

您是否可以啟動目前的安裝任何您的系統上安裝了哪些核心?

看著你的與 普蘇西 聊天有一個帶有連結的訊息引導修復膏 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日

根據引導修復膏 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-163.0.0-12內核條目。看看啟動它們時會發生什麼。


4月26日

越來越好奇。好的,ELFCLASS32再代替 64。不知道還能做什麼,我建議您按照您在您的過程中所經歷的程序進行操作與 普蘇西 聊天

  1. 啟動適用於 64 位元 (AMD64) Ubuntu 11.10 的 Live CD/USB。
  2. 安裝然後chroot進入損壞的 Ubuntu 安裝目錄/dev/sda3。然後運行apt-get以重新安裝正確的 64 位元版本的libnih.so.1.
    # 將 /dev/sda3 掛載為 /mnt/ubu2fix
    mkdir /mnt/ubu2fix
    須藤掛載 /dev/sda3 /mnt/ubu2fix

    # chroot 使 '/mnt/ubu2fix' 變成 '/' 以進行指令處理
    對於 /sys /proc /run /dev 中的 i;執行 sudo mount --bind "$i" "/mnt/ubu2fix/$i";完畢
    須藤 chroot /mnt/ubu2fix

    # 重新安裝包含 libnih1.so.1.0.0(又稱 libnih1.so.1)的軟體包
    apt-get -V --reinstall 安裝 libnih1

然而,當你這樣做時chroot,你可能會先想試著找出到底有多少其他 ELFCLASS32文件可能存在並且(可能)需要修復。我認為下面的命令可以做到這一點。

下面的命令對Ubuntu安裝file目錄中的每個檔案運行命令/bin。將輸出限制為 32 位元可執行檔。 /sbin/lib/lib64/dev/sda3grep

如果一切正確,那麼這些命令應該產生 **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,但是你做的chroot。 (或在 . 之外的不同終端中運行它們chroot。)


4月29日

我看著你的註1

很抱歉沒有早點注意到您的評論
/mnt/ubusda3/lib/modules/3.0.0-12-generic/和中的所有檔案 /mnt/ubusda3/bin都是 32 位元。
我當然沒想到會是這樣。

是否可以重新安裝整個核心檔案?

我不確定你在問什麼。 (但即使我這樣做了,我也不確定我是否知道該怎麼做。抱歉。)


5 月 1 日 - 考慮從 11.10 升級安裝到 11.10


以前,當我讀到 @Alvar 的評論建議進行安裝以恢復您的系統時,我認為這意味著您當前的設定會被破壞,所以我忽略了它。現在我不太確定了。

事實證明,在像您這樣的情況下,Ubuntu 和 Windows 安裝在同一硬碟上的不同分割區中,Ubuntu 安裝程式會詢問您想要執行哪種類型的安裝,如下圖所示。

Ubuntu 11.10 和 Windows 7 雙啟動的安裝選項

我嘗試過做一個升級安裝在 VirtualBox VM 中從 11.10 到 11.10 可以更好地了解它的功能。它似乎像它聲稱的那樣工作。我確實有一些警告,已在下面列出。

對於是否應該重新安裝,我無法向您提供任何建議。我不知道你的情況,也不知道你手邊有或沒有什麼資源。

一些注意事項:

  1. 您必須小心輸入您當前的使用者身分安裝提示時。如果您輸入不同的使用者 ID,舊的使用者 ID 將會被刪除。您將無法使用它登入。這個問題對此進行了更詳細的描述:如何使用舊的主資料夾恢復已刪除的使用者名稱?
  2. 如果您選擇這樣做Download updates while installing,安裝顯然會執行相當於apt-get dist-upgrade.在升級安裝之前,我有 8 個待處理的升級。完成後,有 0 個更新待處理,並且已安裝新核心 3.0.0-19-generic。
  3. 火狐看起來不錯。我的密碼、歷史記錄和書籤似乎已保留。我的 Google Chrome 瀏覽器的應用程式部分已被刪除,但其中的用戶資料並未被刪除。因此,在我重新安裝 Chrome 後,我的設定、書籤等也在 Chrome 中正常運作。
  4. 雖然一切似乎都運作良好,但最安全的做法是一如既往,在開始安裝之前備份 Ubuntu 分割區中的資料。是唯一知道您的資料對您有多大價值的人。因此,您是唯一知道自己願意承擔或不願意承擔哪些風險的人。

答案3

你需要嘗試發行版《Ubuntu 救援混音版》並從 cd/usb 即時啟動,可以使用應用程式修復 Grub 或偵測另一個作業系統。

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

可以在這裡取得 Rescue iso:

答案4

當我更改BIOS設定時,我遇到了這個問題。如果您更改了 BIOS 設置,或者即使沒有更改,也只是重置BIOS為預設值並將結果回覆給我們。

相關內容