起動時のカーネルパニック

起動時のカーネルパニック

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

そして、私はそれlibnih1linbihhttp://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

OK、すべての答え、すべてを試しました。しかし、問題は解決できませんでした。そして最終的に、Ubuntu を再インストールしました。

答え2

現在のインストールを起動できますか?どれでもシステムにインストールされているカーネルの?

あなたのpsusiとチャットそこにはリンク付きのメッセージブーツ修理ペースト 938724GRUBメニューが作成され、以下のエントリが表示されます。

'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)' 

すべて試してみましたが、すべて同じように失敗しますか? そのうちの 1 つで正常に起動できる場合は、失敗したカーネルを消去/アンインストールしてから再インストールすることで回復できるのではないかと思います。


4月24日

によるとブーツ修理ペースト 938724は、プローブ時にフォルダーupdate-grub内でこれらのエントリを見つけました/boot。少なくとも、boot-repair が で見つけたのはそれです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日

ますます不思議に思う. OK、ELFCLASS3264をもう一度やる代わりに。他に何をすればいいのかわからないので、psusiとチャット

  1. 64 ビット (AMD64) Ubuntu 11.10 のライブ CD/USB を起動します。
  2. をマウントし、chroot壊れた Ubuntu インストールに します/dev/sda3。次に、 を実行してapt-get、正しい 64 ビット バージョンの を再インストールしますlibnih.so.1
    # /dev/sda3 を /mnt/ubu2fix としてマウントします
    mkdir /mnt/ubu2fix
    sudo マウント /dev/sda3 /mnt/ubu2fix

    # chroot して、コマンド処理のために '/mnt/ubu2fix' が '/' になるようにします
    /sys /proc /run /dev の i に対して、sudo mount --bind "$i" "/mnt/ubu2fix/$i" を実行します。完了
    sudo chroot /mnt/ubu2fix

    # libnih1.so.1.0.0 (別名 libnih1.so.1) を含むパッケージを再インストールします
    apt-get -V --reinstall libnih1 をインストールします

しかし、前にを行う際にはchroot、まずはどれだけの数の他の ELFCLASS32ファイルが存在する可能性があり、(潜在的に) 修正が必要になる可能性があります。以下のコマンドでこれが実行できると思います。

以下のコマンドは、の Ubuntu インストール上の、、、のfile各ディレクトリ内のすべてのファイルに対して コマンドを実行します。 は、出力を 32 ビット実行可能ファイルに制限します。 /bin/sbin/lib/lib64/dev/sda3grep

すべてが正しければ、これらのコマンドは**NOを生成するはずです。出力。** これらのコマンドを実行したときにリストされるファイルは、64 ビットであるべきところ、32 ビットです。システムを正しく動作させるには、おそらくそれらを再インストールする必要があります。

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/bin32 ビットです。
私は確かに、このような事態になるとは予想していませんでした。

カーネルファイル全体を再インストールすることは可能ですか?

何を尋ねているのかよく分かりません。(でも、たとえ分かったとしても、どうすればいいか分からないと思います。ごめんなさい。)


5月1日 - 11.10から11.10へのアップグレードインストールを検討する


以前、@Alvar からのコメントを読んで、システムを回復するためにインストールを行うことを提案したとき、これは現在のセットアップの破壊を意味するものだと思い、無視しました。今はそうではないと思っています。

UbuntuとWindowsの両方が同じハードドライブの異なるパーティションにインストールされているような状況では、Ubuntuインストーラーは、以下の画像に示すように、どのタイプのインストールを行うかを尋ねます

Ubuntu 11.10 と Windows 7 のデュアルブートのインストールオプション

アップグレード インストールVirtualBox VM で 11.10 から 11.10 にアップグレードして、その動作をよりよく理解しました。 宣伝どおりに動作するようです。いくつか警告がありますので、以下にリストします。

再インストールを行うべきかどうかについては、アドバイスできません。あなたの状況や、手元にあるリソース、またはないリソースがわかりません。

注意点:

  1. 現在の情報を入力する際に​​は注意が必要ですユーザーIDインストール時にプロンプ​​トが表示されたら、別のユーザー ID を入力してください。別のユーザー 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 パーティション内のデータをバックアップすることです。あなたあなたのデータがあなたにとってどれほど価値があるか、または価値がないかを知っているのは、あなただけです。つまり、あなたがどのようなリスクを負う意思があるか、負わない意思があるかを知っているのは、あなただけです。

答え3

ディストリビューションを試してみる必要があります「Ubuntu レスキュー リミックス」CD/USB からライブとして起動すると、Grub を修復するアプリケーションを使用したり、別の OS を検出したりできます。

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

Rescue iso はここから入手できます:

答え4

設定を変更したときにこの問題に直面しましたBIOS。BIOS 設定を変更した場合、または変更していない場合でもBIOS、デフォルトにリセットして結果をお知らせください。

関連情報