hatochan's resume 20130216@koedolug
TRANSCRIPT
Grub2Grub2ででLiveCD Linux LiveCD Linux
isoisoイメージファイルをイメージファイルを直接起動してみた直接起動してみた
20132013年年22月月1616日日
はとちゃん(羽鳥健太郎)はとちゃん(羽鳥健太郎)[email protected]@hatochan.dyndns.org
なんでGrub2Grub2なのか
● 前回オフで、仮想環境(VirtualBox)上でLiveCD Linuxを起動させたら、NetPCのスペックがあまりに低くて動かない
● NetPC上で、簡単にLiveCD Linuxを試す方法はないのか
● 最近、正式に2.0になり多くのディストロに採用されはじめたGrub2では、
isoisoイメージファイルを直接起動できるらしい!!
● まずは試してみよう (^^ゞ
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イメージファイルを直接起動直接起動 ← ここ重要
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
/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 の残り時間を表示
/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
アンコメントするとグラフィカル端末を無効にできる
/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など)が存在するか検出するか否かを指定する。
/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に書き込むためにはこのファイルや他のカスタム ファイルは実行可能である必要がある
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を参考
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の記述 }
}
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
}
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
}
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で起動できず...
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関連のパッケージを手動で読みこめば起動
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
}
その他の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
Grub2Grub2からisoイメージファイルを直接起動するために...
● LiveCD Linux毎に記述が異なり、現在のところ非常に難しい
● ベースとなるディストロにより記述の傾向は似ている気がする(本人の感想です)
● ベースのないオリジナルのディストロだと失敗する可能性が大きい
● とりあえずの結論:
Grub2Grub2でのisoイメージファル直接起動は発展途上発展途上