お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2010-06-18 22:14:16

tetsuyakubo
メンバ
登録日: 2008-10-05

Ubuntu Live Usb の syslinuxメニュー からの起動について

現在、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 を実現する方法ご存じないでしょうか?

オフライン

 

#2 2010-06-20 01:53:28

hir0
メンバ
登録日: 2008-09-28

Re: Ubuntu Live Usb の syslinuxメニュー からの起動について

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

オフライン

 

#3 2010-06-20 11:03:31

hir0
メンバ
登録日: 2008-09-28

Re: Ubuntu Live Usb の syslinuxメニュー からの起動について

書き忘れです。
使用したファイルの入手先です。

(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)

オフライン

 

#4 2010-06-20 11:17:40

hir0
メンバ
登録日: 2008-09-28

Re: Ubuntu Live Usb の syslinuxメニュー からの起動について

あ〜憂鬱(^^;
boot.catはCDブート用のisolinuxで生成されるファイルです。
USBブートのsyslinuxでは必要有りません、コピペの多用で混入したのを生成されたと勘違いしましたorz

オフライン

 

#5 2010-06-20 17:26:41

tetsuyakubo
メンバ
登録日: 2008-10-05

Re: Ubuntu Live Usb の syslinuxメニュー からの起動について

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では使えないと思いましたが、いかがでしょうか?

以上。

*******************************************************************

オフライン

 

Board footer

Powered by FluxBB