less than 1 minute read

The original post is https://iomz.hatenadiary.org/entry/20100406/1270561509 and was migrated to this site.

私のiPhoneはいわゆる新ブートRom搭載なのでTethered Jailbroken状態にある。 再起動する度に母艦からbrackraInやSnowBreeze等でロードする必要がある。 普段はUbuntu機を持ち歩いているので、出先でリブートが掛かるとリロード出来ずにiPhoneが使いものにならなくなってしまう。

なのでWindows 7を入れてデュアルブートにしてみた。 WindowsにUbuntuを入れる場合は正常にブートローダが構築されるが、逆にUbuntuにWindowsを入れた場合は起動時に複数のOSを選択出来るようにブートローダ(ここではGRUB2)を再インストールしなくてはならない。

  1. UbuntuでWIndows用のパーティションを作り、NTFSにフォーマットする。
  2. ついでにデバイスとパーティションナンバーも確認しておく。
  3. 作ったパーティションにWIndowsをインストール。
  4. Ubuntu Desktop LIVE CDからUbuntu Desktopを起動する。
  5. GRUB2を再インストールする。

必要なもの

  • CD/DVDドライブ
  • Ubuntu Desktop LIVE CD

GRUBのバックアップ

Terminalを開いて

grub-install -v

GRUBのVersionを確認する。 Ubuntu 9.10はデフォルトでGRUB 1.97~beta4なので、一応バックアップをとっておく。

sudo cp /etc/default/grub /etc/default/grub.old
sudo cp -R /etc/grub.d /etc/grub.d.old
sudo cp -R /boot/grub /boot/grub.old
  • ここで一度GRUB 0.97に戻しておくと安定するかもしれないが、どちらでもいいと思う。

GRUBをパージ

sudo apt-get purge grub2 grub-pc

するとブートローダー不在のワーニングが出るのでGRUB 0.97をインストールしmenu.lstを生成する

sudo apt-get install grub
sudo update-grub

Ubuntuが入っているデバイスを/dev/sdaとして、(パーティションナンバーは含めない)

sudo grub-install /dev/sda

GPartedでパーティションを作成

今回使用したハードディスクは60GBだったので5GBをスワップ用のロジカルドライブ、30GBをUbuntu、25GBをWinsows用に割り当てることにした。 BIOS画面でブートデバイス選択に入り、適切なドライブを選択して”Try Ubuntu without any change to your computer”でEnter。

System>Administration下のGPartedでパーティションを構築する。 各割り当て領域が大き過ぎず小さすぎないように慎重にやる。

Disk UtilityでNTFSにフォーマット Windowsを入れるパーティションはNTFSのファイルシステムを使用するのであらかじめNTFSにフォーマットしておく。

ここでUbuntuとWindowsのパーティションを確認しておく。 ex)/dev/sda5 /dev/sdb1 など

Windowsをインストールする

Ubuntu LIVE CDと同様にWindows 7を起動する。 Custom Installを選び作成したWindows用のパーティションにインストールする。

GRUB2の再インストール

Windowsが正常に起動することを確認したら、もう一度Ubuntu Desktop LIVE CDから起動し、Terminalを開いて、Ubuntuが入っているデバイス(/dev/sdXYとする)をマウントする。

sudo mount /dev/sdXY /mnt

UbuntuをrootとしてGRUB2を再インストール(後ろの/dev/sdXにはパーティションナンバーを含まない)

sudo grub-install --root-directory=/mnt /dev/sdX

アンマウントする

sudo umount /mnt

/boot/grub/grub.cfgを更新してハードディスク内に入っているOSを自動的に探してGRUB2に登録する。こんな感じになるはず

% sudo update-grub
Generating grub.cfg ...
Found Debian background: Varun\_Pramanik\_GRUB2.png
Found linux image: /boot/vmlinuz-2.6.31\-20\-generic
Found initrd image: /boot/initrd.img-2.6.31\-20\-generic
Found memtest86+ image: /boot/memtest86+.bin
Found Windows 7 (loader) on /dev/sda2
done

仕上げ

再起動してもまだブート画面はGRUB 0.97のままだと思うので、ここ等を参考にGRUB2にチェインロードしていく。 といっても起動させるUbuntuパーティションの先頭にあるrootuuidに変えるだけで出来ると思う。 後はUbuntuに戻って

sudo upgrade-from-grub-legacy
sudo update-grub

で終了。

参考サイトまとめ

Leave a comment