Grub2 で    LiveCD Linuxiso イメージファイルを   直接起動してみた      2013年2月16日   はとちゃん(羽鳥健太郎)  hatori@hatochan.dyndns.org
なんで Grub2なのか           Grub2●   前回オフで、仮想環境(VirtualBox)上で    LiveCD Linuxを起動させたら、NetPCの    スペックがあまりに低くて動かない●   NetPC上で、簡単にL...
Grub 2 の特徴●   Legacy Grubより多機能らしい...●   /boot/grub/grub.cfg の編集不可    ●        /etc以下のファイルを編集        –   /etc/defaulto/grub...
Grub2の情報源            Grub2●   GNU GRUB Manual 2.00~rc1    http://www.gnu.org/software/grub    /manual/grub.html●   2ちゃんねるG...
/etc/default/grub    主要なパラメータ(2ちゃんねるより)●    GRUB_DEFAULT    デフォルトのOSを指定 位置で指定することもでき、メニューの名称    をそのまま指定することもできる    例 GRUB_...
/etc/default/grub    主要なパラメータ(2ちゃんねるより)●    GRUB_DISTRIBUTOR=’lsb_release -i -s 2> /dev/null ||    echo Debian’    メニューエント...
/etc/default/grub    主要なパラメータ(2ちゃんねるより)●    GRUB_DISABLE_LINUX_UUID=true    Linuxにroot=UUID=xxxパラメータを渡したくない場合にアンコメ    ント● ...
/etc/grub.d     設定ファイル (2ちゃんねるより)    この中のファイルはupdate-grub・update-grub2コマンド実    行中に読み込まれ、その内容が/boot/grub/grub.cfgに書き込    まれ...
isoイメージファイルを直接起動iso     してみた 前提条件          前提●   低スペックNotePC(Asus X101CH)     CPU:Intel Atom N2600(1.6GH z)     メモリ:1GB(固定...
40_customでLiveCD Linux         サブメニュー表示         サブメニュー#!/bin/sh(途中略)submenu LivdCD Linux  {    menuentry Slax Japanese 7.0...
Slax 7.0.4の記述 menuentry Slax Japanese 7.0.4  {     insmod part_msdos     insmod ext2     set isofile= "/iso/slax-Japanese-...
Porteus 2.0RC2の場合 menuentry Porteus 2.0RC2  {     insmod part_msdos     insmod ext2     set isofile= "/iso/Porteus-v2.0-rc...
Puppy Linux 5.4の場合           (Precise/Slacko) menuentry Puppy Precise 5.4.3  {     set root=(hd0,5)     set isofile= "/iso...
TinyCore 4.7.4の場合 menuentry TinyCore 4.7.4  {     insmod part_msdos     insmod ext2     set root=(hd0,5)     set isofile= ...
SystemRescue 3.3.0の場合 menuentry System Rescue 3.3.0  {     set root=(hd0,5)     set isofile= "/iso/systemrescuecd-x 86-3.3...
その他の LiveCD Linux●   次のワードで検索するといくつかヒット        grub2 boot iso image    ●   各LiveCD LinuxのフォーラムでGrub2から        直接起動する試みをしてい...
Grub2からisoイメージファイルGrub2   を直接起動するために...●   LiveCD Linux毎に記述が異なり、現在の    ところ非常に難しい●   ベースとなるディストロにより記述の 傾向    は似ている気がする(本人の感...
Upcoming SlideShare
Loading in …5
×

Hatochan's Resume 20130216@Koedolug

1,111 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,111
On SlideShare
0
From Embeds
0
Number of Embeds
40
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Hatochan's Resume 20130216@Koedolug

  1. 1. Grub2 で LiveCD Linuxiso イメージファイルを 直接起動してみた 2013年2月16日 はとちゃん(羽鳥健太郎) hatori@hatochan.dyndns.org
  2. 2. なんで Grub2なのか Grub2● 前回オフで、仮想環境(VirtualBox)上で LiveCD Linuxを起動させたら、NetPCの スペックがあまりに低くて動かない● NetPC上で、簡単にLiveCD Linuxを試す 方法はないのか● 最近、正式に2.0になり多くのディストロ に採用されはじめたGrub2では、 isoイメージファイルを直接起動 iso できるらしい!!● まずは試してみよう (^^ゞ
  3. 3. Grub 2 の特徴● Legacy Grubより多機能らしい...● /boot/grub/grub.cfg の編集不可 ● /etc以下のファイルを編集 – /etc/defaulto/grub – /etc/grub.d/* ● コマンドでgrub.cfgを生成 – Ubuntu/Debian: update-grub – Fedora: grub2-mkconfig -o /boot/grub2/grub● グラフィカルメニューもできる ● 日本語メニューも表示可能● isoイメージファイルを 直接起動 ← ここ重要 iso
  4. 4. Grub2の情報源 Grub2● GNU GRUB Manual 2.00~rc1 http://www.gnu.org/software/grub /manual/grub.html● 2ちゃんねるGrub2総合スレ http://engawa.2ch.net/test/read.c gi/linux/1346719943/l50 ● 良スレにもかかわらず過疎化...● Ubuntu Grub2 https://help.ubuntu.com/communit y/Grub2
  5. 5. /etc/default/grub 主要なパラメータ(2ちゃんねるより)● GRUB_DEFAULT デフォルトのOSを指定 位置で指定することもでき、メニューの名称 をそのまま指定することもできる 例 GRUB_DEFAULT=”Ubuntu, Linux 2.6.31-9-generic また、 「saved」と指定した場合、前回起動した OSがデフォルトに なる● GRUB_TIMEOUT デフォルトのOSを起動するまでの時間を秒で指定 -1にするとユーザーが行動するまでメニューが表示される● GRUB_HIDDEN_TIMEOUT これで指定された秒数だけ待つ その間メニューが表示されない デフォルトでは、他のOSが検出された場合にアンコメントされる 0が設定された場合、メニューは表示されず、遅延もない 起動中に シフトキーを押しつづけることでメニューを表示できる● GRUB_HIDDEN_TIMEOUT_QUIET true か false の値を指定 true だと画面に何も表示しない  false だと GRUB_HIDDEN_TIMEOUT の残り時間を表示
  6. 6. /etc/default/grub 主要なパラメータ(2ちゃんねるより)● GRUB_DISTRIBUTOR=’lsb_release -i -s 2> /dev/null || echo Debian’ メニューエントリーの記述を決定する(例: Ubuntu, Xubuntu, Debian● GRUB_CMDLINE_LINUX カーネルのコマンドラインオプションに追加したい場合に指定● GRUB_CMDLINE_LINUX_DEFAULT 通常起動の場合に、 コマンドラインオプションへ追加したいオプ ションを指定 例 スプラッシュイメージを表示する場合   GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash”   スプラッシュイメージを表示し簡易テキストも表示     GRUB_CMDLINE_LINUX_DEFAULT=”splash”● GRUB_TERMINAL=console アンコメントするとグラフィカル端末を無効にできる
  7. 7. /etc/default/grub 主要なパラメータ(2ちゃんねるより)● GRUB_DISABLE_LINUX_UUID=true Linuxにroot=UUID=xxxパラメータを渡したくない場合にアンコメ ント● GRUB_GFXMODE 画面の解像度を指定 (PCのグラフィックカードが対応する解像度を 指定) ブートメニューのテキストにのみ適用される● GRUB_DISABLE_LINUX_RECOVER Y=true リカバリーモードをメニューに表示するかを指定する リカバリーオプションを特定のカーネルだけに表示させたいなら /etc/grub/40_custom に専用のエントリーを作成する必要がある● GRUB_BACKGROUND 背景画像を指定● GRUB_DISABLE_OS_PROBER=”true” 他のパーティションにOS(Windows, Linux, OSX, Hurd など)が 存在するか検出するか否かを指定する。
  8. 8. /etc/grub.d 設定ファイル (2ちゃんねるより) この中のファイルはupdate-grub・update-grub2コマンド実 行中に読み込まれ、その内容が/boot/grub/grub.cfgに書き込 まれる● 00_header● 05_debian_theme: 背景やテキストの色、テーマを設定する● 10_hurd: Hurdカーネルを指す。● 10_linux: lsb_release の結果に基づきLinuxカーネルを指す。● 20_memtest86+: /boot/memtest86+.binが存在する場合、 メニューに加わる。● 30_os-prober: 他のパーティションのLinuxなどのOSを探して メニューに加える。● 40_custom: update-grub2 の実行でgrub.cfgに挿入される カスタムメニューエントリーのテンプレート ※ grub.cfgに書き込むためにはこのファイルや他のカスタム    ファイルは実行可能である必要がある
  9. 9. isoイメージファイルを直接起動iso してみた 前提条件 前提● 低スペックNotePC(Asus X101CH) CPU:Intel Atom N2600(1.6GH z) メモリ:1GB(固定←MB直付) ストレージ:SSD(64GB) SATA2● Grub2はLubuntu 12.04LTS上に kernel 3.7.8 grub2 1.99-21ubuntu3.9 /dev/sda5をext4フォーマット● isoイメージファイルは(hd0,5)/isoに格納● /etc/grub.d/40_custom 以外触らない● 各LiveCD Linuxのisolinux.cfgを参考
  10. 10. 40_customでLiveCD Linux サブメニュー表示 サブメニュー#!/bin/sh(途中略)submenu LivdCD Linux { menuentry Slax Japanese 7.0.4 { Grub2の記述 } menuentry Puppy Slacko 5.4 { Grub2の記述 } menuentry TinyCore 4.7.4 { Grub2の記述 } menuentry System Rescue 3.3.0 { Grub2の記述 }}
  11. 11. Slax 7.0.4の記述 menuentry Slax Japanese 7.0.4 { insmod part_msdos insmod ext2 set isofile= "/iso/slax-Japanese-7.0.4-i4 86.iso" search --no-floppy --file --set=root $isofile loopback loop (hd0,5) $isofile linux (loop)/slax/boot/vmlinu z from=$isofileslax.flags=perch,xmode nopersistent noe ject nopromptnoatime ro initrd (loop)/slax/boot/initrfs.img }
  12. 12. Porteus 2.0RC2の場合 menuentry Porteus 2.0RC2 { insmod part_msdos insmod ext2 set isofile= "/iso/Porteus-v2.0-rc2-i4 86.iso" search --no-floppy --file --set=root $isofile loopback loop (hd0,5) $isofile linux (loop)/boot/syslinux/vmlinu z from=$isofile noswapkmap=jp autoexec=xconf initrd (loop)/boot/syslinux/initrd.x z }
  13. 13. Puppy Linux 5.4の場合 (Precise/Slacko) menuentry Puppy Precise 5.4.3 { set root=(hd0,5) set isofile= "/iso/precise-5.4.3.iso " search --no-floppy --file --set=root $isofile loopback loop (hd0,5) $isofile linux (loop)/vmlinu z boot=/iso/precise-5.4.3.iso nopromptnoeject pdev1=sda5 plang= ja pkeys=jp106pupsfs=(loop)/puppy_precise_5.4.3.sfs initrd (loop)/initrd.g z }Precise及びSlackoの両方で、sfsファイルを読み込んで、直後にkernel Panicで起動できず...
  14. 14. TinyCore 4.7.4の場合 menuentry TinyCore 4.7.4 { insmod part_msdos insmod ext2 set root=(hd0,5) set isofile= "/iso/TinyCore-4.7.4.iso " search --no-floppy --file --set=root $isofile loopback loop (hd0,5) $isofile linux (loop)/boot/vmlinu z boot=/iso/TinyCore-4.7.4.isonoprompt noeject loglevel=3 cde waitusb=5 initrd (loop)/boot/core.g z }なぜかX window systemが起動しない...あらためてX関連のパッケージを手動で読みこめば起動
  15. 15. SystemRescue 3.3.0の場合 menuentry System Rescue 3.3.0 { set root=(hd0,5) set isofile= "/iso/systemrescuecd-x 86-3.3.0.iso" loopback loop (hd0,5) $isofile linux (loop)/isolinux/rescue32 setkmap= jp isoloop=$isofiledostartx initrd (loop)/isolinux/initram.ig z }
  16. 16. その他の LiveCD Linux● 次のワードで検索するといくつかヒット grub2 boot iso image ● 各LiveCD LinuxのフォーラムでGrub2から 直接起動する試みをしているが...● Ubuntuのサイトが参考になる ● Grub2/ISOBoot https://help.ubuntu.com/community/G rub2/ISOBoot ● Grub2/ISOBoot/Examples https://help.ubuntu.com/community/G rub2/ISOBoot/Examples
  17. 17. Grub2からisoイメージファイルGrub2 を直接起動するために...● LiveCD Linux毎に記述が異なり、現在の ところ非常に難しい● ベースとなるディストロにより記述の 傾向 は似ている気がする(本人の感想です)● ベースのないオリジナルのディストロだと 失敗する可能性が大きい● とりあえずの結論: Grub2でのisoイメージファル Grub2 直接起動は 発展途上

×