Ubuntu 18.04 Serverにアップグレードしてみた!

皆さんGWはいかがお過ごしでしょうか? 今回、タイトルにも書いてありますが、先日リリースされたUbuntu 18.04 LTS (Bionic Beaver)に自宅サーバーをアップグレードしました!

OSのアップデートということで何個か問題が生じたので軽くまとめていきたいと思っております! 自分用のメモ程度に書いてあるのでわからないところがありましたら、コメントください〜

何が変わったの?

Ubuntu 18.04ではざっくり以下の要素が変わりました。Desktop版だとGNOME 3が採用されてわかりやすいアップデートがあるのですが、なんせサーバーなので正直パッとしないですw

  • Linux Kernel 4.15ベースのKernelに変更
  • デフォルトのJavaがOpenJDK 10に変更
  • SpectreとMeltdownへの対策
  • CIFS/SMBプロトコルバージョン変更
  • NetPlanへの完全移行 ※ifupdown入れることも可能
  • 新しいCUIインストーラーの採用
  • Canonical Livepatchに対応

他にも細かいところ変更されていますので、詳しく知りたい方はリリースノートを参照してください!

アップグレード手順

私は基本、OSをアップグレードする時はクリーンインストールを行います。何故ならアップグレード時に起きる互換性の問題でぐちゃぐちゃになるのが嫌なので… 必要な設定ファイルだけバックアップして初期化した方が早いという考え方です。もし普通にアップグレードしたいという方は以下のコマンドを実行してください!!

sudo apt update
sudo apt dist-upgrade

※SSH経由での操作ではなく直接PCを操作できる状態で実行してください!!

インストール中に起きた問題

私の環境下だけかもしれませんが、HDDをフォーマットする部分でエラーを吐いて先に進めない状態になってしまいました… 「curtin command block-meta」付近で止まってしまいました…

今回のCUIインストーラーからか分かりませんが、エラーを起こしたら再起動か、シェル操作ができるようになっており、シェル操作に切り替えてfdiskコマンド使って既存のパーティション消し飛ばせばうまく行きました!

今回の新CUIインストーラーから、オプションパッケージのインストールが選択できなくなっております。なのでインストール終わったら自分で入れてくださいね〜

その分か分かりませんが、めちゃめちゃインストール爆速でしたw

ネットワーク周りの設定

上記のアップデート項目でも書きましたが、今回からifupdown(/etc/network/interfaces)がnetplanにリプレイスされております。私もセットアップ後に気づいてあたふたしちゃいましたw /etc/network/interfaces自体は存在してますが、中身には注意書きが書かれていましたw

# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown

普通にifupdownを入れればいいっしょ! って話ですが、良い機会なので新しいnetplanを使うことにしました〜 これが移行前の私のinterfacesファイルです!

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

auto enp0s25
iface enp0s25 inet manual
bond-master bond0
up ethtool -s enp0s25 wol g

auto enp2s0
iface enp2s0 inet manual
bond-master bond0
bond-primary enp2s0

auto bond0
iface bond0 inet manual
bond-slaves none
bond-miimon 100
bond-mode 1

auto br0
iface br0 inet static
bridge_ports bond0

address 192.168.1.244
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.1

pre-up ifup bond0
post-down ifdown bond0

地味にネットワーク周りめんどくさいことになってるんですよね… Softetherを使っているのでボンディングしてあるbond0にtapを接続するためにブリッジ(br0)を繋げるという…

これをnetplanに書き換えると以下の通りです!

network:
    version: 2
    ethernets:
        enp0s25:
            dhcp4: false
            dhcp6: false
        enp2s0:
            dhcp4: false
            dhcp6: false
    bonds:
          bond0:
              interfaces:
                  - enp0s25
                  - enp2s0
              parameters:
                  mode: active-backup
                  primary: enp0s25
    
      bridges:
          br0:
              dhcp4: false
              dhcp6: true
              interfaces:
                  - bond0
              addresses: [192.168.1.244/24]
              gateway4: 192.168.1.1
              nameservers:
                  addresses: [192.168.1.1]

結構シンプルになりましたね! これで合っているかは心配ですが… 一応動いてるからOKとしましょうw

作成したyamlファイルは「/etc/netplan/*.yaml」に置いておきましょう!

変更を適用したい場合は以下のコマンドを叩きましょう! netplanすごいところは、間違ってるとエラー吐いて教えてくれますw

sudo netplan apply

詳しい仕様は公式リファレンスに載っているので見ときましょう!!

一部のソフトのビルドが通らない??

今回のアップグレードで一番苦労したところです… 私はVPNサーバーとしてSoftetherを長年愛用しております。ですが今回のUbuntu 18.04でいつも通り入れて見るとmakeでエラー吐いてコケてしました… 色々調べてたらDebian 9でも同じ現象が起きており、Githubで議論されていたため、解決できました… 解決できなかったら戻すまでありますよ…

今回起きたエラーは以下の通りです

/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
Makefile:18: recipe for target ‘i_read_and_agree_the_license_agreement’ failed
make[1]: *** [i_read_and_agree_the_license_agreement] Error 1

色々解決策はあったのですが、私はGithubからソースコード持ってきて自分でビルドする方法にしました!

sudo apt install zlib1g-dev libncurses5-dev libssl1.0-dev build-essential libreadline-dev git
cd /usr/local
git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable.git
cd SoftEtherVPN_Stable
./configure
make
make install

あとは、以下のコマンドでデーモン起動できるようになってるのでSystemdに設定するだけです!!

cd /usr/local/SoftEtherVPN_Stable/bin/vpnserver/
sudo chmod +x vpnserver
./vpnserver start

今回のまとめ

記事に書くまでもない問題がちらほらとありましたが、比較的にアップグレードはスムーズに行きました! ですが、外部リポジトリの対応がまだ終わってないところがちらほらあったので安全にアップグレードしたい人は数ヶ月様子見しましょう!

以上、私の人柱報告でした〜

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください