NTFSのOS名を表示させる方法


【注意】

 MBRがふっ飛んだのくらいは簡単に直せる自信がある方以外は、 真似をしない方が無難です。 オプションを一つ忘れただけで、起動できなくなったりもします。


これは何?

 FreeBSD標準のブートセレクタ (boot0) を、 NTFSのOS名を表示できるようにしたものです。 FreeBSD 4.7-RELEASE-p3ベースです。 FreeBSD-users-jpの記事 63203 63213を参考に、 パーティションがNTFSであれば「WinXP」と表示するboot0を作ってみました。 FAT系であれば「DOS」ではなく「Win」と表示します。 「UNIX SysV/386」は「??」になります。

 ソースからコンパイルする場合には、 /usr/srcパッチを当てて、 /usr/src/sys/boot/i386/boot0makeします。 /usr/obj/usr/src/sys/boot/i386/boot0/boot0ができます。 バイナリもあります。

 boot0ができたら、 boot0cfgを使って書き込みます。 たとえば、

boot0cfg -Bv -b boot0 -o packet,noupdate ad0
のようにします。 -b boot0がインストールしたいブートセレクタのバイナリファイル、 最後のad0がインストールするディスクです。 -oに続く引数はオプションで、 packetは1023シンリンダ超 (8G超か??) からブートしたい場合に、 noupdateはデフォルトの起動OSを固定したい場合に指定します。 スライス1と4のみ表示させたい場合には、
boot0cfg -Bv -b boot0 -o packet,noupdate -m 9 ad0
のように-m 9を追加します。

何故こんなモノを?

 自分だけで使う分にはあまり気にしないのですが、 他の人が使おうとした時にはまりそうになりました。 ハードディスクは下記のようになっています。
スライス 形式 内容
1 NTFS WindowsXP boot
2 NTFS WindowsXP data
3 FAT32 再セットアップ用
4 FreeBSD FreeBSD
このマシンを起動して、

F1   ??
F2   ??
F3   DOS
F4   FreeBSD
Default F1
という画面を見て、Windowsを起動させようとしてF3を押してしまいました。 当然起動しません。


(作成: 2003年2月17日, 最終更新: 2003年2月17日)