SlideShare a Scribd company logo
Grub2 で
    LiveCD Linux
iso イメージファイルを
   直接起動してみた

      2013年2月16日

   はとちゃん(羽鳥健太郎)
  hatori@hatochan.dyndns.org
なんで Grub2なのか
           Grub2
●   前回オフで、仮想環境(VirtualBox)上で
    LiveCD Linuxを起動させたら、NetPCの
    スペックがあまりに低くて動かない
●   NetPC上で、簡単にLiveCD Linuxを試す
    方法はないのか
●   最近、正式に2.0になり多くのディストロ
    に採用されはじめたGrub2では、
    isoイメージファイルを直接起動
    iso
    できるらしい!!
●
    まずは試してみよう (^^ゞ
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
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
/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_RECOVER Y=true
    リカバリーモードをメニューに表示するかを指定する
    リカバリーオプションを特定のカーネルだけに表示させたいなら
    /etc/grub/40_custom に専用のエントリーを作成する必要がある
●
    GRUB_BACKGROUND
    背景画像を指定
●
    GRUB_DISABLE_OS_PROBER=”true”
    他のパーティションにOS(Windows, 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に書き込むためにはこのファイルや他のカスタム
       ファイルは実行可能である必要がある
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を参考
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の記述
    }
}
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
 }
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
 }
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で起動できず...
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関連のパッケージを手動で読みこめば起動
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
 }
その他の 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
Grub2からisoイメージファイル
Grub2
   を直接起動するために...
●   LiveCD Linux毎に記述が異なり、現在の
    ところ非常に難しい
●   ベースとなるディストロにより記述の 傾向
    は似ている気がする(本人の感想です)
●   ベースのないオリジナルのディストロだと
    失敗する可能性が大きい
●   とりあえずの結論:
     Grub2でのisoイメージファル
     Grub2
        直接起動は 発展途上

More Related Content

What's hot

20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
 
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
Satoshi Kume
 
覚えておきたい! zypper コマンドの使い方
覚えておきたい! zypper コマンドの使い方覚えておきたい! zypper コマンドの使い方
覚えておきたい! zypper コマンドの使い方
Fuminobu Takeyama
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
Atsushi Tadokoro
 

What's hot (20)

YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
 
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
 
boot2docker upgrade
boot2docker upgradeboot2docker upgrade
boot2docker upgrade
 
UEFIで始めるLinux From Scratch
UEFIで始めるLinux From ScratchUEFIで始めるLinux From Scratch
UEFIで始めるLinux From Scratch
 
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
Rancherで作る お手軽コンテナ運用環境!! ~ Kubenetes & Mesos 牧場でコンテナ牛を飼おう!~
 
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2017 Tokyo/Fall】
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2017 Tokyo/Fall】LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2017 Tokyo/Fall】
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2017 Tokyo/Fall】
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
 
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみたCybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
 
A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0A_road_to_AMBER_simulations_ver_1.0
A_road_to_AMBER_simulations_ver_1.0
 
UEFIベアメタルプログラミング
UEFIベアメタルプログラミングUEFIベアメタルプログラミング
UEFIベアメタルプログラミング
 
覚えておきたい! zypper コマンドの使い方
覚えておきたい! zypper コマンドの使い方覚えておきたい! zypper コマンドの使い方
覚えておきたい! zypper コマンドの使い方
 
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
XenServerとZFSストレージでサーバ仮想化 - OSC2011 Tokyo/Spring 自宅SAN友の会(後半)
 
自宅サーバ仮想化
自宅サーバ仮想化自宅サーバ仮想化
自宅サーバ仮想化
 
今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情今時のLinuxにおけるGPUエンコード事情
今時のLinuxにおけるGPUエンコード事情
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
ちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxをちょっと古いマシンにLinuxを
ちょっと古いマシンにLinuxを
 
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
 
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
20160827 第24回シェル芸勉強会LT Bash on Windows環境非破壊ハンズオン
 
UEFI向け自作OSの紹介
UEFI向け自作OSの紹介UEFI向け自作OSの紹介
UEFI向け自作OSの紹介
 

Similar to Hatochan's Resume 20130216@Koedolug

今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
Takuto Matsuu
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
smokey monkey
 

Similar to Hatochan's Resume 20130216@Koedolug (20)

initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみたqemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみた
 
openSUSE42.2 on Windows Tablet T100TA
openSUSE42.2 on Windows Tablet T100TAopenSUSE42.2 on Windows Tablet T100TA
openSUSE42.2 on Windows Tablet T100TA
 
とある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱとある帽子の大蛇料理Ⅱ
とある帽子の大蛇料理Ⅱ
 
Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門Ubuntuで始めるコンテナ技術入門
Ubuntuで始めるコンテナ技術入門
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
Lxc cf201207-presen
Lxc cf201207-presenLxc cf201207-presen
Lxc cf201207-presen
 
今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて今最もアツイdistribution Gentoo Linuxについて
今最もアツイdistribution Gentoo Linuxについて
 
systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンド
 
カーネルVm関西その参lt
カーネルVm関西その参ltカーネルVm関西その参lt
カーネルVm関西その参lt
 
