hatochan's resume 20130216@koedolug

17
Grub2 Grub2 LiveCD Linux LiveCD Linux iso iso イメージファイルを イメージファイルを 直接起動してみた 直接起動してみた 2013 2013 2 2 16 16 はとちゃん(羽鳥健太郎) はとちゃん(羽鳥健太郎) [email protected] [email protected]

Upload: kentaro-hatori

Post on 02-Aug-2015

769 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Hatochan's Resume 20130216@Koedolug

Grub2Grub2ででLiveCD Linux LiveCD Linux

isoisoイメージファイルをイメージファイルを直接起動してみた直接起動してみた

20132013年年22月月1616日日

はとちゃん(羽鳥健太郎)はとちゃん(羽鳥健太郎)[email protected]@hatochan.dyndns.org

Page 2: Hatochan's Resume 20130216@Koedolug

なんでGrub2Grub2なのか

● 前回オフで、仮想環境(VirtualBox)上でLiveCD Linuxを起動させたら、NetPCのスペックがあまりに低くて動かない

● NetPC上で、簡単にLiveCD Linuxを試す方法はないのか

● 最近、正式に2.0になり多くのディストロに採用されはじめたGrub2では、

isoisoイメージファイルを直接起動できるらしい!!

● まずは試してみよう (^^ゞ

Page 3: Hatochan's Resume 20130216@Koedolug

GrubGrub22の特徴

● 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.cfg

● グラフィカルメニューもできる● 日本語メニューも表示可能

● isoisoイメージファイルを直接起動直接起動 ← ここ重要

Page 4: Hatochan's Resume 20130216@Koedolug

Grub2Grub2の情報源

● GNU GRUB Manual 2.00~rc1

http://www.gnu.org/software/grub/manual/grub.html

● 2ちゃんねるGrub2総合スレ

http://engawa.2ch.net/test/read.cgi/l inux/1346719943/l50● 良スレにもかかわらず過疎化...

● Ubuntu Grub2

https://help.ubuntu.com/community/Grub2

Page 5: Hatochan's Resume 20130216@Koedolug

/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 の残り時間を表示

Page 6: Hatochan's Resume 20130216@Koedolug

/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

アンコメントするとグラフィカル端末を無効にできる

Page 7: Hatochan's Resume 20130216@Koedolug

/etc/default/grub 主要なパラメータ(2ちゃんねるより)

● GRUB_DISABLE_LINUX_UUID=true

Linuxにroot=UUID=xxxパラメータを渡したくない場合にアンコメント

● GRUB_GFXMODE

画面の解像度を指定 (PCのグラフィックカードが対応する解像度を指定)ブートメニューのテキストにのみ適用される

● GRUB_DISABLE_LINUX_RECOVERY=true

リカバリーモードをメニューに表示するかを指定するリカバリーオプションを特定のカーネルだけに表示させたいなら /etc/grub/40_customに専用のエントリーを作成する必要がある

● GRUB_BACKGROUND

背景画像を指定

● GRUB_DISABLE_OS_PROBER=”true”

他のパーティションにOS(W indows, Linux, OSX, Hurdなど)が存在するか検出するか否かを指定する。

Page 8: Hatochan's Resume 20130216@Koedolug

/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に書き込むためにはこのファイルや他のカスタム   ファイルは実行可能である必要がある

Page 9: Hatochan's Resume 20130216@Koedolug

isoisoイメージファイルを直接起動してみた前提前提条件

● 低スペックNotePC(Asus X101CH)

CPU:Intel Atom N2600(1.6GHz)メモリ:1GB(固定←MB直付)ストレージ:SSD(64GB) SATA2

● Grub2はLubuntu 12.04LTS上に

kernel 3.7.8grub2 1.99-21ubuntu3.9/dev/sda5をext4フォーマット

● isoイメージファイルは(hd0,5)/isoに格納● /etc/grub.d/40_custom以外触らない● 各LiveCD Linuxのisolinux.cfgを参考

Page 10: Hatochan's Resume 20130216@Koedolug

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の記述 }

}

Page 11: Hatochan's Resume 20130216@Koedolug

