ブートローダ

    1. ブートローダ
      1. GRUBとLILO
      2. WindowsXPとTurobolinux W8とのデュアルブート
      3. Linux複数OSのブート
      4. TurboLinuxS10とFreeBSD5.1のブート
      5. 補記

GRUBとLILO

Linuxを起動するための標準ブートローダがLILOからGRUBに代わったようにみうけられます。

LILO(Linux Loader)
GRUB(GNU Grand Unified Bootloader)


この状況のなかで、ああだこうだと考えるのですが、これから綴ることはGRUBとLILOのインストールが済んでいるという前提で話を推めます。想定してることは、それぞれのブートローダを理解することだけでなく、デュアルブート、トリプルブートが実現できればと。
まずブートローダをLILOに変更するには、

# /sbin/lilo

ブートローダをGRUBに変更するには、

# /sbin/gilo

です。
《 ■ groubのsingle起動 ■ 》
grubの起動画面からのシングルユーザモードでの起動手順です。以下はすべてキーボード操作です。

e

もう一度、

e

設定画面に変わります。カーソルを移動し、「single」を追記します。わたしの場合「1」ではだめでした。

kernel (hd0,0)/umlinuz root=/dev/hda1 single      ← 追記

設定が終れば bootします。

b


これでシングルユーザモードで起動することになります。

sh-2.05 #


《 ■ 設定ファイル例 ■ 》
次に、各設定ファイルを以下に掲げますが、パテーション構成は以下の前提です。

# fdisk -l
ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 5005
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1   *         1         8     64228+  83  Linux
/dev/hda2             9       645   5116702+  83  Linux
/dev/hda3           646      5005  35021700    5  拡張領域
/dev/hda5           646       772   1020096   82  Linux スワップ
/dev/hda6           773      1536   6136798+  83  Linux
/dev/hda7          1537      1790   2040223+  83  Linux
/dev/hda8          1791      2172   3068383+  83  Linux
/dev/hda9          2173      3446  10233373+  83  Linux
/dev/hda10         3447      5005  12522636   83  Linux

       /etc/lilo.conf
# BEGIN_BITMAP
# lilo-22.2-13 added "bitmap" entry
bitmap=/boot/lilo.bmp
bmp-table=40p,300p,,24,
bmp-colors=13,15,;15,8,,
bmp-timer=74,29,13,15,
# END_BITMAP
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=150
lba32
default=linux

image=/boot/vmlinuz
	label=linux
	initrd=/boot/initrd
	read-only
	root=/dev/hda2
      /boot/grub/grub.conf
# This file was converted from /etc/lilo.conf by gilo-0.92-6.
timeout 15
default 0
fallback 1
splashimage (hd0,0)/grub/splash.xpm.gz
# keymap for jp106
setkey doublequote at
--- 略 --------------
setkey bracketleft k7d

title linux
kernel (hd0,0)/vmlinuz root=0302
initrd (hd0,0)/initrd








以上ははLinuxOS単独の構成です。

WindowsXPとTurobolinux W8とのデュアルブート

次はPC機は違いますが、WindowsXPとlinuxのデュアルブートの構成です。

# fdisk -l
ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 5005
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1   *         1      2550  20482843+   c  Win95 FAT32 (LBA)
/dev/hda2          2551      5004  19711755    f  Win95 拡張領域 (LBA)
/dev/hda5          2551      3825  10241406    b  Win95 FAT32
/dev/hda6          3826      3833     64228+  83  Linux
/dev/hda7          3834      3896    506016   82  Linux スワップ
/dev/hda8          3897      4533   5116671   83  Linux
/dev/hda9          4534      5004   3783276   83  Linux

      /etc/lilo.conf
# BEGIN_BITMAP
# lilo-22.2-14 added "bitmap" entry
bitmap=/boot/lilo.bmp
bmp-table=40p,300p,,24,
bmp-colors=13,15,;15,8,,
bmp-timer=74,29,13,15,
# END_BITMAP
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=150
lba32
# gilo:password=enabled
default=dos    ←windowsが立ち上がるように指定
image=/boot/vmlinuz
	label=linux
	initrd=/boot/initrd
	read-only
	root=/dev/hda8

other=/dev/hda1
	label=dos
      /boot/grub/grub.conf
# This file was converted from /etc/lilo.conf by gilo-0.92-4.
timeout 15
password --md5 $xxxxxxxxxxxxxxxxxxxxxxxxxx9PqnRsKZi0
default 1      ←windowsが立ち上がるように指定
fallback 1
splashimage (hd0,5)/grub/splash.xpm.gz
# keymap for jp106
setkey doublequote at
--- 略 --------------
setkey bracketleft k7d

