Web開発者の日常

主にプログラミング関連。たまに日常も綴ります。

Windows7とUbuntu10.04.1 LTSのデュアルブート

time 2011/07/18

ふと、サブで使っているパソコンにUbuntuを入れてみようと思い、Wubiを使ってみました。

デュアルブートが面倒なのでw

しかし… 折角SSDでディスクI/Oが速いはずなのにWubi経由なのでどうしても遅くなってしまうため、結局デュアルブートすることに・・・。

Ubuntu標準のGRUBブートローダーでMBRを書き換える方が楽ですが、Windows標準のブートローダー(Bootmgr)を消してしまうと、メーカー製のパソコンの場合リカバリユーティリティが使えなくなるそうなので、多少手間ですがBootmgrを使ってデュアルブートさせます。

この手順で重要なのは、

  • リカバリ領域など、OS以外がインストールされているパーティションを触らない
  • LinuxからWindowsがインストールされているパーティションを触らない
  • GRUBブートローダーをインストールする場所に気をつける

上記の3点です。間違うと既存のWindowsがブート出来なくなることもあるので要注意

—-Ubuntu10.04.1 LTSとWindows 7(+Vista)で確認していますが、失敗しても自己責任でお願いします—-

sponsored link

1.パーティションの空きを作る

Windowsで、コントロールパネル→管理ツール→コンピュータの管理→記憶域→ディスクの管理

コンピュータの管理

を開き、WindowsのOSがインストールされているパーティションを

右クリック→ボリュームの縮小 [Vistaの場合:ボリュームの圧縮]

Ubuntuで使う分だけ縮小させます。

縮小できる容量が少ない場合は、ページファイルの無効化、システムの復元の無効化、不要なファイルの削除、デフラグをすると効果があります。特に最初の2つは効果大です。

コンピュータの管理

縮小後。

2.Ubuntuのインストール

Ubuntuをインストールする容量の未割り当て領域ができたことを確認したら、再起動してUbuntuの Live CD (焼き方は省略)からブートします。

ようこそ

インストールではなく、試用として起動します

デスクトップにあるインストールアイコンからインストーラーを起動します。

パーティションの設定までは、淡々と答えていきます。

タイムゾーンの設定で、コンピュータの時間をUTCとして読み込んでしまうためか9時間ほどズレますが、後で直せば良いので今はスルーします。

インストール-ディスクの準備

手動でパーティションを設定する

Ubuntuでは、パーティションの手動選択で、下記を参考に論理パーティションで分けます。

/dev/sda5 ext4 /boot

/dev/sda6 ext4 /(root)

/dev/sda7 swap

このとき、絶対にWindowsのパーティションは触らないようにします。

新しいパーティションの作成 新しいパーティションの作成

新しいパーティションの作成 パーティションの準備中

/bootはアップデート時の一時ファイル保存のことも考慮し、64MB (→256MB)に設定しました。

インストール準備完了

まだインストールは押さない

また、最後の画面でAdvanced…(拡張…)ボタンをクリックし、GRUBブートローダーのインストール位置を、/bootパーティション(上記の場合は、/dev/sda5)に変更することを忘れずにして下さい。忘れるとMBRが上書きされて、メーカー製のパソコンの場合ドライブ全体のリカバリが必要になります。

詳細オプション

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

もし、/dev/sda5をGRUBのインストール先として指定できない場合(OKボタンが押せない)は、手動でインストールする必要がある為、ブートローダーのインストールからチェックを外してください。

インストールが完了しました

試用を続ける

まだ作業が残っているため、試用を続けます。

(3.GRUBブートローダーのインストール)

UbuntuのインストーラーでGRUBがインストールできなかった場合のみ、手動でインストールします。

インストーラーからGRUBをインストールできた場合は、ここは読み飛ばしてください。

もし、Ubuntuのインストーラから/dev/sda5(/bootに指定したパーティション)をGRUBのインストール先に指定できなかった場合は、GRUBをインストールしないを選択し、下記のようにインストールします。

端末の起動:アプリケーション→アクセサリ→端末 or Ctrl+Alt+T

# Ubuntuをインストールしたパーティションをマウント
sudo mount /dev/sda6 /mnt

# /bootに指定したパーティションをマウント
sudo mount /dev/sda5 /mnt/boot

# インストールに必要なディレクトリをマウント
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

# /mntでchroot
sudo chroot /mnt

# grub.cfg(ブートローダーに表示されるリスト)の更新
update-grub

# /bootへGRUBのインストール
grub-install /dev/sda5
MBR以外へインストールすることを推奨しない旨のメッセージが表示される。

# --forceパラメータを付加することでインストールが可能
grub-install --force /dev/sda5

# chrootから出る
exit

# 端末終了
exit

4.PBRのコピー

GRUBをインストールした先のPBR(パーティションブートレコード)をコピーします。