SlaxSlax 7.0.4の記述

menuentry 'Slax Japanese 7.0.4 ' {

insmod part_msdos

insmod ext2

set isofi le="/iso/slax-Japanese-7.0.4-i486.iso"

search --no-floppy --fi le --set=root $ isofi le

loopback loop (hd0,5)$ isofi le

l inux (loop)/slax/boot/vmlinuz from=$ isofi le slax.flags=perch,xmode nopersistent noe ject noprompt noatime ro

initrd (loop)/slax/boot/initrfs. img

}

Page 12: Hatochan's Resume 20130216@Koedolug

PorteusPorteus 2.0RC2の場合

menuentry 'Porteus 2.0RC2 ' {

insmod part_msdos

insmod ext2

set isofi le="/iso/Porteus-v2.0-rc2-i486.iso"

search --no-floppy --fi le --set=root $ isofi le

loopback loop (hd0,5)$ isofi le

l inux (loop)/boot/sysl inux/vmlinuz from=$ isofi le noswap kmap= jp autoexec=xconf

initrd (loop)/boot/syslinux/initrd.xz

}

Page 13: Hatochan's Resume 20130216@Koedolug

Puppy LinuxPuppy Linux 5.4の場合(Precise/Slacko)

menuentry 'Puppy Precise 5.4.3 ' {

set root=(hd0,5)

set isofi le="/iso/precise-5.4.3.iso"

search --no-floppy --fi le --set=root $ isofi le

loopback loop (hd0,5)$ isofi le

l inux (loop)/vmlinuz boot=/iso/precise-5.4.3.iso noprompt noe ject pdev1=sda5 plang= ja pkeys= jp106 pupsfs=(loop)/puppy_precise_5.4.3.sfs

initrd (loop)/initrd.gz

}

Precise及びSlackoの両方で、sfsファイルを読み込んで、直後にkernel Panicで起動できず...

Page 14: Hatochan's Resume 20130216@Koedolug

TinyCoreTinyCore 4.7.4の場合

menuentry 'TinyCore 4.7.4 ' {

insmod part_msdos

insmod ext2

set root=(hd0,5)

set isofi le="/iso/TinyCore-4.7.4.iso"

search --no-floppy --fi le --set=root $ isofi le

loopback loop (hd0,5)$ isofi le

l inux (loop)/boot/vmlinuz boot=/iso/TinyCore-4.7.4.iso noprompt noe ject loglevel=3 cde waitusb=5

initrd (loop)/boot/core.gz

}

なぜかX window systemが起動しない...あらためてX関連のパッケージを手動で読みこめば起動

Page 15: Hatochan's Resume 20130216@Koedolug

SystemRescueSystemRescue 3.3.0の場合

menuentry 'System Rescue 3.3.0 ' {

set root=(hd0,5)

set isofi le="/iso/systemrescuecd-x86-3.3.0.iso"

loopback loop (hd0,5)$ isofi le

l inux (loop)/isol inux/rescue32 setkmap= jp isoloop=$ isofi le dostartx

initrd (loop)/isolinux/initram.igz

}

Page 16: Hatochan's Resume 20130216@Koedolug

その他のLiveCDLiveCD Linux

● 次のワードで検索するといくつかヒット

grub2 boot iso image● 各LiveCD LinuxのフォーラムでGrub2から

直接起動する試みをしているが...

● Ubuntuのサイトが参考になる● Grub2/ISOBoot

https://help.ubuntu.com/community/Grub2/ISOBoot

● Grub2/ISOBoot/Examples

https://help.ubuntu.com/community/Grub2/ISOBoot/Examples

Page 17: Hatochan's Resume 20130216@Koedolug

Grub2Grub2からisoイメージファイルを直接起動するために...

● LiveCD Linux毎に記述が異なり、現在のところ非常に難しい

● ベースとなるディストロにより記述の傾向は似ている気がする(本人の感想です)

● ベースのないオリジナルのディストロだと失敗する可能性が大きい

● とりあえずの結論:

Grub2Grub2でのisoイメージファル直接起動は発展途上発展途上