【Linuxメンテナンス】Debian で「gave up waiting for suspend/resume device」が出て起動が遅くなるときの対処法


※ 当ページには【広告/PR】を含む場合があります。
2023/06/14

ちょっと前に、普段使いのDebian Linuxのデスクトップで使っていた128GBのSSD容量の空き容量がいよいよ底をつき、作業がまともにできなくなってきたので、258GBのSSDにクローンを取ってそのままイメージごとお引っ越しする作業を行いました。

Debian自体の動作は問題なく移行できたものの、Linuxブート時に...

            gave up waiting for suspend/resume device
...
        
と何か起動時のカーネル処理が内部で失敗してしまう問題が起こりました。

せっかく新調してデータ転送速度の早いSSDに替えたのに、起動のたびにブートの問題で2分弱も待たされてはかなり損した気分ですので、ここはきっちり修正しておきます。


swapボリュームのUUIDを正しく設定する

結論からいうと、「起動時にカーネルが古いファイルシステム(swap)の情報を読んでいるため、処理がコケてしまう」ことが原因のようです。

なので、ブート時にカーネルが正しいファイルシステムを読めるように、設定情報を現在の値に修正してあげる必要があります。

ボリュームのUUIDをチェックする

まずは新しく更新されたswapボリュームのUUIDを調べるところから始めます。

調べる方法はいくつかありますが、主に利用されているのは以下の2つです。

            $ sudo blkid
/dev/sda1: UUID="9f7daea0-20d7-4cb5-8007-41821aa388c2" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="0025d1de-01"
/dev/sda5: UUID="19b95a40-dbeb-474f-85fb-dd0e2a488a93" TYPE="swap" PARTUUID="0025d1de-05"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
        
もしくは

            $ sudo ls -la /dev/disk/by-uuid/
合計 0
drwxr-xr-x 2 root root  80  6月 14 08:32 .
drwxr-xr-x 6 root root 120  6月 14 08:32 ..
lrwxrwxrwx 1 root root  10  6月 14 08:32 19b95a40-dbeb-474f-85fb-dd0e2a488a93 -> ../../sda5
lrwxrwxrwx 1 root root  10  6月 14 08:32 9f7daea0-20d7-4cb5-8007-41821aa388c2 -> ../../sda1
        
と、LinuxならDebianに限らずおそらくどちらかで確認できるでしょう。

/etc/fstabの修正

UUIDの確認で、swapボリュームである
/dev/sda5が以下のUUIDになったことが分かります。

            UUID=19b95a40-dbeb-474f-85fb-dd0e2a488a93
        
で、/etc/fstabの設定がまだ古いUUIDを使っていたならここを編集します。

            #👇念の為バックアップ
$ sudo cp /etc/fstab /etc/fstab-backup 

$ sudo nano /etc/fstab
#👇以下の感じで修正

#...中略

#👇古いswapのUUIDをコメントアウトし、新しいUUIDに書き換える
#UUID=d9a375fd-113e-4de0-aabf-a81051113dcc none            swap    sw              0       0
UUID=19b95a40-dbeb-474f-85fb-dd0e2a488a93 none            swap    sw              0       0

#👇ファイルを書き換えたら再起動
$ sudo reboot
        

/etc/initramfs-tools/cond.d/resumeの書き換え

もう一つDebian等で引っかかるのが、
/etc/initramfs-tools/cond.d/resumeの設定です。

            $ sudo cp /etc/initramfs-tools/conf.d/resume /etc/initramfs-tools/conf.d/resume.backup

$ sudo nano /etc/initramfs-tools/conf.d/resume
#👇古いUUIDの場合には、新しいUUIDに変更する
#RESUME=UUID=d9a375fd-113e-4de0-aabf-a81051113dcc
RESUME=UUID=19b95a40-dbeb-474f-85fb-dd0e2a488a93

#👇initramfsをアップデート
$ sudo update-initramfs -u

#👇ファイルを書き換えたら再起動
$ sudo reboot
        
これで起動が問題なければOKです。

ちなみに
initramfsとは、Linuxが起動するときにカーネルにどのファイルシステムをマウントするのかや、デバイスの検知などを担当するプロセスのことで、update-initramfsコマンドはその設定を更新するために利用されます。


まとめ

容量の小さいボリュームから大きいものへお引っ越しする際には、swapボリュームの再設定は避けて通れない作業です。

同じような症状でお悩みの方にお役にたてば幸いです。

参考サイト

Debianのswap消しちゃったら起きるコト

記事を書いた人

記事の担当:taconocat

ナンデモ系エンジニア

電子工作を身近に知っていただけるように、材料調達からDIYのハウツーまで気になったところをできるだけ細かく記事にしてブログ配信してます。