カーネルイメージのエラーで起動しなくなった場合試すこと
3.19.0-26だとAMDの一部でLinuxが起動しなくなります。
記事ではいろいろ試行錯誤していますが、結局の所、原因は記事の最後にも書いてあるようにlinux-image-3.19.0-26にアップデートされてしまうとfglrx関係がビルドできずにXでエラーが出て起動できなくなるのです。
古いカーネルイメージが残っている場合は、GRUB起動画面で古いカーネルイメージを指定して起動することでXが起動できるでしょう。
古いカーネルイメージが無い場合、また古いカーネルイメージで起動できた場合でも3.19.0-26を消さなくてはいけません。
古いカーネルイメージで起動できた時には端末(ターミナル)を起動します。
Xが起動できなかった場合は、Ctrl + Alt + F1キーを押すなどしてCUI画面に切り替えてログインした状態にします。
sudo apt-get purge linux-3.19.0-26-generic linux-headers-3.19.0-26-generic
linux-image-extra-3.19.0-26やlinux-signed-image-3.19.0-26-genericなどもインストールされているかも知れませんが、一緒に削除されるのではないかと思います。
古いイメージがなくなっていた場合、これでは起動できなくなるので、これを試す前に古いカーネルイメージをインストールしておく必要があります。
sudo apt-get install linux-3.19.0-25-generic linux-headers-3.19.0-25-generic linux-image-extra-3.19.0-25-generic
あたりで良いと思います。一行で書いてください。
ここに書いてありますが、通常はlinux-image-genericと言った形でインストールされていて、これだと最新のカーネルが出るたびにアップデートされます。
しかし、それでエラーが出てしまっているのでバージョンを指定してインストールするしかありません。
当然ですが、今後自動でアップデートされなくなってしまうので、問題がなくなったかどうか確認して手動でインストールするか、改めてlinux-image-genericと入力してインストールすることになるのだと思います。
トラブルがあったあたりに、3.19.0-27が出ていたのですが、これでもうまくいってませんでした。
解決されるのにもう少し時間がかかるのではないでしょうか?
それにしてもこの問題について、日本語の記事が全然ありません。
他の人はどうしているのでしょうか?
AMDのグラフィックボードが使えなくなっているけれど、Intelのオンボードに切り替わっていて気づいていないとかあるのでしょうかね?
15.04にアップグレードしている人が少ないからかも知れませんね。
これで一度は解決したのですが、起動時のちょっとした不具合を癒すためにBoot Repairを使った際に誤った設定(本当は誤ったとも言えないのですが、これを選ぶとハングしてしまいBoot Repairが終了しなくなる)をしてしまって再び起動しなくなってしまいました。
この記事の最後にあるBoot Repairの注意点です。
これをしてしまって起動できなくなってしまった場合、UbuntuのLiveCDイメージなどで起動してchrootでPCのルートディレクトリに入り、カーネルイメージをインストールしなおさなくてはいけません。
最初、上に書かれている方法を試していたのですが、最後に書かれている方法を使うほうが良いようです。
sudo mount /dev/sda2 /mnt sudo cp /etc/resolv.conf /mnt/etc/ sudo cp /etc/hosts /mnt/etc/ sudo mount --bind /dev/ /mnt/dev sudo chroot /mnt mount -t proc none /proc mount -t sysfs none /sys mount -t devpts none /dev/pts export HOME=/root export LC_ALL=C dbus-uuidgen > /var/lib/dbus/machine-id dpkg-divert --local --rename --add /sbin/initctl ln -s /bin/true /sbin/initctl
/dev/sda2に当たる部分はPC内でUbuntuがインストールされている場所です。
/mntにマウントする必要はありませんが、他へマウントする場合にはmkdirを使って自分でディレクトリを作ってください。
apt-get update apt-get install linux-image-2.6.32-26-generic update-initramfs -cv -k all update-grub
今回の場合は古いイメージをインストールするのでupdateはしなくても良いと思います。
linux-image2.6...の部分は当然、linux-image-3.19.0-25-genericです。
この他、最初の方に書いたようにlinux-headers-3.19.0-25-genericなどもインストールすると良いと思います。
3.19.0-26を消すことも忘れずに。
rm /etc/resolv.conf rm /etc/hosts rm /var/lib/dbus/machine-id rm /sbin/initctl dpkg-divert --rename --remove /sbin/initctl umount /proc # if this doesn't work try umount -lf /proc umount /sys umount /dev/pts exit sudo umount /mnt
後処理は大切です。これをしないとPC用の設定が書き換えられたままになってしまいます。
例えば /etc/resolv.confは消さないとPCで起動できるようになってもインターネットに接続できなくなるでしょう。
Ubuntuの仕様が変わっているせいか、Network Managerがインストールされているせいかわかりませんが、Boot Repairを使うと正常に処理が完了できてもresolv.confの問題が起きてネットに接続できなくなる場合もあります。
dnsmasq[2449]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
NetworkManager[1482]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
あたりがログに出ているかも知れません。
その場合は
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
sudo resolvconf -u
とすると良いようです。
うちのマシンでは、これで何とか元に戻りました。
一週間くらい前の出来事ですが、なかなか記事にする気力がなくて先延ばしになっていました。
忘れてしまうと困るので書いておきます。
追記
ここに書かれてあるようにfglrx-updatesでfglrx関係をアップデートしたあとに新しいカーネルをインストールすれば問題なくなるようです。
私はAMDからドライバをダウンロードしてインストールしているので駄目だったんですね。