More Related Content
Similar to Hatochan's Resume 20130216@Koedolug (20)
More from Kentaro Hatori (16)
Hatochan's Resume 20130216@Koedolug
- 1. Grub2 で
LiveCD Linux
iso イメージファイルを
直接起動してみた
2013年2月16日
はとちゃん(羽鳥健太郎)
hatori@hatochan.dyndns.org
- 2. なんで Grub2なのか
Grub2
● 前回オフで、仮想環境(VirtualBox)上で
LiveCD Linuxを起動させたら、NetPCの
スペックがあまりに低くて動かない
● NetPC上で、簡単にLiveCD Linuxを試す
方法はないのか
● 最近、正式に2.0になり多くのディストロ
に採用されはじめたGrub2では、
isoイメージファイルを直接起動
iso
できるらしい!!
●
まずは試してみよう (^^ゞ
- 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. 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. /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. /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. /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. /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. 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. 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. 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=$isofile
slax.flags=perch,xmode nopersistent noe ject noprompt
noatime ro
initrd (loop)/slax/boot/initrfs.img
}
- 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 noswap
kmap=jp autoexec=xconf
initrd (loop)/boot/syslinux/initrd.x z
}
- 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 noprompt
noeject pdev1=sda5 plang= ja pkeys=jp106
pupsfs=(loop)/puppy_precise_5.4.3.sfs
initrd (loop)/initrd.g z
}
Precise及びSlackoの両方で、sfsファイルを読み込んで、
直後にkernel Panicで起動できず...
- 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.iso
noprompt noeject loglevel=3 cde waitusb=5
initrd (loop)/boot/core.g z
}
なぜかX window systemが起動しない...
あらためてX関連のパッケージを手動で読みこめば起動
- 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=$isofile
dostartx
initrd (loop)/isolinux/initram.ig z
}
- 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. Grub2からisoイメージファイル
Grub2
を直接起動するために...
● LiveCD Linux毎に記述が異なり、現在の
ところ非常に難しい
● ベースとなるディストロにより記述の 傾向
は似ている気がする(本人の感想です)
● ベースのないオリジナルのディストロだと
失敗する可能性が大きい
● とりあえずの結論:
Grub2でのisoイメージファル
Grub2
直接起動は 発展途上