なんか昔書いたけどかなり適当だったので、ちゃんと今回は書く。
今回は以下のようなシステムレイアウト。
RAID0のアレイ1 -+- システムで予約済みのパーティション
+- Windows7のインストールパーティション
+- データ用パーティション
RAID0のアレイ2 -+- Ubuntu 10.04のインストールパーティション
+- swap
+- Debianのインストールパーティション
アレイ1のMBRにbootmgrを、アレイ2のMBRにgrubをインストールしてある。
bootmgrからはWindows7、grub4dosのエントリを作成、grub4dosはアレイ2のMBRにチェインロードするようにし、Linux系OSの起動はアレイ2のgrubから行う。
まず、Windows7を起動。
grub4dosを入手し、展開する。
ディスクの管理から、システムで予約済みの領域をマウントする。
そのパーティションのルートにはbootmgrがあるはず。
環境によってはすでにマウント済みの領域にあるかもしれない。
そこにgrub4dosのgrldr.mbrをコピーする。
menu.lstを同じフォルダに作成。
内容を以下のように記述。
title linux
rootnoverify (hd1)
chainloader (hd1)+1
これでgrub4dosからは二つ目のアレイのMBRにチェーンロードする形になる。
そこからはgrubが呼び出されるのでそっちに任せる。
bootmgrからgrub4dosを呼び出すエントリを作成する。
コマンドプロンプトを管理者権限で起動して、以下を入力。
{ID}はGRUB4DOSエントリのID。
bcdedit /create /d "GRUB4DOS" /application bootsector bcdedit /set {id} device boot bcdedit /set {id} path \grldr.mbr bcdedit /displayorder {id} /addlast
これでbootmgrからgrub4dosを呼び出せる。
アロケーションユニットサイズは通常4KBで、普通にWindows7のインストーラでパーティションをきってインストールすると、やはり4KBになる。
これを変更したい場合、以下のようにする。
diskpartでのフォーマットの仕方は、フォーマット対象のディスクを選択、フォーマット対象のパーティションを選択、フォーマットという流れ。
以下のような感じ。
DISKPART> list disk
ディスク 状態 サイズ 空き ダイナ GPT
### ミック
———— ————- ——- ——- — —
ディスク 0 オンライン 2000 GB 0 B
ディスク 1 オンライン 1726 GB 1442 GB
ディスク 2 メディアなし 0 B 0 B
ディスク 3 メディアなし 0 B 0 BDISKPART> select disk 0
ディスク 0 が選択されました。
DISKPART> list partition
Partition ### Type Size Offset
————- —————— ——- ——-
Partition 1 プライマリ 100 MB 1024 KB
Partition 2 プライマリ 200 GB 101 MB
Partition 3 プライマリ 1799 GB 200 GBDISKPART> select partition 2
パーティション 2 が選択されました。
DISKPART> format fs=ntfs unit=16k quick
いまさらながら、単純にdiskpart使わないでformatコマンドでもよかったきはする。
formatコマンドの場合は
format c: /fs:ntfs /q /a:8192
みたいなかんじ。
ちなみに、Windows7がシステムとして予約する100MBのパーティションはいじらないこと。
あそこはアロケーションユニットサイズが4KBじゃないとうまく動かない。
MBRが破損した場合に限らず、grubなんかのブートローダからbcdに切り替えたい場合も。
Windows7のインストールディスクから起動して、システム回復オプションを選択するなり、Windows7がブート可能な場合には、F8でコンピュータを修復するを選択して、コマンドプロンプトを立ち上げて、以下のコマンドを入力。
bootrec /fixmbr
bootrec /fixboot
必要があれば
bootrec /rebuildbcd
もしくはWindows7が立ち上がるなら、EasyBCDをインストールして、Manage Bootloaderからreinstall the Vista Bootloaderを選んでWrite MBRでもいける。
32bit版は試してないのでわからないが、64bit版だとインストーラにバグがある。
dmraidを使っているシステムでインストールしようとすると、インストーラでパーティションをきってインストールしようとしたとき、ファイルシステムの作成に失敗してインストールが続行できない。
/dev/mapper以下をみてみると、正しいデバイス名ではなく、末尾にpがついてその後にパーティション番号が振られたデバイスが生まれている。
この状態になったら、一回アレイをとめて再開してやってから、インストール先のパーティションをフォーマットしてやる。
インストーラから抜けて、シェルを起動、sudo suしてから以下のような感じ。
# dmraid -an
# dmraid -ay
# mkfs.ext4 /dev/mapper/isw_xxxxx_yyy1
それからインストーラを起動して、パーティションの設定をするときに、既存のパーティションのデータをそのまま使うようにして進めてやればうまくいく。
あるいは、USBメモリからインストーラを起動している場合なんかは、アップデートしてからインストーラを起動してやるとこのバグは修正されているようだ。
普通に
# aptitude update
# aptitude upgrade
してからインストーラを起動すればいけた。
あと、拡張でgrubのインストール先を選択できるが、実際のところは一番最初に見えるディスクにインストールしてしまう。
これはインストールしない以外の回避方法がみつからなかった。

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 