LV上の swap から TuxOnIce で resume するための initramfs-tools への変更
ただの swap パーティションと、
Linux カーネル標準の suspend-to-disk を使用するなら、
Debian 標準の initramfs-tools がぜーんぶ面倒を見てくれる。
これに対して、
TuxOnIce を使用していて、
LVM で作った Logical Volume 上にswap エリアを置いている場合、
initramfs-tools パッケージで提供されるスクリプトに いくつか変更が必要である。
理由は、二つ。
- initfamfs-tools 内の lvm2 スクリプトがtuxonice 用のカーネルコマンドライン内の resume 指定を 解釈できない
- 同じく resume スクリプトが tuxonice 対応の resume 開始手順を含んでいない
具体的な変更箇所については、二つの差分ファイルを見て欲しい。
(「resume.diff」をダウンロード 「lvm2.diff」をダウンロード)
Debian BTS にも報告。 ##573421
原因を見つけるまでの手続きについて。
function スクリプト内に、panic() という関数を見つけ、ブートシーケンスを途中で止められることに気付いた。
スクリプト内に panic 呼び出しを仕掛け、initfd を更新し、リブートする。
どこまで進んでいるのかを確認し、panic を仕掛ける箇所を段々先に進めていく。
この繰り返し。
C 言語などで、printf デバッグをするのと、基本的な考え方は同じ。
追いかけるためには、起動手順を押さえておく必要がある。
最低限必要なのは、以下の各ステップ。
- grub が /boot パーティションを認識して
- カーネルと initrd を読み込み、展開する
- sysfs をマウントする
- LVM 関係のモジュールを読み込む
- LV 上のルートファイルシステムを認識、活性化
- LV 上の swap を認識、活性化
echo 1 > /sys/power/tuxonice/do_resumeを発行し、- swap 上に TuxOnIce の hibernate で保存されたイメージがあれば、resume する
結果的に、このステップの確認と、原因の追跡を同時に行うことになった。
(3/14 一部追記)
« Debian の FloboPuyo パッケージに対する修正 | トップページ | カテゴリ付加ツール バージョンアップ »
「パソコン・インターネット」カテゴリの記事
- apt-cacher-ng と cli.github.com(2026.06.20)
- wine で LINEを使う(2026.04.10)
- apt-cacher-ng と ftp.jp.debian.org(2026.03.25)
- minicom の右枠線がズレる問題へのパッチと gdb の話(2026.01.04)
- Bluefish 関連ページ 復活(2025.12.29)
« Debian の FloboPuyo パッケージに対する修正 | トップページ | カテゴリ付加ツール バージョンアップ »


コメント