手違いで更新に失敗して、力技で更新をかけたので、ハマった部分について書いておきます。力技が多いため、update-manager -dやdo-release-updateで更新し、問題が起こらなかった場合には、参考にならない部分も多いと思います。
ブートできる環境からブートできない環境を更新したい
chrootを使う方法が簡単で良いと思います。chrootのやり方は、あちこちに乗っているので割愛。
ダウンロードが遅い
日本のミラーを使いましょう。以下は一例。
-deb http://archive.ubuntu.com/ubuntu xenial main
+deb http://jp.archive.ubuntu.com/ubuntu xenial main
intelのマイクロコードがアップデートされない
アップグレード時にrestrictedレポジトリが外されるため、再度有効にしましょう。
更新が保留になる
Holdしたパッケージがある場合は、パッケージをunholdしましょう。全てのパッケージをunholdするコマンドは以下に。
dpkg-query -W --showformat='${Package} install\n' | dpkg --set-selections
パッケージ構成の変更に追従するために、apt-get upgradeではなくapt-get dist-upgradeを使いましょう。
起動時にカーネルパニックする
原因は不明ですが、upstartだと起動できる場合があります。通常の手順でカーネルパニックが起きる場合は、ブートローダーのAdvanced options for Ubuntuから、upstartで起動してみましょう。
リカバリーモードはsystemdのみしか用意されていないため、upstartでリカバリーモードに入るためには、e
でコマンド編集に入り、カーネルオプションの後ろにinit=/sbin/upstart
を追加する必要があります。
telinitもしくはrunlevelが見つからなくて起動できない
他の環境からchrootして、upstart-sysvパッケージをインストールしましょう。
単独の環境で復旧を行う場合は、リカバリーモードからrootシェルに入り、ルートファイルシステムをrwでremountして、dhclient eth0
(またはeth1
)でネットワークを有効にして、upstart-sysvパッケージを入れましょう。
grub2がMBRを読めない?
GPTしか認識しないように見えますね。ブートローダーのコマンドラインでinsmod msdospart
と入力すればMBRを認識出来るようにできるはずですが、それも上手く動いていない気がします。調査中。
chroot環境で更新したのが原因かもしれません。実環境でgrub2を再インストールすると良いかも。