UbuntuにWindowsをインストールした後、GRUBを修復しようとしました。しかし修復できず、この質問をした。psusiと話し合っている間、あることに気が付きました。インストールしたシステムは 64 ビットですが、一部のライブラリ ファイルは 32 ビットです (例: libdevmapper.so.1.02.1
)。
(私の質問については、手順 13 を確認してください。また、私が実行した手順を確認するには、他の手順を確認してください。)
- 私の古いUbuntuはにインストールされていました
/dev/sda3
。マウントしました/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
- そして再度試してみたところ、エラーが
update-grub
発生しましたmapdevfs: error while loading shared libraries: libdebian-installer.so.4: cannot open shared object file: No such file or directory
。 - システムを再起動しましたが、何も変わりませんでした。
/bin/mapdevfs
コマンドで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
- ついに 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
が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ビット。
カーネルファイル全体を再インストールすることは可能ですか?
答え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-16
3.0.0-12
4月26日
ますます不思議に思う. OK、ELFCLASS32
64をもう一度やる代わりに。他に何をすればいいのかわからないので、psusiとチャット。
- 64 ビット (AMD64) Ubuntu 11.10 のライブ CD/USB を起動します。
- をマウントし、
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/sda3
grep
すべてが正しければ、これらのコマンドは**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/bin
32 ビットです。「
私は確かに、このような事態になるとは予想していませんでした。
「カーネルファイル全体を再インストールすることは可能ですか?「
何を尋ねているのかよく分かりません。(でも、たとえ分かったとしても、どうすればいいか分からないと思います。ごめんなさい。)
5月1日 - 11.10から11.10へのアップグレードインストールを検討する
以前、@Alvar からのコメントを読んで、システムを回復するためにインストールを行うことを提案したとき、これは現在のセットアップの破壊を意味するものだと思い、無視しました。今はそうではないと思っています。
UbuntuとWindowsの両方が同じハードドライブの異なるパーティションにインストールされているような状況では、Ubuntuインストーラーは、以下の画像に示すように、どのタイプのインストールを行うかを尋ねます
。アップグレード インストールVirtualBox VM で 11.10 から 11.10 にアップグレードして、その動作をよりよく理解しました。 宣伝どおりに動作するようです。いくつか警告がありますので、以下にリストします。
再インストールを行うべきかどうかについては、アドバイスできません。あなたの状況や、手元にあるリソース、またはないリソースがわかりません。
注意点:
- 現在の情報を入力する際には注意が必要ですユーザーIDインストール時にプロンプトが表示されたら、別のユーザー ID を入力してください。別のユーザー ID を入力すると、古いユーザー ID は削除されます。そのユーザー ID でログインすることはできません。この質問で詳しく説明されています:古いホーム フォルダーを使用して削除されたユーザー名を復元するにはどうすればよいですか?
- を選択した場合
Download updates while installing
、インストールは と同等の処理を行うようですapt-get dist-upgrade
。アップグレード インストール前には、保留中のアップグレードが 8 つありました。完了後、保留中の更新は 0 個となり、新しいカーネル 3.0.0-19-generic がインストールされました。 - Firefox は問題ないようです。パスワード、履歴、ブックマークは保存されているようです。Google Chrome ブラウザのアプリケーション部分は削除されましたが、ユーザー データは削除されていません。そのため、Chrome を再インストールした後、設定、ブックマークなども Chrome で正常に機能していました。
- すべてがうまく機能しているように見えますが、最も安全なのは、いつものように、インストールを開始する前に Ubuntu パーティション内のデータをバックアップすることです。あなたあなたのデータがあなたにとってどれほど価値があるか、または価値がないかを知っているのは、あなただけです。つまり、あなたがどのようなリスクを負う意思があるか、負わない意思があるかを知っているのは、あなただけです。
答え3
ディストリビューションを試してみる必要があります「Ubuntu レスキュー リミックス」CD/USB からライブとして起動すると、Grub を修復するアプリケーションを使用したり、別の OS を検出したりできます。
It is very easy to use, I working great for me.
Rescue iso はここから入手できます:
答え4
設定を変更したときにこの問題に直面しましたBIOS
。BIOS 設定を変更した場合、または変更していない場合でもBIOS
、デフォルトにリセットして結果をお知らせください。