title linux
kernel (hd0,5)/vmlinuz root=0308
initrd (hd0,5)/initrd

title dos
chainloader (hd0,0)0+1







色の違う部位がデュアルブートで追記されています。
ここまでは、多くを考えることなく構成できます。むしろ、インストーラにお任せで構築できたといえます。ブートローダのインストール先もマスタブートレコード(MBR)で問題ありませんでした。
ここからはLinuxOSだけと、デュアルブートの違いを探りながら、トリプルブートにたどり着きたいと思います。

Linux複数OSのブート


# fdisk -l
ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 2501
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1   *         1         8     64228+  83  Linux
/dev/hda2             9        58    401625   82  Linux スワップ
/dev/hda3            59      2501  19623397+   5  拡張領域
/dev/hda5            59       886   6650878+  83  Linux
/dev/hda6           887       895     72261   83  Linux
/dev/hda7           896      1711   6554488+  83  Linux


ここからは結果報告です。基本的には最初にインストールしたリストリビュージョンはMBRにブートローダをインストールしました。その他のものは個々の/にインストールしました。
動作は、MBRのブートローダが起動し、個々のブートローダに渡され起動するという二段階起動になっています。すべてのOSをそれぞれ直接選択することができ、立ち上がればいいのですが、取り合えずの二段階起動です。

       /etc/lilo.conf
# BEGIN_BITMAP
# lilo-22.2-13 added "bitmap" entry
bitmap=/boot/lilo.bmp
bmp-table=40p,300p,,24,
bmp-colors=13,15,;15,8,,
bmp-timer=74,29,13,15,
# END_BITMAP
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=150
lba32
default=Turbolinux

image=/boot/vmlinuz
	label=Turbolinux
	initrd=/boot/initrd
	read-only
	root=/dev/hda5

	other=/dev/hda6
	label=RedHat
      /boot/grub/grub.conf
# This file was converted from /etc/lilo.conf by gilo-0.91-9.
timeout 15
default 0
fallback 1
splashimage (hd0,0)/grub/splash.xpm.gz
# keymap for jp106
setkey doublequote at
--- 略 --------------
setkey bracketleft k7d

title Turbolinux
kernel (hd0,0)/vmlinuz root=0305
initrd (hd0,0)/initrd

title RedHat
chainloader (hd0,5)0+1








Windows抜きで、いろいろ試しました。
Turbolinux Workstation8 (/dev/hda6)、Turbolinux Server8 (/dev/hdc2)、RedHat 8.0 (/dev/hda9)、Turbolinux Server7 (/dev/hda10)、Turbolinux Server6.5 (/dev/hda11)、FreeBSD 4.6.2 (/dev/hda2)を使い分けてみようというわけです。
ブートローダのインストールは前述の通りですが FreeBSDは「none」でいきました。
ブートローダはGRUBです。

# fdisk -l
ディスク /dev/hdc: ヘッド 16, セクタ 63, シリンダ 238216
ユニット = シリンダ数 of 1008 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hdc1   *         1     40634  20479504+  83  Linux
/dev/hdc3         81269    238216  79101792    5  拡張領域

ディスク /dev/hda: ヘッド 255, セクタ 63, シリンダ 7476
ユニット = シリンダ数 of 16065 * 512 バイト

 デバイス ブート   始点      終点  ブロック   ID  システム
/dev/hda1             1        12     96358+  83  Linux
/dev/hda2   *        13      2562  20482875   a5  FreeBSD
/dev/hda4          2563      7476  39471705    5  拡張領域
/dev/hda5          2563      2625    506016   82  Linux スワップ
/dev/hda6          2626      3007   3068383+  83  Linux
/dev/hda7          3008      3389   3068383+  83  Linux
/dev/hda8          3390      4026   5116671   83  Linux
/dev/hda9          4027      5301  10241406   83  Linux
/dev/hda10         5302      6384   8699166   83  Linux
/dev/hda11         6385      7476   8771458+  83  Linux

      /boot/grub/grub.conf
# This file was converted from /etc/lilo.conf by gilo-0.92-6.
#/dev/hda1  (hd0,0)  1台目のHDDの1番目のパーティション
#/dev/hda2  (hd0,1)  1台目のHDDの2番目のパーティション
#/dev/hdb0  (hd1,0)  2台目のHDDの1番目のパーティション
#/dev/hdb1  (hd1,1)  2台目のHDDの2番目のパーティション
#GRUBが直接カーネルを読み込めないOSを起動する場合に指定するには、chainloader。
#パーティションのブートセクタを読み込む場合は、+1と指定する。
#chainloader +1

