« Debian の FloboPuyo パッケージに対する修正 | トップページ | カテゴリ付加ツール バージョンアップ »

2010年3月13日 (土)

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 パッケージに対する修正 | トップページ | カテゴリ付加ツール バージョンアップ »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: LV上の swap から TuxOnIce で resume するための initramfs-tools への変更:

« Debian の FloboPuyo パッケージに対する修正 | トップページ | カテゴリ付加ツール バージョンアップ »

2026年7月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