goo blog サービス終了のお知らせ 

工作メモ

工作メモ

rufus-2.18 と Slitaz

2018-03-16 02:34:50 | Linux
●rufus-2.18 と Slitaz
SlitazのブータブルUSBを作成する時、rufusのISOイメージモードを使ってしまうと、
ブートの際に、

  c32box.c32: not a COM32R image

と表示され、ループになって先に進めなくなる。この時、「boot:」のプロンプトに対して、

  /boot/bzimage initrd=/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null video=-32 autologin

と入力すれば、起動に成功する。たた、起動の度に、これを間違えずに入力するのは困難だ。

Slitazを試用するだけなら、rufusの「DDイメージモード」を使ってisoファイルを書き込ん
でしまうのが簡単である。ただし、HybridISOのUSBメモリは、Bootには使えるが、起動した
Slitazから内容を参照したりすることは出来ず、HDDインストールの際のファイルのコピー元
にもはなれない、など不便さが伴う。
この先、多少ともSlitazを使ってみるのなら、「ISOイメージモード」でブータブルUSBメモリ
を作成しておくのも良いだろう。


Slitazが使っているブートローダーSYSLINUX(ISOLINUX)は、lzma形式の圧縮ファイル
が扱えるように改造してあり、一般に出回っているSYSLINUXとは別物である。
この改造に合わせ、c32box.c32もlzma形式で圧縮してある。
USBメモリに格納され、PCの起動に使用されたSYSLINUXは、rufusが用意し、書き込んだ
一般的なものであるため、c32box.c32が読み込めず、エラーになるのである。
 SliTaz package receipt
実は、Slitazが用意したvesamenu.c32もlzma圧縮されているのだが、rufusが
「古いバージョンである」と判断し、新しいファイルを書き込んでいるためエラーにならない。


●Slitazの自動起動
Slitazが自動起動に失敗する原因は上記の通りである。したがって、ISOイメージモード
で書いたUSBメモリでSlitazを起動するには以下の2つの手段がある。

・syslinux.cfgを書く
 以下の2行を書いたsyslinux.cfgを、USBメモリのルートに置く。

default /boot/bzimage
append initrd=/boot/rootfs4.gz,/boot/rootfs3.gz,/boot/rootfs2.gz,/boot/rootfs1.gz rw root=/dev/null video=-32 autologin

 syslinuxは行末のCR、LFを問題にしないので、syslinux.cfgをWindowsのエディタで書き、
 USBメモリにコピーするだけで良い。
 Slitasのブートメニューを無視することになるが、単純だ。

・c32box.c32を展開しておく
 USBメモリの /boot/isolinux/ にある c32box.c32 が圧縮されているのが原因なので、
 unlzmaコマンドで展開したものに置き換える。

# mv c32box.c32 c32box.lzma
# unlzma < c32box.lzma > c32box.c32

 これを実行するには、一度、別の手段でSlitazを起動し、USBメモリをmountしたうえ、
 rootになって作業しなければならないのが、多少の手間ではある。

コメントを投稿