雑記とメモ

雑記とメモがわり

Ubuntu 16.04→18.04アップデートでエラーの対処

シュガーです。

サーバーのOSをUbuntuに変更しました。
原因はWindows Updateです。ブルスク吐いて起動しなくなりやがりました。

で、UbuntuDebianを入れようとするも最新版ではGRUBエラーのためインストールできず。

仕方ないので16.04から18.04にアップグレードする手段を選んだわけです。

すると、以下の問題が発生しました。
  • grub-efi-amd64-signedがエラーを吐いてアップデートできない
  • アップグレードしたら起動が5分以上かかる
エラーの内容はこんな感じです。

grub-efi-amd64-signed (1.93.4+2.02-2ubuntu8.3) を設定しています ...
Installing for x86_64-efi platform.
Could not prepare Boot variable: No space left on device
grub-install: エラー: efibootmgr failed to register the boot entry: 入力/出力エラー です.
dpkg: パッケージ grub-efi-amd64-signed の処理中にエラーが発生しました (--configure):
 installed grub-efi-amd64-signed package post-installation script subprocess returned error exit status 1
libc-bin (2.27-3ubuntu1) のトリガを処理しています ...
処理中にエラーが発生しました:
 grub-efi-amd64-signed
E: Sub-process /usr/bin/dpkg returned an error code (1)

まず1つ目のGRUBエラーの解決策です。

以下のコマンドを1行毎に実行します。
sudo su -
cd /boot/efi/EFI
mv ubuntu ubuntu-old
apt install -f
mv ubuntu-old ubuntu
update-grub2
exit

これでapt upgradeのエラーが出なくなり喜んだのも束の間、
再起動するとなかなか起動せずやらかしたか?と思ったら、
なんと起動に5分以上かかるようになっていました。

そこで、まず systemd-analyze blame で何が起動時間を食っているのか調べました。

すると、僕の環境では networking.service が5分も使っていることが判明。

そこで、以下のコマンドで設定ファイルを編集しました。

sudo systemctl edit --full networking.service

その中から TimeoutStartSec=5min を探し、5minを10secに書き換えます。

TimeoutStartSec=10sec

(参考にしたURLでは --full オプションがついていませんが、僕の環境ではこうしないと反映されませんでした)


これでようやく、特に問題なく使えるようになりました。

2018/8/25 追記:エラーの内容について追記