NT OS Loader + Linux mini-HOWTO Bernd Reichert, v1.11, 2 September 1997 早川 仁 v0.00, 1999年 1月22日 1. 概要 このドキュメントは Linux を起動するための Windows NT ブートローダーの 使用方法について説明しています。テストは Windows NT4.0 Workstation 及 び Linux 2.0 で行いました。 2. NT OS ローダーはどのように動作するのか NT OS ローダは他の OS で一つのファイルとして作成したブートセクターを読 み込むことができます。ローダーはこのファイルを読み込み、選択された OS を起動します。例えば Windows NT の VGA モードや他の OS などです。 3. Windows NT と Linux を同じマシン上にインストールする為の Tips 3.1. 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 を使用できるという情報を頂きました) 3.2. パーティションを切る 他の Mini-howto では、Linux の swap/root パーティションを作成するため に NT の"ディスクアドミニストレータ"を使わない事を推奨していますが、空 き容量の確認の為であれば特に問題はありません。その場合、後で Linux の fdisk を使用して再確認する事をお勧めします。 3.3. Linux のインストール Linux をフロッピーから起動して、swap と root のパーティションを作成し てください。Fdisk は NTFS パーティションを HPFS パーティションだと表示 しますが、これは通常の状態です。フロッピーから再起動して、お好きな方法 で Linux をインストールしてください。 念のために書いておきますが、インストーラーは見つけた HPFS パーティショ ン(実際は NTFS パーティション)をマウントできると表示しますが、これは 無視してください。 3.4. 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 を 修復できます) 4. Bootpart プログラム G. Vollant によって書かれた bootpart というNTのプログラムがあります。 これは次の、ポイント5と6で行う Linux と NT 上で行う作業と同じ事をし てくれます。bootpartは、 http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm から入 手できますが、どのように作業が行われるのかを知りたければ、ポイント5、 6で説明されている方法を参照してください。 5. 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 6. 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 .... 7. Play it again Sam/ボギー!俺も男だ (訳注:米'72 映画のタイトル) 新しいカーネルを lilo でインストールした時など、linux パーティションの ブートセクタが変更された場合は、C:\BOOTSECT.LNX を新しい物に更新する必 要があります。ですから、このようなシステムは開発版のカーネルをテストす るには向きません。 8. トラブルシューティング 期待通りに進まなかった場合、フロッピーディスクを使用してブート可能かど うか調べてください。/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 の環境が壊れた時に緊急用ディスクとして使用 する事ができます。 9. 参考文献 o The Linux+WindowsNT mini-HOWTO o The FAQ for FreeBSD 2.X 10. 謝辞 o Xiaoming Yi には、一番目以外の HDD から起動す る方法の tip について感謝します。 o Frank Dennler のフロッピーのトリックに感謝し ます。 11. フィードバック どんなコメントも歓迎します。 (訳注:(特にWindowsサイドの)さらなる情報を知りたい場合、以下のサイ トが非常に役立ちます。 http://hp.vector.co.jp/authors/VA001240/article/ntldr.html Windows NTのOSローダーによるマルチOSブートの試み) 12. 訳者あとがき 日本語訳は Linux-JF プロジェクトの方々から多くのご助言を頂きました。あ りがとうございます。 また「Windows NTのOSローダーによるマルチOSブートの試み」へのリンクを快 諾して頂いた伊藤 隆幸(敬称略)にも感謝致します。 日本語訳:早川 仁 校正 :長谷川 靖 yaz-hase@qb3.so-net.ne.jp 1999年 1月22日