NT OS Loader + Linux mini-HOWTO Bernd Reichert, <reichert@dial.eunet.ch> v1.11, 2 September 1997 早川 仁 <cz8cb01@linux.or.jp> v0.00, 1999年 1月22日 概要

このドキュメントは Linux を起動するための Windows NT ブートローダーの 使用方法について説明しています。テストは Windows NT4.0 Workstation 及び Linux 2.0 で行いました。 NT OS ローダーはどのように動作するのか

NT OS ローダは他の OS で一つのファイルとして作成したブートセクターを 読み込むことができます。ローダーはこのファイルを読み込み、選択された OS を 起動します。例えば Windows NT の VGA モードや他の OS などです。 Windows NT と Linux を同じマシン上にインストールする為の Tips Windows NT のインストール

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 のインストール

Linux をフロッピーから起動して、swap と root のパーティションを作成して ください。Fdisk は NTFS パーティションを HPFS パーティションだと表示しますが、 これは通常の状態です。フロッピーから再起動して、お好きな方法で Linux を インストールしてください。

念のために書いておきますが、インストーラーは見つけた HPFS パーティション (実際は NTFS パーティション)をマウントできると表示しますが、 これは無視してください。 Lilo

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 を修復できます) Bootpart プログラム

G. Vollant によって書かれた bootpart というNTのプログラムがあります。 これは次の、ポイント5と6で行う Linux と NT 上で行う作業と同じ事を してくれます。bootpartは、 http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm から 入手できますが、どのように作業が行われるのかを知りたければ、ポイント 5、6で説明されている方法を参照してください。 Linux 上での作業

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 Windows NT での作業

フロッピーから先程の 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 .... Play it again Sam/ボギー!俺も男だ (訳注:米'72 映画のタイトル)

新しいカーネルを 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 の環境が壊れた時に緊急用ディスクとして 使用する事ができます。 参考文献

The Linux+WindowsNT mini-HOWTO The FAQ for FreeBSD 2.X 謝辞

Xiaoming Yi <z3c20@ttacs.ttu.edu> には、一番目以外の HDD から 起動する方法の tip について感謝します。 Frank Dennler <Frank.Dennler@zkb.ch> のフロッピーのトリックに 感謝します。 フィードバック

どんなコメントも歓迎します。 (訳注:(特に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>(敬称略)にも感謝致します。 日本語訳:早川 仁 校正  :長谷川 靖 1999年 1月22日