FreeBSD QandA 89

FreeBSD QandA

Q. 1つのDiskにパーティションを3つ作成し
     1) Windows95    Fat  400MB
     2) WindowsNT4.0 NTFS 2000MB
     3) 空き               700MB
   FreeBSDを 3番目のパーティションにインストールしたら NT が起動しなく
   なりました。

A. 元の状態は 1つ目が基本パーティション、 2つ目は拡張パーティションに
   なっています。 NT のブートプログラムの設定ファイルは、 C:\BOOT.INI
   ですが、以下のような感じになっているはずです。
   (特にpartition(x)の部分をチェックしてください)

   [operating systems]
   multi(0)disk(0)rdisk(0)partition(2)\WINNT=
         "Windows NT Workstation Version 4.00"
   multi(0)disk(0)rdisk(0)partition(2)\WINNT=
         "Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos
   C:\="Microsoft Windows"

   この状態で FreeBSD を3番目の空き領域に入れた場合、この3番目の領域は
   実は基本パーティションになります。BOOT.INI のパーティション番号
   (partition(x))は、基本パーティションから先に振られます。

   つまり、もともと
        基本(Win95)     multi(0)disk(0)rdisk(0)partition(1)
        拡張(NT4.0)     multi(0)disk(0)rdisk(0)partition(2)
   だったのが、基本パーティションを追加したことによって
        基本(Win95)     multi(0)disk(0)rdisk(0)partition(1)
        拡張(NT4.0)     multi(0)disk(0)rdisk(0)partition(3)
        基本(FreeBSD)   multi(0)disk(0)rdisk(0)partition(2)
   となり、NTのパーティション番号がずれてしまったのです。

   しかし、BOOT.INI はそのままですので、NTLDR は正直に
        multi(0)disk(0)rdisk(0)partition(2)
   から NTOSKRNL.EXE を読もうとして「NTOSKRNL.EXE がないよ」ということ
   になってしまいます。 

   そこで以下のように、partition(3) に書き直してやれば復旧するはずです。
   multi(0)disk(0)rdisk(0)partition(3)\WINNT=
        "Windows NT Workstation Version 4.00"
   multi(0)disk(0)rdisk(0)partition(3)\WINNT=
        "Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos

   下記の Web ページも参考にしてください。
        <URL:http://hp.vector.co.jp/authors/VA001240/article/ntldr.html>

間違い・追加情報を見付けた場合は、 修正案の投稿のしかた を読んだ上で、
QandA@jp.FreeBSD.org まで お知らせください。