OpenSolaris Printing Environment
OpenSolaris Printing EnvironmentOpenSolaris Printing Environment
OpenSolaris Printing Environment
 
FreeBSD Desktop
FreeBSD DesktopFreeBSD Desktop
FreeBSD Desktop
 
KVM+cgroup
KVM+cgroupKVM+cgroup
KVM+cgroup
 
Osc10do linux nextstep
Osc10do linux nextstepOsc10do linux nextstep
Osc10do linux nextstep
 
第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西第一回コンテナ情報交換会@関西
第一回コンテナ情報交換会@関西
 
Gingerbread
GingerbreadGingerbread
Gingerbread
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Yocto Project ハンズオン / 参加者用資料
Yocto Project ハンズオン / 参加者用資料Yocto Project ハンズオン / 参加者用資料
Yocto Project ハンズオン / 参加者用資料
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)カーネルモジュールプログラミング超入門 #1(仮)
カーネルモジュールプログラミング超入門 #1(仮)
 

More from Kentaro Hatori

Osc2013北海道 opendata trend
Osc2013北海道 opendata trendOsc2013北海道 opendata trend
Osc2013北海道 opendata trend
Kentaro Hatori
 
Osc2013 tokyo spring 小江戸らぐプレゼン資料
Osc2013 tokyo spring 小江戸らぐプレゼン資料Osc2013 tokyo spring 小江戸らぐプレゼン資料
Osc2013 tokyo spring 小江戸らぐプレゼン資料
Kentaro Hatori
 

More from Kentaro Hatori (16)

地方版IoT推進ラボとCode for Japanとのミートアップを
地方版IoT推進ラボとCode for Japanとのミートアップを地方版IoT推進ラボとCode for Japanとのミートアップを
地方版IoT推進ラボとCode for Japanとのミートアップを
 
How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
 How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
How to make multi-boot USB drive for LiveCD iso images on EFI/UEFI and BIOS
 
WindowsにLinux超簡単安全インストール
WindowsにLinux超簡単安全インストールWindowsにLinux超簡単安全インストール
WindowsにLinux超簡単安全インストール
 
Booting directly opensuse iso file by grub2 @ openSUSE Asia Summit2015
Booting directly opensuse iso file by grub2 @ openSUSE Asia Summit2015Booting directly opensuse iso file by grub2 @ openSUSE Asia Summit2015
Booting directly opensuse iso file by grub2 @ openSUSE Asia Summit2015
 
ChromebookにLinuxをインストールしてみた
ChromebookにLinuxをインストールしてみたChromebookにLinuxをインストールしてみた
ChromebookにLinuxをインストールしてみた
 
ディストロユーザ会と地域ユーザグループの素敵な関係
ディストロユーザ会と地域ユーザグループの素敵な関係ディストロユーザ会と地域ユーザグループの素敵な関係
ディストロユーザ会と地域ユーザグループの素敵な関係
 
ダイソーでWiMAX用 パラボラアンテナ 作ってみた
ダイソーでWiMAX用 パラボラアンテナ 作ってみたダイソーでWiMAX用 パラボラアンテナ 作ってみた
ダイソーでWiMAX用 パラボラアンテナ 作ってみた
 
OSGeo-Liveをハックする
OSGeo-LiveをハックするOSGeo-Liveをハックする
OSGeo-Liveをハックする
 
中古コンデジを活用して勉強会の楽しさを伝える
中古コンデジを活用して勉強会の楽しさを伝える中古コンデジを活用して勉強会の楽しさを伝える
中古コンデジを活用して勉強会の楽しさを伝える
 
ディストロの価値の作り方 at Osc2014tokyo fall
ディストロの価値の作り方 at Osc2014tokyo fallディストロの価値の作り方 at Osc2014tokyo fall
ディストロの価値の作り方 at Osc2014tokyo fall
 
異能vationにチャレンジのお勧め
異能vationにチャレンジのお勧め異能vationにチャレンジのお勧め
異能vationにチャレンジのお勧め
 
Pogoplug mobileでownCloudに挑戦してみた
Pogoplug mobileでownCloudに挑戦してみたPogoplug mobileでownCloudに挑戦してみた
Pogoplug mobileでownCloudに挑戦してみた
 
Osc2013北海道 opendata trend
Osc2013北海道 opendata trendOsc2013北海道 opendata trend
Osc2013北海道 opendata trend
 
川越と小江戸らぐの紹介
川越と小江戸らぐの紹介川越と小江戸らぐの紹介
川越と小江戸らぐの紹介
 
Osc2013 tokyo spring 小江戸らぐプレゼン資料
Osc2013 tokyo spring 小江戸らぐプレゼン資料Osc2013 tokyo spring 小江戸らぐプレゼン資料
Osc2013 tokyo spring 小江戸らぐプレゼン資料
 
Hatochan's Resume 20121215@koedolug
Hatochan's Resume 20121215@koedolugHatochan's Resume 20121215@koedolug
Hatochan's Resume 20121215@koedolug
 

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 直接起動は 発展途上