PBRはパーティションの先頭512byteに書きこまれているので、ddコマンドで先頭512byteだけ/home/ubuntu/ubuntu.pbrというファイルにコピーします。

ifをofにタイポすると、GRUBを再インストール↑【3】することになるので、要注意。

端末

 

sudo dd if=/dev/sda5 of=ubuntu.pbr bs=512 count=1

次に、コピーしたubuntu.pbrをWindowsのCドライブ直下に置きます。

Nautilus端末から操作してもできますが、間違ってリカバリ領域に書き込むなどすると困るのでNautilusでコピペします。

5.Bootmgrへ追加

また、Windows標準のブートローダーにUbuntuかWindowsかを選択させるメニューを表示させるために、bcdeditコマンドで設定する必要があります。

bcdeditを使うためには、コマンドプロンプトを管理者権限で実行してください。

最低限、必要なコマンドだけを説明します。(詳細は、bcdedit /?でヘルプが見れます)

コマンドプロンプト

○作成方法

# エントリ追加ダブルクオーテーションの中は"任意の名前"
# {GUID}をコピーしておく。
bcdedit /create /d "Ubuntu" /application bootsector
エントリ {GUID} は正常に作成されました。

# Cの部分はubuntu.pbrが置いてあるドライブレター
bcdedit /set {GUID} device partition=C:

# ブートイメージのパス指定
bcdedit /set {GUID} path \ubuntu.pbr

# ブートメニューの最後へ追加
bcdedit /displayorder {GUID} /addlast

●削除方法

# {GUID}で登録されているブートエントリを削除
bcdedit /delete {GUID}

●値の削除

# pathの値が削除される
bcdedit /deletevalue {GUID} path

==バグの対処==

デュアルブートする際に、スタートアップの修復で勝手に英語表記+日本語文字化けするバグがあるので注意。(Vistaで発生)
その際は、
bcdedit /deletevalue {bootmgr} path
で、
>path                         \bootmgr
を削除すると直る場合があります。
コマンドプロンプト

正常に登録されました

再起動すると、OSの選択画面が表示されます。

ちなみに、コントロールパネル→システム→システムの詳細設定→起動と回復

から、規定のオペレーティングシステムと選択時間の設定ができます。

(もちろんbcdeditでもできますが、説明は省略します)

これで、Windows 7とUbuntu 10.04.1のデュアルブートができました。

6.元へ戻す方法

Ubuntuが要らなくなった場合は、

  1. Ubuntu側の必要なデータをバックアップ
  2. Windowsの方からパーティションを削除→未割り当て領域に
  3. Windowsのパーティションと統合し
  4. bcdeditでUbuntuのエントリを削除
  5. ブートイメージubuntu.pbrの削除

上記の手順で消せます。

7.Ubuntuが起動しなくなった場合

LiveCDをBootし、F6キーを押します。

一番上の「インストールせずにUbuntuを試してみる(T)」を選択している状態で、起動オプションの

boot=capsper

# Ubuntuをインストールしたパーティション
root=/dev/sda6

に変更すると、HDDにインストールされたUbuntuが起動します。

GRUBが問題で起動できなくなった場合に有効です。

Ubuntuが起動したら、

sudo update-grub

でgrub.cfgを更新すると直る場合があります。

[追記]11.04にアップデートした際に、Ubuntuが起動できなくなりました。

GRUBを再インストール【3】してPBRをコピーし直す【4】ことで正常にGRUBから起動できるようになります。

8.Windowsを再インストールする場合(Vista, 7)

試していないため、わかりませんが…

Ubuntuのパーティションを上書きしないように再インストールやリカバリをして、Windowsのインストール後に【4】【5】を実行すれば、またBootmgrからUbuntuが起動できるようになると思います。

パーティションの構成が変わったときは、LiveCD経由でHDDのUbuntuを起動して、update-grubコマンドを実行することで改善するかもしれません。

9.Ubuntuを再インストールする場合

これも実際に試していないため、推測ですが…

最初にUbuntuをインストールした時と同じように、WindowsのパーティションとMBRは触らないように再インストールし、(GRUBがインストールできなかった場合【3】+)【4】でPBRのコピーを作成し、Bootmgrに登録されてある通りに配置します。


これ以外の方法にも、grub4dosを利用する方法などがありますが、grub4dosで使用されているGRUBはUbuntu 10.10以降で採用されているファイルシステムを認識できないためUbuntuでGRUB2をインストールしてチェーンロードをさせなければいけないなど手間なので、上記の方法にしました。

しかし、上記の方法で問題が発生することがあるかもしれないため、自己責任でお試しください。

それでは、今回はこの辺で(`・ω・´)ノシ

参考URL

sponsored link

ブックマーク



アーカイブ

2017年3月
« 5月    
 12345
6789101112
13141516171819
20212223242526
2728293031