
Ubuntu日本語フォーラム

ログインしていません。
現在、syslinuxを使いUSBメモリにて、マルチブートをしています。
起動すると、syslinux.cfgの内容に沿って、メニューが立ち上がります。
本日、ubuntu live usb を作成しましたが、この起動システムもsyslinuxなので、
syslinux.cfgの内容に沿って起動しています。
なので、、、、ファイル階層、パスがsyslinux.cfgと矛盾しないように、
ファイルを既存USBにコピーし、syslinux.cfg を編集すれば、
ubuntu live usb を、
既存のsyslinuxメニューに組み込めないかと、現在いろいろ試行錯誤しています。
理想は通常の LiveUSB の起動状態を
syslinuxメニューから再現することです
LiveUSB のデフォルトの syslinux.cfg は以下の通りです。
-----------------------------
include menu.cfg
default vesamenu.c32
prompt 0
timeout 50
gfxboot bootlogo
-----------------------------
include や gfxboot 等がいまいち理解できないのですが
menu.cfg や text.cfg がメニューに関する設定ファイルであることは
わかるので、、、
とりあえず menu.cfg と text.cfg を
-------------------------------------
# include menu.cfg
default /syslinux/vesamenu.c32
prompt 0
timeout 300
# gfxboot bootlogo
MENU TITLE SYSLINUX Boot Options Menu
label menu
MENU LABEL Select Menu
kernel /syslinux/vesamenu.c32
append /syslinux/
label menu2
MENU LABEL ubuntu10.04 live usb
kernel /syslinux/vesamenu.c32
append /syslinux/text.cfg
--------------------------------------
のようにしています。
とりあえず どちらでもメニューから起動は出来るのですが
gfxboot を利用した、LiveUsbデフォルトの起動状態を再現することは出来ません。
どなたか,syslinuxメニューからの gfxboot を実現する方法ご存じないでしょうか?
オフライン
gfxbootは独自の言語で書いたソースをコンパイルして使用する様です。
蛇足ですがsyslinuxの場合はファイル名bootlogoがそれに当たります。
パッケージ「gfxboot」に含まれるhtmlファイルにリファレンスが有りますがチンプンカンプンでしたorz
自作以外にgfxbootのテーマが多く存在している様です。
Ubuntu(jp).isoに含まれるbootlogoを使用するには
「必須」
syslinux.cfg
bootlogo
16x16fnt
lang
gfxboot.cfg (無くても動く)
en.tr もしくは ja.tr (無くても動く)
splash.pcx (画像)
/dev/sdb1のsyslinuxから各パーティションへのアクセスのサンプルを載せておきます、syslinuxの参考になれば良いのですが。
USBメモリ=/dev/sdb
/dev/sdb1 = fat32 (ライブUSB gfxboot)
/dev/sdb2 = fat32 (テスト用 vasemenu.c32)
/dev/sdb3 = Ext3 (テスト用 GRUB menu.lst)
事前処理
$ sudo syslinux /dev/sdb1
$ sudo syslinux /dev/sdb2
ディレクトリ
/sdb
|--/sdb1
| |---ライブUSB(casper,dists,install,pics,pool,preseed)
| |
| |---ldlinux.sys
| |
| |---syslinux
| |
| |---16x16.fnt
| |---boot.cat
| |---bootlogo
| |---chain.c32
| |---gfxboot.cfg
| |---grub.exe
| |---lang
| |---syslinux.cfg
|
|--/sdb2
| |---ldlinux.sys
| |
| |---syslinux
| |
| |---boot.cat
| |---syslinux.cfg
| |---vesamenu.c32
|
|--/sdb3
|---boot
|---grub
|---menu.lst
[sdb1 > syslinux.cfg] prompt 0 timeout 300 gfxboot bootlogo default USB label USB menu label SYSLINUX チェインロード(enter2度押し) kernel /syslinux/chain.c32 append hd0 2 label GRUB menu label GRUB kernel /syslinux/grub.exe label LIVE menu label ライブUSB Ubuntu 9.10 kernel /casper/vmlinuz append noprompt cdrom-detect/try-usb=true file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash tz=Asia/Tokyo utc=no -- label HDD menu label HDD Boot localboot 0x80
[sdb2 > syslinux.cfg] default vesamenu.c32 prompt 0 timeout 500 MENU TITLE SYSLINUX MENU TEST menu hshift 20 menu width 60 menu margin 10 menu color title * #FFFFFFFF * menu color border * #00000000 #00000000 none menu color sel * #ffffffff #76a1d0ff * menu color hotsel 1;7;37;40 #ffffffff #76a1d0ff * menu color tabmsg * #ffffffff #00000000 * menu vshift 12 menu rows 10 menu tabmsgrow 16 menu timeoutrow 17 menu tabmsg Press ENTER to boot or TAB to edit a menu entry label sdb2 menu label USBmem on /dev/sdb2 kernel / append --
[sdb3 > menu.lst] color blue/green yellow/red white/magenta white/magenta timeout 30 default /default title HDD map (hd0) (hd1) map (hd1) (hd0) root (hd1,0) makeactive chainloader +1
オフライン
書き忘れです。
使用したファイルの入手先です。
(casper,dists,install,pics,pool,preseed) Ubuntu-installCD.iso/~
16x16.fnt Ubuntu-installCD.iso/isolinux/16x16.fnt
boot.cat [# syslinux [device]]コマンド実行で自動生成
bootlogo Ubuntu-installCD.iso/isolinux/bootlogo
chain.c32 /usr/lib/syslinux/chain.c32
gfxboot.cfg Ubuntu-installCD.iso/isolinux/gfxboot.cfg
grub.exe grub4dos-0.4.4.zip
lang Ubuntu-installCD.iso/isolinux/lang
ldlinux.sys [# syslinux [device]]コマンド実行で自動生成
menu.lst Textファイル
syslinux.cfg Textファイル
vesamenu.c32 /usr/lib/syslinux/vesamenu.c32 (.iso/isolinux/vesamenu.c32)
オフライン
あ〜憂鬱(^^;
boot.catはCDブート用のisolinuxで生成されるファイルです。
USBブートのsyslinuxでは必要有りません、コピペの多用で混入したのを生成されたと勘違いしましたorz
オフライン
hiro0 さん 感謝です。
ヒントいただき 無事解決しました。
-------------------------------------
include menu.cfg
default vesamenu.c32
prompt 0
timeout 50
gfxboot bootlogo
label ******
MENU LABEL **********
kernel ****************
append ***************
--------------------------------------
これで良かったんですね
「timeout」 の間にshiftキーを押せばメニューに入り
何もキーを押さなければ、通常のデフォルト「LiveUsb」が起動する
これでメニューに組み込めるんですね。
メニューの背景やロゴは menu.cfg や text.cfg の内容に沿った物ですが
それをスルーしても良いわけで、
そこをいじれば、オリジナルメニューにもなるわけで、
結局、LiveUsbの「syslinuxメニュー(vesamenu.c32)」に追加項目を挿入することは可能でした。
shiftキーを押せばメニューに入る とういことに気づかなかった
愚かな自分にため息です。。。。。。
また、
ubuntu10.04の「スタートアップdiskの作成」でインストールされるブートローダーは
syslinux3.63 ですが、新しいバージョンをインストールすると
デフォルト「LiveUsb」のgfxbootはスルーされて普通?の起動になってしまいます。
たぶんブートローダーにgfxboot用の設定(パッチ)?が当たっているのではと思いますがよくわかりません?
とにかく通常のインストールで作成されるブートローダーでは起動できませんでした。
「スタートアップdiskの作成」でインストールされるldlinux.sysを、上書きすれば良いのかな?
1.ですから、既存のsyslinux環境に「LiveUsb」を追加することは難しく
2.「スタートアップdiskの作成」で作成した「LiveUsb」にメニューを追加する方が現実的でしょう。
3.パーテーションを分け2ndパーテーションに「LiveUsb」をインストールし、チェーンロードできれば理想ですが
ubuntu10.04からは2ndパーテーションにはインストール出来ませんし、
手動でインストールしても、ブートローダーに何かパッチらしきものを当てなくてはいけないのでこれも現実的ではありません。
それから、サンプル とても参考になります。
私も、同様の環境 いくつかテストしておりましたので(grub4dosやらplopやら)、
とても参考になりました。
ありがとうございました。
それと、サンプルの中の 「localboot 0x80」はsyslinuxでは使えないと思いましたが、いかがでしょうか?
以上。
*******************************************************************
オフライン