2.5インチHDDにWindows8CPを入れた後、余ったパーティションにUbuntu11.10をインストールしていたんだけどなぜかGRUBがうまくインストールできずにはまっていた。
Ubuntuのインストール後にrebootしてもWindows8しか起動してきやがらないので、HDD先頭にGRUBブートローダを入れるのは諦めてUbuntuの入ったパーティション(/dev/sda7)の先頭にブートローダを入れるように設定してみたけどそもそもそれが入らなくて、Ubuntuのインストール完了後に
dd if=/dev/sda7 bs=512 count=1 | hd
とかやっても 0 しか表示されなかったりして、しばらく悩んでたんだけど、そのタイミングで
grub-install --force --boot-directory /target/boot /dev/sda7
とやると/dev/sda7の先頭になんか書き込まれたみたいだったので、
それを
dd if=/dev/sda7 bs=512 count=1 of=/tmp/ubuntu.img
のような感じでファイルに抽出してWindows8のほうにもっていってc:\ubuntu.imgというファイル名で配置して、それからWindows8のほうでbcreditという、Windowsのブートローダを編集するコマンドを駆使してエントリを作成したらブートできるようになった(ような気がする)。
bcdeditは、
bcdedit /create /d “Ubuntu” /application BOOTSECTOR bcdedit /set {createで出てきたID} device partition=c: bcdedit /set {createで出てきたID} path \ubuntu.img bcdedit /displayorder {createで出てきたID} /addlast
みたいな感じにやったらできた。「/application BOOTSECTOR」を書かないといけないのがわからなくて何回も試しては失敗を繰り返してしまった。