GRUB2でLinuxマルチブートしてみる
偶然立ち寄った中古PCショップで軽くて良さそうな中古PCを見つけた。
東芝のdynabook SS RX1 というやつ。
当時30万円以上していたと思ったが、同一モデルが大量にジャンク品として販売されていたので、即買い。
で、これで何をするかというと、
- メインのPCは大きなモニタと周辺機器色々を繋いでいるので、ノートPCであるにも関わらず簡単にはあちこちに持っていけない状態。
なので、このdynabookくんをサブ機として使いましょうか、と。 - とはいえスペックはあまり高くない(CPU Core2 Duo, メモリ1.5GB)し、Windowsのライセンスもないので、ここはひとつLinuxのデスクトップ(GUI環境)を入れてみるか、と。
- どうせなら、最近流行りのUbuntu、ならびにUbuntu/Debian派生のディストリビューションを複数インストールして各々の使い勝手を見てみたいなぁ。
などと考えた。
というわけで、それならマルチブートをしなければ、と色々調べてやってみた。
前提はこんな感じ。
- OSを切り替えるブートローダにはGRUB2を使う
- OSは全てLinux。Windowsは無し
用意するもの
- Lubuntu, Xubuntu などのライブDVD
今回はLubuntuのライブDVDを使った - インストールする予定の各ディストリビューションのインストールメディア
- PC
- DVDドライブ(PCにドライブがない場合)
作業手順
- 事前準備:パーティションを分割
- 最初のOSをインストール
- ブートローダのインストール
- 残りのOSをインストール
事前準備
パーティションの分割
・Lubuntu, Xubuntu などの、CD/DVDで起動しGRUB2を持つディストリビューションのライブメディアで起動
(今回はLubuntuのライブDVDを使用)
・[システムツール]-[Gparted]を起動
・パーティションを作る
既に何かパーティションが作られている場合、一旦全部削除して一から作ったほうが判りやすいかも。
[Device] ->[Create Partition Table …]を選択
・パーティションテーブルタイプ「msdos」を選択。
・パーティションを作成
構成は以下の通りにしてみた。
- Partition #1 基本 ext3 :ブートローダ用 (200MB)
- Partiton #2 基本 Swap:スワップ用 (3GB) メモリ容量×2で見積り。下例では1GBで領域確保
- 以下、拡張パーティションにして、OSの必要量だけパーティションを確保。
パーティションの作成が終わったら、「適用」させるのを忘れずに。
最初の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を選択すると正しく起動することを確認。
残りの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.
Leave a Reply