GRUBとデュアルブートとパーティション
GRUBのインストールと設定について。
DebianとArch Linuxをデュアルブートにしようと思い、
GRUBをどのようにインストールすればいいか調べました。
パーティションは次のようになっています。
/dev/sda MBR /dev/sda1 boot Debian / /dev/sda3 boot Arch / /dev/sda5 Debian Swap /dev/sda6 Arch Swap
【手順】
1. Debianをインストール
2. Debianのインストール時にGRUBをsda(MBR)にインストールした
3. Archのインストール
4. Archのインストール時にGRUBをsda3(Archのroot)にインストールした
このようにインストールすると、起動時にはMBRが読み込まれ、
Debianをインストールする時に入れたGRUBが起動します。
そのため、何も設定をしていない場合は、ArchはGRUBの起動メニューに
表示されないことになります。
したがって次に、ArchがGRUBのメニュリストに表示されるように、
Debianを起動し、/boot/grub/menu.lstの編集を行います。
title Debian GNU/Linux, kernel 2.6.26-2-686 root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-686 root=/dev/sda1 ro quiet initrc /boot/initrc.img-2.6.26-2-686 title Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode) root (hd0,0) kernel /boot/mvlinuz-2.6.26-2.686 root=/dev/sda2 ro single initrc /boot/initrc.img-2.6.26-2-686 # ここから追加する # Arch Linuxの設定 title Arch Linux root (hd0,2) # chainloaderでロードする # ここを上のDebianと同様に # kernel .. # としてロードするとロードできず失敗する。 # おそくら、パーティションの先頭にGRUBをインストールしているため。 # したがって、GRUBをインストールした場合、 # chainloaderで起動する必要があるよう chainloader +1
Swap領域を作るのには論理パーティションを使いました。
パティションには
* 基本パーティション(基本領域) * 拡張パーティション(拡張領域) * 論理パーティション(論理領域)
があります。
基本パーティションはひとつのディスクにつき4つまで作成できます。
ディスクから直接起動するOSの起動部分はこの基本パーティションに
置かなければいけません。
拡張パーティションはひとつのディスクにひとつのみ作成可能で、
拡張パーティションの中に
論理パーティションを16まで作成できます。
論理領域は必ず連続していなければなりません。
拡張領域を使った場合は、基本領域は3つまでしか作成できなくなります。
ですので、Linuxをインストールするときに手動でパーティションをするとき、
そのパーティションを基本領域にするか、論理領域にするか決めますが、
拡張パーティションにするかどうかの選択がでないのはこのためです。
論理領域にしたら、自動でその論理領域が拡張領域に含まれていると
みなされます。
上の例では
----------------------- MBR /dev/sda MBR ----------------------- 基本領域 /dev/sda1 Debian / ----------------------- 基本領域 /dev/sda3 Arch / ----------------------- 拡張領域 /dev/sda5 Debian Swap /dev/sda6 Arch Swap
となっています。
【Archの疑問点】
ArchLinuxでGRUBをインストールする時、
インストール先として
/dev/sda /dev/sda /dev/sda1 /dev/sda3 /dev/sda5 /dev/sda6
とインストール先が出てきました。
このとき、もしMBRにGRUBをインストールしようとすると
上から二番目の/dev/sdaにインストールしなければいけないようです。
なぜ、上の二つに/dev/sdaと同じものが出てきているのか謎です。。
なんとなく、
https://wiki.archlinux.org/index.php/Beginners%27_Guide#.2Fetc.2Fpacman.d.2Fmirrorlist
のページに書いてある
Warning: Make sure to install GRUB on /dev/sdX and not /dev/sdX#! This is a common mistake.
が関係ある気がしますが、sda#とは書かれていなかったので、どうなっているのか解りません