JF-INDEX (document list of JF Project)

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日

1. 概要

2. NT OS ローダーはどのように動作するのか

3. Windows NT と Linux を同じマシン上にインストールする為の Tips

4. Bootpart プログラム

5. Linux 上での作業

6. Windows NT での作業

7. Play it again Sam/ボギー!俺も男だ

8. トラブルシューティング

9. 参考文献

10. 謝辞

11. フィードバック

12. 訳者あとがき


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. 参考文献


10. 謝辞


11. フィードバック

どんなコメントも歓迎します。

(訳注:(特にWindowsサイドの)さらなる情報を知りたい場合、以下のサイトが 非常に役立ちます。 http://hp.vector.co.jp/authors/VA001240/article/ntldr.html Windows NTのOSローダーによるマルチOSブートの試み)


12. 訳者あとがき

日本語訳は Linux-JF プロジェクトの方々から多くのご助言を頂きました。 ありがとうございます。

また「Windows NTのOSローダーによるマルチOSブートの試み」へのリンクを快諾して 頂いた伊藤 隆幸<yuki@dayo.ne.jp>(敬称略)にも感謝致します。

日本語訳:早川 仁
校正  :長谷川 靖 yaz-hase@qb3.so-net.ne.jp

1999年 1月22日


sgml21html conversion date: Sat May 20 22:27:20 JST 2000