timeout 15
default 0
fallback 1
splashimage (hd0,0)/grub/splash.xpm.gz
# keymap for jp106
setkey doublequote at
--- 略 --------------
setkey bracketleft k7d

title Turbolinux Workstation8 (/dev/hda6)
kernel (hd0,0)/vmlinuz root=0306
initrd (hd0,0)/initrd

title Turbolinux Server8 (/dev/hdc2)
kernel (hd1,0)/boot/vmlinuz root=1601
initrd (hd1,0)/boot/initrd

title RedHat 8.0 (/dev/hda9)
chainloader (hd0,8)0+1

title Turbolinux Server7 (/dev/hda10)
chainloader (hd0,9)0+1

title Turbolinux Server6.5 (/dev/hda11)
chainloader (hd0,10)0+1

title FreeBSD 4.6.2 (/dev/hda2)
root (hd0,1,a)
makeactive
chainloader +1


(2004年 01月 16日(Fri) 05:52:58 PM )

Linux(TurboLinuxS10/Fedora Core3)とFreeBSD5.1のブート

最後の更新から、ほぼ一年半になりました。ここで改めて追記するのは、説明不足の点を明確にするためです。
インストールしたOSはTurboLinuxS10とFedoraCore3とFreeBSD5.1です。これらのOSをマルチブートするのですが、久しぶりにマルチブートのインストールをしたので少々手こずってしましました。それは、最初にインストールしたTurboLinuxS10を「/」だけでインストールせず、他の「/home」や「/usr」を作成しインストールしたことでした。これではFedoraCore3を「/」だけでインストールしたとしても、立ち上げることができませんでした。結果としては、さてわかりにくいので、以下のように図にしました。これでOKです。つまりそれぞれのOSを一つのパテーションに納めるということです。経験値としてこうなりました。なぜそうなのかは理解できていません。
またハードディスクの最後部位のパテーションにわざわざ基本領域として「/dev/hda4 FreeBSD 」を持ってきたのはFreeBSDホームページのマニュアルによるものです。FreeBSDが領域を誤認する可能性があるという記事に習って設定したものです。
なお、FreeBSDのブートマネージャーは今回もインストールしませんでした。


このほどあらためてインストールした環境は以下です。

/dev/hda1 boot /dev/hda2 TrboLinuxS10 /dev/hda3 拡張領域 /dev/hda4 FreeBSD
/dev/hda5 Linux swap /dev/hda6 Fedora Core3

# fdisk -l
Disk /dev/hda: 41.1 GB, 41174138880 bytes
255 heads, 63 sectors/track, 5005 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes

 デバイス Boot      Start         End      Blocks   Id  System
/dev/hda1               1           8       64228+  83  Linux       ←boot
/dev/hda2               9        2557    20474842+  83  Linux        ←TrboLinuxS10
/dev/hda3            2558        3730     9422122+   5  拡張領域
/dev/hda4   *        3731        5005    10241437+  a5  FreeBSD         ←FreeBSD
/dev/hda5            2558        2684     1020096   82  Linux スワップ
/dev/hda6            2685        3700     7422122   82  Linux         ←Fedora Core3


実は、FreeBSDをHDDの---云々の前に、FreeBSDを「/dev/hda3」にインストールしたり、さらにVineLinux3.1をインストールしました。この段階でもうまくインストールしたOSは起動することができています。参考のために、メインのTurboLinuxS10マスタブートレコード(MBR)ファイルgrub.confを以下に掲げます。

      /boot/grub/grub.conf
# This file was converted from /etc/lilo.conf by gilo-0.95-6.
timeout 15
default 0
fallback 1
--- 略 -----

title TurbolinuxS10
kernel (hd0,0)/vmlinuz root=0306 quiet
initrd (hd0,0)/initrd

title FreeBSD 5.1-RELEASE(/dev/hda2)
root (hd0,1,a)
makeactive
chainloader +1

title Fedora Core 3
chainloader (hd0,2)0+1

title Vine Linux 3.1
chainloader (hd0,6)0+1


(2005年 05月 05日(Fri) 18:21:58 PM )

補記

《 ■ 参照URL   ※サイト内参照ページ    引用、参照書籍 ■ >
『マルチブートの仕方』
『Linux+Win9x+Grub HOWTO』

このページの作成にあたり、上記に掲げたURLや書籍を参考にしました。謝意を表します。具体的な引用については明記しました。内容の間違いや、誤字は筆者の責任であり、関係する参照先の責任ではありません。

top     home:top     server library:top     PHP PostgreSQL MySQL サンプルスクリプト     SiteMap     Open SiteMap