前回は、AlphaマシンにLinux(注1)のみをインストールする前提で、SRMコンソールとabootローダーを組み合わせてBSD形式のパーティションにインストールする方法を紹介しました。
今回は前号の予告通り、Alphaマシンで稼働するOSということで、ローダーとしてmiloを用いたWindows NTとLinuxのデュアルブートに挑戦してみましょう。
Windows NTとのデュアルブートを行ううえでは、いくつか注意点があります。
重要な点として、Windows NTはBSD形式のパーティションを認識できないため、前回インストールしたLinuxを一度削除する必要がある点があげられます。
それならば、最初からデュアルブートできるようにインストールすればいいじゃん(^^;という声が聞こえてきそうですが、最近のLinuxは、milo経由のインストールを意識した構成になっていないため、ドキュメント通りにインストールを行っても、ちょっとしたことで落とし穴にはまってしまいます(注2)。特にデュアルブート環境では、ちょっと操作を間違えると別のOSまでもが起動できなくなってしまいます。
こうした実情を踏まえて、前号ではあえてaboot経由でのLinuxインストールを解説した次第です。以下の組み合わせも筆者の所有するDigital Personal Workstation 433auの環境ではたまたまうまくいったというだけで、他の機種ではこの通りに行ってもうまくいかないかも知れません(注3)。その場合はこの記事を参考にして、臨機応変に(^^;対処してください。
また、デュアルブートの設定に失敗すると、最悪ディスクの内容がすべて消えますので、両OSのインストールが一通り完了するまでは、OSの設定は必要最低限にとどめておいた方がよいでしょう(注4)。
今回インストールしたLinuxはDebian GNU/Linux 2.2r4(以下Debian)です。当初はRed Hat Linux 7.1(以下RH71)でも確認を行ったのですが、どうやってもデフォルトでインストールされるLinuxカーネルがmiloからの起動に失敗してしまうため、あきらめました。
なおデュアルブートを行う際には、先にLinuxのインストールを行い、Linux側でパーティション分割を行うことを強くお薦めします。
Windows NTでパーティション分割を行なうとシリンダ境界を無視して分割を行いますが(注5)、この状態はLinux側でfdiskを用いた場合に警告が発生してしまいますし、RH71のインストーラはこうしたディスクに対してインストールすることができない実装になっています。Debianではこの状態のディスクに対してもインストールを行えますが、予期せぬトラブルを可能な限り避ける意味でも、Linuxと共存する場合はWindows NT側でパーティションの作成(フォーマットは構いません)を絶対に行わないのが無難です。
それではDebianから先にインストールを行いましょう。前号で自動起動の設定をしてしまっている場合は、起動時に Ctrl + Cを押して強制的にプロンプトを表示させた上で、インストーラを起動します。
Windows NTとのデュアルブートを行う関係上、最終的にはローダーとしてmiloを利用するのですが、インストールはSRMコンソールからaboot経由で行ったほうが簡単でよいでしょう(注6)。基本的には前号で記述したように通常のLinuxのインストールと同様ですので、以下デュアルブートを行ううえで特有の注意点だけを記述します。
本文で述べたように最近はmiloからインストールができないLinuxがほとんどですが、昔のものはmiloからでも比較的簡単にインストールができます。
という5つのAlpha版Linuxがありますが、この中でも比較的古い後者の2つはmiloから直接インストールが可能でした。後者はインストーラがCD-ROMをルートデバイスに指定して起動するため、CD-ROM上に/bin、/sbin、/etcといったディレクトリが存在しているのが特徴です。このため別のマシンでCD-ROMの内容を参照すれば、miloからの起動に対応しているかどうかはすぐにわかると思います。 なぜ最近のLinuxがmiloのサポートをやめてしまったのかは筆者もよくわかりませんが、Red Hat Linux 7.1をはじめとした最近の主要LinuxのAlpha版がSRMコンソールからの起動しかサポートしていないのは事実のようです。 |
とにかく注意が必要なのがパーティション分割です。
今回は最終的にローダーとしてmiloを利用しますので、前号とは異なり、パーティションをBSD形式にしてはいけません(注7)。前回の記事に従ってBSD形式にしている場合は、デフォルトのDOS互換形式に戻してください。
すでにBSD形式になっている場合は、fdiskの「c」コマンドでデフォルトのDOS互換形式用のメニューに戻した上で、「o」で空のパーティションテーブルを作成することで、BSD形式のパーティション情報をクリアできる「筈」です。 実は筆者の環境では、「o」コマンドを発行するとfdiskが落ちてしまって結局「o」コマンドの結果が反映されないというトラブルに見舞われてしまいました。結局一度「s」コマンドでSun形式にした上で、改めて「o」でDOS互換形式にすることで、なんとか対処できました。 |
また、Windows NTのインストールには、コラムに記述したようにシステムパーティションが必須のため、システムパーティション用に8MB程度を確保した上で、Windows NT用の本体をインストールするパーティションを確保しておきます。
今回は8GBのディスクを図9のようにパーティション分割した場合を例にとって説明します。なお以下でDドライブにあたるWindows NTインストール用パーティションのパーティションIDは必ず適切なもの(通常はHPFS/NTFS)にしておいてください。
これを忘れると、Windows NTのインストーラがパーティションを不明なパーティションと認識してしまうので、インストールができません。パーティションを再度作成すればWindows NTのインストール自体は進められますが、パーティションを「作成」してしまうことで、前述したシリンダ境界の問題が発生してしまうので、Linux側に問題が発生してしまいます。
+----------+------------+---------------+-----------+---- |Cドライブ |Dドライブ |Eドライブ |Fドライブ |(以降は空き領域) |/dev/sda1 |/dev/sda5 |/dev/sda6 |/dev/sda7 | |FAT16<32M |HPFS/NTFS |ext2 | | |(FAT 8MB) |2000MB(NT用)|2000MB(Linux用)|256MB(SWAP)| +----------+------------+---------------+-----------+----
図9: 今回のパーティション構成
ARCコンソールが直接読みだすローダーを配置するパーティションをシステムパーティションと呼びます。このパーティションのフォーマットは、FATである必要があります。これはARCコンソールの仕様によるものです。 +--------------+---------------------------------------+ |Cドライブ |Dドライブ | |(FAT 数MB) |(NTFS 残りすべて) | |osloader.exe =(呼び出し)==> \WINNTディレクトリ | +----- ↑------+---------------------------------------+ | 呼び出し [ARCコンソール] 図10: パーティション構成イメージ そのため、Windows NTをインストールする際は、図10のように、通常Cドライブとして数MBの小さなパーティションを確保して、そこにカーネルの起動に最低限必要なファイルを配置した上で、DドライブをNTFSでフォーマットしてWindows NTの本体をインストールします。 すでにWindows NTがインストールされていたマシンの場合は、このパーティションが確保されていますが、新しいディスクを接続した場合などは、システムパーティションをあらかじめ作成してFAT形式にフォーマットしておく必要があります。
AlphaBIOSのマシンの場合は、F2を押すと現れるAlphaBIOSのメニューから「Hard Disk Setup...」で簡単に作成、フォーマットができます。 Program to run: cd:\alpha\arcinst と入力してください。FATパーティション作成用のプログラムが起動します。「configure partition」を選択すると、 CREATE SYSTEM PARTITION DELETE PARTITION MAKE EXISTING PARTITION INTO THE SYSTEM PARTITION EXIT というメニューが現れますので、「CREATE SYSTEM PARTITION」からパーティションを作成できます。詳細については、「Q172952: How to Rebuild Corrupted or Missing SYSTEM Partition (http://support.microsoft.com/default.aspx?scid=kb;EN-US;q172952) 」を参照してください。 パーティションの容量ですが、後述するデュアルブートを考慮しても、4MB程度あれば充分です。筆者は絶対に大丈夫な容量ということで、8MB程度を指定しています。 なお、このメニューでパーティションを「作成」した場合(削除は未確認)、なぜか全パーティション情報が書き直されるようです。このため、Linuxでパーティションを作成していた場合は、新規作成した箇所だけでなくすべてのパーティションの開始/終了位置がNT仕様?に書き換えられてしまい、結果としてディスク上の全データが消失しますので、不用意にパーティションの作成を行わないように充分注意してください。 |
通常、こんなところで問題が起こる筈がない。のですが、筆者の環境ではDebianでフォーマットしたext2のパーティション(注11)がmiloから認識できないという不具合が発生してしまいました。そのため場当たり的ですが、一度RH71のインストーラを起動してパーティションのフォーマットまでを行ってからインストーラを強制終了した上で、再度Debianのインストーラを起動して、パーティションのフォーマットを行わずにインストールを行うという方法でなんとかクリアしました。
上記の対処策以外にも、Linuxカーネル(およびinitrd)だけをFATフォーマットのシステムパーティションに配置しておく方法でも大丈夫な筈です。
インストールを進めていくと、最後にabootローダーのインストールが行われる場合がありますが、今回はローダーとしてmiloを利用しますのでこの部分のインストールはキャンセルしてください(注12)。
ここでAlt+F2キーなどで別のコンソールを起動して、mkdosfsコマンドでシステムパーティションをFATフォーマットします(注13)。
その後、このパーティションを適当なディレクトリの下にマウントして、たとえば図14のようにディレクトリを作成して必要なファイルをCD-ROMからコピーします。
#mkdosfs /dev/sda1 ← FATファイルシステムの構築 (*) インストール途中なので、/dev/sda1というデバイスファイルが存在するとは限りません。Red Hat Linux 7.1では/tmp/sda1というデバイスファイルを利用してフォーマットを行いました。 #mkdir /tmp/dos #mount /dev/sda1 /tmp/dos #mkdir -p /tmp/dos/os/linux ← ディレクトリの位置はこれ以外でも構いません。 #cp /mnt/source/milo/arc/linload.exe /tmp/dos/os/linux ~~~~~~~~~~~~~~~~~~~~~ #cp /mnt/source/milo/miata /tmp/dos/os/linux/miata ~~~~~~~~~~~~~~~~ (*)linload.exeの格納位置、miloの格納位置と名前はLinuxによって異なります。 Digital Personal Workstation 433はmiataというアーキテクチャのため、ここではmiataという名前のmiloバイナリを利用しています。
図14: miloのインストール
linload.exeとmiloはインストーラのCD-ROMに同梱されている筈ですので探してコピーしてください。ただしmiloはアーキテクチャ(注15)ごとに別のバイナリを利用する必要があります。各アーキテクチャ用のmiloが用意されていますので、インストールマシンに合致したものをコピーしてください。
miloのファイル名や格納先のディレクトリパスはなんでも構わないのですが、Windows NTとの整合性をとるために、上記のような位置に格納するとよいでしょう。
すべて完了したらインストーラを終了させます。ただし次で述べるARCコンソール上での設定を行わない限り、この時点ではLinuxは起動しません(注16)。万一この時点で設定を誤ってしまった場合は、先にWindows NTをインストールしてからLinux側のmiloの設定を行った方がよいでしょう。
いよいよ総仕上げです。まず現在SRMコンソールの場合は、プロンプトから
>>> set os_type nt
と入力して、ARCコンソール(AlphaBIOS)にして起動してください。
ARCコンソールで起動したら、OS起動メニューを設定します。
AlphaBIOSの場合は、F2を押してSetupモードに入ったうえで、[Utilities] - [OS Selection Setup] を選択してください。既にエントリがある場合は、更にInsertを押して、新規OS起動メニューを追加します。何もエントリがなかった場合は、自動的に追加画面になりますので、ここで図17のように、エントリを追加します。
Boot Menu: Linux Boot File: [Disk0, Partition1]: \os\linux\linload.exe OS Path: [Disk0, Partition2]: \os\linux\miata OS Options: ← とりあえず空欄にしておく
図17: エントリの追加
Boot FileとOS Pathのパーティション名やファイル名は、環境によって異なります。またOS Pathの方のパーティション番号(図17ではDisk0, Partition2)は無視されます。
最後にF10を押してから、enterを押すことで設定が保存されます。いくつか警告が出力される場合もありますが、無視してF10やenterを押して行くと、Alpha BIOS Setupの画面に戻りますので、更にESCを押して、最初のOS選択画面まで戻ってください。「Linux」というエントリが追加されていますので、「Linux」を選択すると、最終的にmiloが起動します(注19)。
ARCコンソールの場合は、[Supplementary menu...] - [Set up the system...] - [Manage boot selection menu...]から設定を行います。図17と同等の設定を行った設定を図18に示します。
LOADIDENTIFIER=Linux SYSTEMPARTITION= OSLOADER=scsi(1)disk(0)rdisk(0)partition(1)\os\linux\linload.exe OSLOADPARTITION=scsi(1)disk(0)rdisk(0)partition(2) OSLOADFILENAME=\os\linux\miata OSLOADOPTIONS= (*) scsi(1)disk(0)...といった記法はARCパスと呼びます。ARCパスについては別途書籍などを参照してください。
miloが起動したら、とりあえずshowコマンドを入力して、miloが認識するデバイス名を確認しましょう。図20では、sdaやhdaといったデバイスが認識されていることが確認できます。
図20: milo でshowコマンドの実行結果
(*) 実行可能なコマンド一覧はhelpコマンドで確認できます。
この他、miloはlsコマンドでCD-ROMやext2/FATパーティション中のファイル名を確認することも可能ですので、Linuxカーネルの格納位置を確認したりすることも可能です。起動はbootコマンドで行います。図21のようにカーネルのあるパーティションとともに起動したいカーネルとそのオプションを指定してください。
図21: milo>boot sda6:/boot/vmlinuz-2.2.18pre21-generic root=/dev/sda6 (*)シンボリックリンクは指定できません。
うまくいけば、Linuxが起動する筈です。自動起動させるようにするには、図17のOS Optionsや図18のOSLOADOPTIONSに図21のコマンドをそのまま記述してください。
UNIX USERでWindows NTのインストールというのもアレですが(^^; 次はWindows NTのインストールについて説明します。Windows NTはARCコンソールからしか起動できませんので、SRMコンソールを利用している場合は、Windows NTのインストール前に、必ずARCコンソールにしておく必要があります。
また、システムパーティションが作成されていてFATでフォーマットされていることを確認しておいてください。
Windows NTのインストール自体は、OSのCD-ROMを挿入したうえで、AlphaBIOSの場合は、「Install Windows NT」、ARCコンソールの場合は、「Supplementary menu...」から「Install Windows NT from CD-ROM」を選択するだけです。
ただし、比較的新しいマシン(注22)の場合は、対応するHAL(注23)が用意されていないため、途中で図25のようにインストールするHALを選択する画面が出てきてしまいます。
図25: HALの選択
その場合は、Compaq社のWindows NT用の各種ファイルがダウンロードできるWebページ(注24)から各機種の最新のHardware Support Disketteを入手した上で、インストールを行ってください。
これらの点に注意すれば、後は普通のWindows NTのインストールと同じです。インストール中にARCコンソールの設定も自動的に行なわれますので、インストールが完了すると、デフォルトでWindows NTが起動する設定になっている筈です。
インストール完了後winmsd.exeでバージョンを確認したのが図26です。しっかりAlphaという文字が入っているのが確認できます(^_^)。
図26: Alpha版Windows NTのマイコンピュータのプロパティ
後はコラムなどを参照しながら、SP、IE、FX32!をインストールしていきましょう。FX32!をインストールすることにより、かなりのIntel版プロダクトが利用できるようになりますので、日常のちょっとした作業であれば、なんとかこなせるようになると思います。
更に脱線しますが、Alpha版のWindows NT上における作業環境を構築する上での注意点について説明しておきましょう。
基本的にAlphaマシン上で動作させたいプログラムは、Alpha用にコンパイルされたプログラムである必要があります。 むりやりIntel用のexeファイルを動かそうとしても図27のようなメッセージが出力されてしまいます。
図27: Alpha マシン上で Intel 版のバイナリを実行した際に出現するメッセージ
しかし、旧DECがリリースしたFX32!というプログラムを利用することで、IntelバイナリをAlphaマシン上で動作させることが可能です。FX32!の動作原理を図29に示します。Java VMなどで利用されているJIT機能と同等の機能を用いて、実行されたIntelバイナリをリアルタイムにAlphaのマシン語に置き換えて実行します。更に実行結果をキャッシュすることで、一度実行したIntelバイナリを再度実行する際は、キャッシュされているAlphaのマシン語コードを直接実行しますので、非常に高速になります。
図29: FX32!の動作原理 IntelバイナリAの実行 IntelバイナリAの実行 (1回目) (2回目以降) \ / \ / +---------------------------FX32!の担当範囲 --------------- |IntelバイナリAをAlphaバイナリ キャッシュからAlphaバイナリ |Aに変換してキャッシュに格納 ==>|キャッシュ|==> に変更済のバイナリAを取得 |(ここに時間がかかる) +------------------------------------------------------------ \ / \ / Alphaマシン上でバイナリAを実行
FX32!は、CompaqのWebページ(注28)から入手可能です。特に理由がない限り、最新版のV1.4を取得してインストールしてください。なお日本語環境で正しくインストールを行うためには事前にSP3とIE 3.01以降が必要という説明がWebページにありますので、注意してください。
図30: FX32! ホームページ
通常Windows NTをインストール後にまず行うことは、SPやホットフィックスの適用とInternet Explorerのバージョンアップだと思います。
しかし、現在でもセキュリティに関する新規ホットフィックスが提供されつづけているIntel版と異なり、Alpha版のWindows NTについてはすでに2001年いっぱいでホットフィックスの提供が終了しています。詳細は以下のURLで行なわれているアナウンスを参照してください。
現在でもSPや一部のホットフィックスはMicrosoftダウンロードセンタから入手可能ですが、昨今のセキュリティ事情を考えると、残念ながらセキュリティの確保が必要なサーバやインターネットに直結する端末としての利用は事実上不可能でしょう。
以下個別のプロダクトについて説明します。
図31: Internet Explorer 2.0の画面
Intel版のWindows NT 4.0ではデフォルトでIE 3.0がインストールされますので、
IE 2.0の画面がみられるのは、まさにAlpha版ならではの醍醐味です(^^;;
なお、前述のMicrosoftダウンロードセンタはIE 2.0やIE 3.02からだとスクリプトエラーとなってしまって結局アクセスできません(-_-;別のマシンから先にAlpha版のie5setup.exeをダウンロードしたうえで、Alphaマシンからこのexeファイルを実行してインストールを行うのがよいでしょう。
その他のプロダクト用のホットフィックスやサービスパックについても、Alpha版が存在するものについては、ダウンロードセンタから入手できます(注33)。