日々様々なトラブルにハマっている、困ったシステム管理者の奮闘日記です。

GRUB2でLinuxマルチブートしてみる


Image

偶然立ち寄った中古PCショップで軽くて良さそうな中古PCを見つけた。
東芝のdynabook SS RX1 というやつ。
当時30万円以上していたと思ったが、同一モデルが大量にジャンク品として販売されていたので、即買い。

で、これで何をするかというと、

  • メインのPCは大きなモニタと周辺機器色々を繋いでいるので、ノートPCであるにも関わらず簡単にはあちこちに持っていけない状態。
    なので、このdynabookくんをサブ機として使いましょうか、と。
  • とはいえスペックはあまり高くない(CPU Core2 Duo, メモリ1.5GB)し、Windowsのライセンスもないので、ここはひとつLinuxのデスクトップ(GUI環境)を入れてみるか、と。
  • どうせなら、最近流行りのUbuntu、ならびにUbuntu/Debian派生のディストリビューションを複数インストールして各々の使い勝手を見てみたいなぁ。

などと考えた。

というわけで、それならマルチブートをしなければ、と色々調べてやってみた。

前提はこんな感じ。

  1. OSを切り替えるブートローダにはGRUB2を使う
  2. OSは全てLinux。Windowsは無し

 

用意するもの

  • Lubuntu, Xubuntu などのライブDVD
    今回はLubuntuのライブDVDを使った
  • インストールする予定の各ディストリビューションのインストールメディア
  • PC
  • DVDドライブ(PCにドライブがない場合)

 

作業手順

  1. 事前準備:パーティションを分割
  2. 最初のOSをインストール
  3. ブートローダのインストール
  4. 残りのOSをインストール

 


事前準備

パーティションの分割

・Lubuntu, Xubuntu などの、CD/DVDで起動しGRUB2を持つディストリビューションのライブメディアで起動
(今回はLubuntuのライブDVDを使用)

・[システムツール]-[Gparted]を起動

Image

・パーティションを作る
既に何かパーティションが作られている場合、一旦全部削除して一から作ったほうが判りやすいかも。
[Device] ->[Create Partition Table …]を選択

Image

 

・パーティションテーブルタイプ「msdos」を選択。

Image

 

・パーティションを作成
構成は以下の通りにしてみた。

  • Partition #1 基本 ext3 :ブートローダ用 (200MB)
  • Partiton #2 基本 Swap:スワップ用 (3GB) メモリ容量×2で見積り。下例では1GBで領域確保
  • 以下、拡張パーティションにして、OSの必要量だけパーティションを確保。

Image

パーティションの作成が終わったら、「適用」させるのを忘れずに。

 


最初のOSをインストール

インストールするOSのインストールメディアをセットして起動。普通にインストール作業を進める。

ただし、以下の注意点あり。

  • インストールするパーティションは、論理パーティション(/dev/sda5~。上図でいうとPartition #4~#8のどれか)に行う。
  • ブートローダは、マスタブートレコード(MBR)にはインストールせず、各パーディション(上図の例では/dev/sda4~/dev/sda8)にインストールする。

 


 ブートローダのインストール

最初のOSのインストールが終了したら、Lubuntu, Xubuntu などの、CD/DVDで起動しGRUB2を持つディストリビューションのライブメディアで起動。

以下、ターミナルでコマンド操作を行う。

1. sda1をマウント

#sudo mkdir /mnt/sda1
#sudo mount /dev/sda1 /mnt/sda1

 

2. MBRにGRUB2をインストール

#sudo grub-install --root-directory=/mnt/sda1 /dev/sda

 

3. chroot環境の構築

$cd /mnt/sda1
$sudo mkdir bin dev etc etc/default lib lib64 proc sys usr

※64bit環境のときのみlib64を作成

 

4. ライブDVDから関連ファイルをコピー

$sudo cp -p /etc/default/grub /mnt/sda1/etc/default
$sudo cp -rp /etc/grub.d /mnt/sda1/etc

 

5. GRUB関連ファイルの編集

$sudo vi /mnt/sda1/etc/default/grub
---------------------------------------------------
GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0  <------------ コメントアウト
GRUB_HIDDEN_TIMEOUT_QUIET=false
GRUB_TIMEOUT=-1
 :
GRUB_DISABLE_OS_PROBER=true  <------- この行追加
---------------------------------------------------
$sudo vi /mnt/sda1/etc/grub.d/40_custom
---------------------------------------------------
#!/bin/sh
exec tail -n +3 $0
menuentry "xubuntu" {  <------------- ここから追記。Xubuntuを入れた前提
insmod chain
set root=(hd0,5)  <------------------ dev/sda5にインストールしたので
chainloader +1
} <---------------------------------- ここまで追記
:
---------------------------------------------------

インストールしたOSが増えた場合、上記3行目(menuentry~)~7行目(})のブロックを追記していく。

 

6. chroot実行

$cd /mnt/sda1

$sudo mount --bind /bin /mnt/sda1/bin
$sudo mount --bind /dev /mnt/sda1/dev
$sudo mount --bind /lib /mnt/sda1/lib
$sudo mount --bind /lib64 /mnt/sda1/lib64
$sudo mount --bind /proc /mnt/sda1/proc
$sudo mount --bind /sys /mnt/sda1/sys
$sudo mount --bind /usr /mnt/sda1/usr

$sudo chroot /mnt/sda1

 

7. grub.cfgを生成
chrootした環境下でgrub-mkconfigを実行する。

$sudo grub-mkconfig -o /boot/grub/grub.cfg
$exit

 

8. 再起動
OS選択画面が表示され、OSを選択すると正しく起動することを確認。

Image

 

 


残りのOSをインストール

「最初のOSをインストール」の項でおこなった手順と同様に、そのほかのOSをインストールする。

その後、「ブートローダのインストール」の手順の「2.MBRにGRUB2をインストール」以外を実行。
(1.のmkdir /mnt/sda1はもう不要。)

 

以上


You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

AddThis Social Bookmark Button

Leave a Reply