このドキュメントは Linux を起動するための Windows NT ブートローダーの 使用方法について説明しています。テストは Windows NT4.0 Workstation 及び Linux 2.0 で行いました。
NT OS ローダは他の OS で一つのファイルとして作成したブートセクターを 読み込むことができます。ローダーはこのファイルを読み込み、選択された OS を 起動します。例えば Windows NT の VGA モードや他の OS などです。
Linux よりも先に Windows NT をインストールするようにしてください。
パーティションを NTFS として使用したい場合、現バージョンの Linux は
NTFS パーティションにアクセスできないという事を覚えておいてください。
NTFS パーティションを読めるα版のドライバは
http://www.informatik.hu-berlin.de/~loewis/ntfs
で入手できます。
データ交換用として別の FAT パーティションを作成しても問題ありません。
NTFS のみで使用する場合は DOS フォーマットのフロッピーが必要になります。
(訳注:Linux で lilo のインストール時などに MBRを 誤って上書きしてしまった 時の為にインストール中、もしくは起動後に rdisk.exe コマンドで 修復ディスクを作成しておくことをお勧めします。また最近の 2.1 系、 2.2系のカーネルでは NTFS を使用できるという情報を頂きました)
他の Mini-howto では、Linux の swap/root パーティションを作成するために NT の"ディスクアドミニストレータ"を使わない事を推奨していますが、 空き容量の確認の為であれば特に問題はありません。その場合、 後で Linux の fdisk を使用して再確認する事をお勧めします。
Linux をフロッピーから起動して、swap と root のパーティションを作成して ください。Fdisk は NTFS パーティションを HPFS パーティションだと表示しますが、 これは通常の状態です。フロッピーから再起動して、お好きな方法で Linux を インストールしてください。
念のために書いておきますが、インストーラーは見つけた HPFS パーティション (実際は NTFS パーティション)をマウントできると表示しますが、 これは無視してください。
Lilo の設定では、Linux の root パーティションをブートデバイスとして指定
してください。理由としては、ハードディスクのマスターブートレコード(MBR)は
Windows NT が使用しているからです。これは /etc/lilo.conf
のルートエントリーと
ブートエントリーが同じ値を持つ事を意味します。あなたのハードディスクが
IDE で Linux が二番目のパーティションに入っている場合、/etc/lilo.conf
の
boot エントリーはこのようになります。
boot=/dev/hda2
ハードディスクが二台あり、Linux が二台目のディスクの一番目の
パーティションにインストールされている場合、/etc/lilo.conf
の
boot エントリーはこのようになります。
boot=/dev/hdb1
あなたのシステムにあったカーネルで lilo を実行してください。 どのカーネルが正しいかどうか分からないときは、まずフロッピーから起動して カーネルをチェックしてください。
もしもこの段階で Windows NT を起動できない場合は・・・困りました。 あなたが最近作成した修復ディスクを持っている事を願います。
(訳注:もしも作成していなかった場合はNTに付属している3枚の NTインストール用起動用ディスクから起動後、修復セットアップを 選択すれば MBR を修復できます)
G. Vollant によって書かれた bootpart というNTのプログラムがあります。
これは次の、ポイント5と6で行う Linux と NT 上で行う作業と同じ事を
してくれます。bootpartは、
http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm
から
入手できますが、どのように作業が行われるのかを知りたければ、ポイント
5、6で説明されている方法を参照してください。
NT 上での作業が終わるまでは、フロッピーから起動するようにしてください。
まず root パーティションのブートセクタをファイルへ落とします。 Linux パーティションを /dev/hda2 とすると、dd コマンドはこのようになります。
# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1
ブートセクタはちょうど1セクタ分(512バイト)なので、作られた bootsect.lnx が512バイトよりも大きかった場合、何か間違いがあります。
NTFS パーティションへファイルをコピーするのに、いつも DOS フォーマットの フロッピーを使用して行っているのでしたら、bootsect.lnx をフロッピーへ コピーしてください。
フロッピーへのコピー方法はこのように行うか、
# mcopy /bootsect.lnx a:
または以下のように行います。
# mount -t msdos /dev/fd0 /mnt
# cp /bootsect.lnx /mnt
# umount /mnt
フロッピーから先程の bootsect.lnx をCドライブのルートへコピーしてください。
どのような方法でも構いませんが
copy a:\bootsect.lnx c:\
が、簡単でしょう。
Windows NT で、Linux でいう lilo.conf と同じ働きをするのが c:\\boot.ini
です。
作業を始める前に以下のようにしてシステム/リードオンリーの属性を外して
C:\attrib -s -r c:\boot.ini
boot.ini をエディター(例えばメモ帳)で以下のように編集してください。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation ...
C:\BOOTSECT.LNX="Linux"
この例で追加したのは最終行のみです。boot.ini
をセーブした後は
このようにして属性を元に戻してください。
C:\attrib +s +r c:\boot.ini
Windows NT をシャットダウンして再起動すると、以下のように 表示されるはずです。
オペレーティング システムの選択
Please select the operating system to start:
Windows NT Workstation Version 4.0
Windows NT Workstation Version 4.0 [VGA mode]
Linux
Linux を選択するとこのように表示されます。
LILO loading zImage ....
新しいカーネルを lilo でインストールした時など、linux パーティションの
ブートセクタが変更された場合は、C:\BOOTSECT.LNX
を新しい物に
更新する必要があります。ですから、このようなシステムは開発版のカーネルを
テストするには向きません。
期待通りに進まなかった場合、フロッピーディスクを使用してブート可能か
どうか調べてください。/dev/hdb1
を Linux パーティションだとすると
/etc/lilo.conf
は次のようなエントリーを持っています。
root=/dev/hdb1
boot=/dev/fd0
フロッピーを入れて lilo を起動してください。するとフロッピーから起動
します。もしも /dev/hdb1
の Linux を起動できなかった場合、NT OS
ローダーからの起動にも失敗します。もしも多くの 01 01 01 01
が表示された
場合、あなたの root ディスクはアクセス不能になっています。ディスクが
bios から見えるかどうかチェックしてください。
フロッピーから Linux パーティションをブートできた場合、NT OS ローダー用 のブートセクタはこのようにして準備できます。
# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1
このフロッピーは Windows NT の環境が壊れた時に緊急用ディスクとして 使用する事ができます。
どんなコメントも歓迎します。
(訳注:(特にWindowsサイドの)さらなる情報を知りたい場合、以下のサイトが
非常に役立ちます。
http://hp.vector.co.jp/authors/VA001240/article/ntldr.html
Windows NTのOSローダーによるマルチOSブートの試み)
日本語訳は Linux-JF プロジェクトの方々から多くのご助言を頂きました。 ありがとうございます。
また「Windows NTのOSローダーによるマルチOSブートの試み」へのリンクを快諾して 頂いた伊藤 隆幸<yuki@dayo.ne.jp>(敬称略)にも感謝致します。
日本語訳:早川 仁
校正 :長谷川 靖
yaz-hase@qb3.so-net.ne.jp
1999年 1月22日