LVMが有効な場合に起動時間が遅くなる問題の回避策を記載します。 LVMが無効な場合はここに書かれていることを実行する必要はありません。
Table of Contents
1 LVMが有効だと起動時間が遅くなる問題
LVMを有効にしてインストールした場合、initrdの処理に時間がかかってしまいます。
$ systemd-analyze Startup finished in 34.539s (kernel) + 2.871s (userspace) = 37.410s graphical.target reached after 1.305s in userspace
これは/usr/share/initramfs-tools/scripts/localのwait-for-rootでLVMのスワップ領域が有効になるのを30秒ウェイトする為に発生します。
[ 2.056198] random: lvm: uninitialized urandom read (2 bytes read) done. Begin: Running /scripts/local-premount ... Begin: Waiting for suspend/resume device ... Begin: Running /scripts/local-block ... done. Begin: Running /scripts/local-block ... done. [ 4.948882] random: fast init done Begin: Running /scripts/local-block ... done. <snip> Begin: Running /scripts/local-block ... done. done. Gave up waiting for suspend/resume device done. [ 34.841249] cryptd: max_cpu_qlen set to 1000
2 LVMが有効だと起動時間が遅くなる問題の回避策
RESUME変数にUUIDではなくデバイスファイルのパスを設定します。これはDebian 9と同様の設定です。
$ RESUME=$(sudo lvscan -q | awk '{ print $2 }' | \ sed -e "s/^'//g" -e "s/'$//g" | grep '/swap_1$') $ sudo sed -e 's/^RESUME=/#RESUME=/g' \ -i /etc/initramfs-tools/conf.d/resume $ echo "RESUME=${RESUME}" | sudo tee -a /etc/initramfs-tools/conf.d/resume
initrdを作り直して再起動します。
$ sudo update-initramfs -u $ sudo reboot
カーネルの起動が30秒早くなりました。ハイバーネーションも動作します。
$ systemd-analyze Startup finished in 2.398s (kernel) + 1.255s (userspace) = 3.654s graphical.target reached after 1.240s in userspace