LVMが有効な場合に起動時間が遅くなる問題の回避策を記載します。LVMが無効な場合はここに書かれていることを実行する必要はありません。
Table of Contents
1 LVMが有効だと起動時間が遅くなる問題
LVMを有効にしてインストールした場合、initrdの処理に時間がかかってしまいます。
$ systemd-analyze Startup finished in 34.003s (kernel) + 1.843s (userspace) = 35.847s graphical.target reached after 1.822s in userspac
以下の/usr/share/initramfs-tools/scripts/localのwait-for-rootの呼び出しで、slumberに設定されたタイムアウトの30秒が経過してしまいます。
local_device_setup() { <snip> case "$dev_id" in UUID=*|LABEL=*|/dev/*) FSTYPE=$( wait-for-root "$dev_id" $slumber ) ;; *) wait_for_udev 10 ;; esac
上記のdev_idには/etc/initramfs-tools/conf.d/resumeで定義されたRESUMEの値が入っています。このUUIDはスワップ領域のボリュームのものです。
$ cat /etc/initramfs-tools/conf.d/resume RESUME=UUID=67b3fe6f-1ec4-413f-8c5a-1136bc7f3270
2 LVMが有効だと起動時間が遅くなる問題の回避策
RESUME変数にUUIDではなくデバイスファイルのパスを設定します。
$ sudo sed -e 's/^RESUME=/#RESUME=/g' \ -i /etc/initramfs-tools/conf.d/resume $ echo "RESUME=/dev/mapper/ubuntu--vg-swap_1" | \ sudo tee -a /etc/initramfs-tools/conf.d/resume
initrdを作り直して再起動します。
$ sudo update-initramfs -u $ sudo reboot
カーネルの起動が30秒早くなりました。ハイバーネーションも動作します。
$ systemd-analyze Startup finished in 1.920s (kernel) + 2.370s (userspace) = 4.291s graphical.target reached after 2.196s in userspace