Windows VistaのブートローダからのLinuxの起動

Windows VistaとLinuxのデュアルブートには、2種類の方法があります。
  1. Linuxをインストールする際に、GRUBをMBR(マスターブートレコード) にインストールし、これで切替える方法
  2. LinuxのブートローダGRUBを/dev/sda3など、/bootパーティションに インストールし、VistaのブートローダからGRUBを呼び出す方法
ここでは、2番目の方法を紹介します。

【参考情報】

前提

Windows Vistaがインストールされており、その後、Linuxをインストールする。 パーティションは次のとおり。
sda1Cドライブ
sda2Dドライブ
sda3/boot
sda4LVMでLinuxが入る

Linuxのインストーラでは、GRUBを/dev/sda3にインストールする。 インストール終了後、このままではLinux側が起動できないので、インストー ルCDを使って、レスキューモードで起動する。

boot: linux rescue

起動できたら、/dev/sda3にあるブートイメージを抽出する。ここでは、 linux.imgと言うファイル名(任意)とする。"bs=512 count=1"は決まった定 数である。

# dd if=/dev/sda3 of=linux.img bs=512 count=1

linux.imgをUSBフラッシュメモリ等に移す。ネットワークが使えれば、 scpでコピーできるし、USBを認識できれば、そのままコピーしてもよい。

# scp linux.img user@192.168.0.10:
または
# mount -t vfat /dev/sdb1 /mnt
# cp linux.img /mnt/

とにかく、USBフラッシュメモリの中に、linux.imgをコピーできたとする。

Vistaの設定

Vistaを起動し、USBフラッシュメモリ中のlinux.imgをCドライブの直下にコピー する。この場所は、ブートローダの設定で指定するので、別に置く場合は、パ スを指定することになる。

管理者モードでコマンドプロンプト(アクセサリの中)を起動する。 これは、メニューで右ボタンを押せば起動の仕方を選べる。 bcdeditコマンドで、Linux用のブートエントリを作成していく。

  1. bcdeditコマンドで、現在の設定をみる

    C:\Windows\system32>bcdedit
    
  2. ntldrエントリーをコピーする

    C:\Windows\system32>bcdedit /copy {ntldr} /d "Linux"
    エントリは {a897c754-c895-11db-8dc6-000c29393d0c} に正常にコピーされました。
    
    /d はdescriptionのdだと思う。これで、"Linux"と言うラベルを作る。 任意の文字列を指定してよい。
  3. {から}までの英数字をコピーしておく。この文字列が識別IDとなる。

  4. 識別IDのエントリに、パーティション情報を設定する

    C:\Windows\system32>bcdedit /set {a897c754-c895-11db-8dc6-000c29393d0c} device partition=C:
    
    partition=C:はntldrのあるパーティションを指定します。Vistaのみがインス トールされているならば、C:でしょう。
  5. Linuxのブートイメージの位置を指定します。C:ドライブ直下に置いて いるならば、\linux.imgです。

    C:\Windows\system32>bcdedit /set {a897c754-c895-11db-8dc6-000c29393d0c} path \linux.img
    
  6. メニューの最後にLinuxのエントリを追加する。

    C:\Windows\system32>bcdedit /displayorder {a897c754-c895-11db-8dc6-000c29393d0c} /addlast
    
  7. bcdeditコマンドで、設定を確認する。

    C:\Windows\system32>bcdedit
    

これで再起動すると、選択メニューが現れるはずです。


Last modified: Mon Feb 16 17:29:22 JST 2009