do-release-upgrade ( 14.04 から 16.04 ) で エラー3つ
あるサーバ作業に使ってる、Ubuntu。
最近アップデートふってこないなと思ったのですが、14.04 と気づいた。
作業ログも増えてきたので、整理も兼ねて、次の LTS にあげてみることに。
いくつか思うように行ってませんが、最終的には 16.04 になりました!
- 問題1:do-release-upgrade 動かない ※解決!
- 問題2: FATAL -> Failed to fork. ※解決!
- 問題3:Kernel version not supported ※未解決
事前
Ubuntu 14.04.6 LTS。よく動いてくれてたなぁ。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.6 LTS
Release: 14.04
Codename: trusty
40GB以上使ってたディスク容量も、整理したら25GB程度に収まった。
ここからスタートです。
作業
そもそも do-release-upgrade の使い方すら忘れてるので、復習から。
このサイト、ものすごく詳しい。大きな流れは、こちらで学ばせてもらいました。感謝。
問題1:do-release-upgrade 動かない
前準備おえて、さあアップグレードと思ったら、do-release-upgrade が次のエラーで落ちる
ImportError: No module named 'apt_pkg'
ファイル見てみるとPython3だった。
$ file /usr/bin/do-release-upgrade
/usr/bin/do-release-upgrade: Python script, ASCII text executable
やってみたところ、たしかに import できない。
$ python3
Python 3.5.3 (default, Apr 22 2017, 00:00:00)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import apt_pkg
Traceback (most recent call last):
File "", line 1, in
ImportError: No module named 'apt_pkg'
探しだしたのは次の情報。
該当パッケージは導入済みだったので、再インストール。
sudo apt-get install python3-apt --reinstall
でも変わらず。コメントみてくと、該当しそうなのがあったので、真似してみた。
たぶん python3-apt は 3.4 関係だけど、僕の環境は Python 3.5.x だったのが原因っぽい。
cd /usr/lib/python3/dist-packages sudo ln -s apt_pkg.cpython-{34m,35m}-x86_64-linux-gnu.so
これで、コマンド動くようになりました!
問題2: FATAL -> Failed to fork.
sshd 別ポートであげるよ、などのメッセージを経て、アップグレード始まったかと思ったら、途中で落ちる。
FATAL -> Failed to fork.
chrome とか td-agent 入ってるのが原因だったか?と思い、こちらをみて少し整理。
でも落ちる。
FATAL -> Failed to fork.
メモリ足りないのかと思い、再起動して、apache2, mysql も停止してみる。
さっきより進んだところで、同じエラー。
ふと、OpenVZのVPSだったことを思い出し、過去のリソース不足を思い出す。
3コア 1GB(最大2GB) から 6コア 2GB (最大4GB) に変更。
進んだ〜〜〜〜!
問題3:Kernel version not supported
アップグレード中に、このメッセージが出てきた。
OK としたら、アップグレードプロセス自体は進んだのですが。。。大丈夫なのかな? > 僕のOS
│ Kernel version not supported
│
│ This version of the GNU libc requires kernel version 3.2 or later. Older versions might work but are not officially supported. Please
│ consider upgrading your kernel.
│
│