Vitruvian Penguin
knoppix

[knoppix:5672] ISOL INUX と /proc/cmdline

Date: Sat, 22 Oct 2005 15:41:54 +0900
User-agent: Mutt/1.5.11
柘植です。こんにちは。

例によってダラダラと長い文章になってしまったので、結論を先に書
いときます。「Knoppix の isolinux.cfg を見直しませんか。」

さて、

起動オプションなしで起動した場合、最近のKnoppix(V4.01以降)では
/proc/cmdline の内容が `### isk_size=100000 ...' になってしまう
という、田村さんが報告された件についてもう少し調べてみました。

[knoppix:5632] を書いた時点では、この現象が ISOLINUX と関係があ
りそうなことは分かったのですが、isolinux.bin に問題があるのかそ
れとも Knoppix の設定ファイル isolinux.cfg に問題があるのかは分
かりませんでした。

そこで、kernel.org から入手可能なsyslinux-<version>.tar.bz2を全
部ダウンロードして、各バージョンのisolinux.binを取り出し、それ
ぞれをKnoppixのisolinux.cfg と合わせて使ってISOイメージを作り、
起動の実験をしてみることにしました。

実験に Knoppix のISOイメージを使うと CD/RW に書き込む際に時間が
かかりすぎるので、Knoppix ベースでサイズが約50MBと小さい 
Damn Small Linux の dsl-2.0RC1.iso を使いました。DSLのisolinux.cfg
の書式は Knoppix のものとほとんど変わらないのでそのまま使います。

ちなみに、dsl-2.0RC1.iso で使われているisolinux.bin はV3.9以前
のKnoppixで使われていたsyslinux-knoppix パッケージに含まれてい
るもので、syslinuxオリジナルの2.04とは若干異なっているようです。

実験の結果、意外なことに、syslinux-3.08 以降の isolinux.bin を
使った場合だけ、/proc/cmdline の内容に異常がみられませんでした。 

逆にいうと、syslinux-3.07以前のバージョンのisolinux.binを、Knoppix
流のisolinux.cfgファイルと使った場合は問題があったということです。

特にバージョン3.00から3.07のisolinux.binではISOLINUXの起動画面
でbootプロンプトが現れず、キーボードからの入力も受け付けない状
態になりました。

そこで今度は isolinux.cfg の書式、特にDEFAULT 行の書き方につい
て見直してみることにしました。

Knoppix といくつかの派生ディストロではこんな風になっています。

 DEFAULT linux
 APPEND ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 \
  initrd=minirt.gz nomce quiet BOOT_IMAGE=knoppix

この場合の`linux' はカーネルイメージ名です。
しかし全く同じ内容のエントリが`knoppix'というLABEL名を付けて記述
されているので無駄な感じがします。

 LABEL knoppix
 KERNEL linux
 APPEND ramdisk_size=100000 init=/etc/init lang=ja apm=power-off vga=791 \
  initrd=minirt.gz nomce quiet BOOT_IMAGE=knoppix

ところで、`man syslinux'してみるとこんなことが書いてあります。

  default kernel [ options ... ]
         Sets  the default command line. If syslinux boots automatically,
         it will act just as if the  entries  after  "default"  had  been
         typed in at the "boot:" prompt. 

ということはつまり、

 DEFAULT knoppix

とだけ書いておけば、(そして DEFAULT 行に続く APPEND 行を省略し
ても)`boot: knoppix'と入力したときと同じように自動起動するはず
です。

そこで、DEFAULT 行のカーネルイメージ名をLABEL名に書き変えるだけ
の変更を行った isolinux.cfg を使い、syslinux-3.07以前の isolinux.bin
とあわせてISO イメージを作って起動してみました。

その結果、/proc/cmdline の内容に異常は見られず、起動しない問題
のあった3.00から3.07のisolinux.bin を使っても問題は生じませんで
した。

これらのことから、isolinux.cfg を書き換えさえすれば isolinux.bin
のバージョンが何であれ 問題の現象を回避できそうです。

ただ、syslinuxのソース付属の文書をみると

 Changes in 3.08:
       ...
       * Fix configuration file parsing error, that could cause
         hangs.
       ...

とあるので、Knoppix の isolinux.cfg ファイルに文法エラーがある、
とまではいえないような感じがします。

最後に、他のディストリビューションではどんなisolinux.cfgを使っ
ているのかを調べてみました。

a. DEFAULT 行にLABEL 名を記述しているもの

 Vine32-i386.iso (syslinux-2.10)
 slax-5.0.6.iso (syslinux-3.07)
 knoppix-V4.0.2CD-20051003-Exp-rev1-JPyak.iso (syslinux-2.11)

# yak-jp のかたは気づいてらしたんですね。
# isolinux.cfg 変更の経緯を簡単にでも教えていただけるとうれしいっす。

b. DEFAULT 行にカーネルイメージ名を記述しているもの

 debian-3.1r0a-i386-netinst.iso (syslinux-2.04)

本当ならここのMLじゃなくて debian-knoppix ML に送ったほうがいい
んだろうなと思いましたが、英語で同じことを書く気力体力特に知力
が圧倒的に欠けてるので、こちらに送らせていただきます。

この件で田村さんが debian-knoppix にメールを送ってくださったよう
ですが、http://lists.debian.org/debian-knoppix/2005/10/maillist.html
にアーカイブされてない(うちには配送されてます)ので変だなあと思っ
ていたら送り先のアドレスが古いままのようですね。;-)  > 田村さん

 (旧)debian-knoppix@xxxxxxxxxxxxxxxxxx
 (新)debian-knoppix@xxxxxxxxxxxxxxxx

じゃないかな。
-- 
Tsuge Akihide
<Prev in Thread] Current Thread [Next in Thread>