それでは、いよいよLinuxのインストールの開始です。
ディストリビューションに依存する点もあるため、今回は代表的なLinuxディストリビューションであるRed Hat Linux 7.1とDebian GNU/Linux 2.2r4の場合を中心に解説を行います。
なお、インストールメディアに付いては、専門店で購入するか、インターネット上で公開されているISOイメージ(注2)から作成してください。
Red Hat Linux については、最新の Red Hat Linux 7.2のAlpha版はRed Hat社からは提供されていないため、インターネットから無償でダウンロードできる最新版であるRed Hat Linux 7.1を利用しました。関連する情報として、Red Hat Linux 7.2 for Alpha FAQ (http://www.redhat.com/about/presscenter/2002/press_alphaFAQ.html)などを参照してください。
Debian GNU/Linuxについては、手元にあるメディアを利用したため、r5ではなくr4になっていますが、深い意味はありません。いまからメディアを取得するのであれば、r5を利用してください。
最近のPC用Linuxデュストリビューションでは、CDブートを有効にさえしておけば、自動的にインストーラが起動します。しかしAlpha版のLinuxまでは、インストーラを起動させるまでが大変(注3)、というかAlpha特有のノウハウが必要な部分になります。
まず、AlphaマシンにおけるLinux(注4)の起動方法について、表1に整理しておきました。
種類 | デュアルブート | 操作性 | 起動可能OS | ローダ | 操作性 | パーティション |
---|---|---|---|---|---|---|
SRMコンソール | 不可能(*1) | △ | 各種UNIX/OpenVMS/Linux | aboot | △(*2) | BSD形式 |
milo | ○ | DOS/BSD形式 | ||||
ARCコンソール | 可能 | ○ | Windows NT/Linux | milo | ○ | DOS/BSD形式 |
SRMコンソールもARCコンソールも直接Linuxを起動することができないため、Linuxを起動するにあたってはx86版でいうliloのようなローダーというプログラムの仲介が必要になります。Alphaマシンにはabootとmiloというローダーがあり、miloはどちらのコンソールからでも起動できますが、abootはSRMコンソール専用になっています。 Linux自体はいずれの方式でも起動可能です。ただし各ディストリビューションのCD-ROMの構成をみるとmiloからの起動はあまり考慮されていないものが多いため、ここではabootから起動してインストールする方法を解説します(注5)。
まず現在ARCコンソールの場合はSRMコンソールへ移行します。AlphaBIOSの場合は「CMOS Setup...」からF6を押してAdvancedを選択し、図1のように、Console Selection をUNIX Console(SRM)にしてからF10を何度か押して、設定を保存します。ARCコンソールの場合は、Supplimentary menu -> Set up the system -> Switch to OpenVMS or Digital UNIX console... -> Switch to Digital UNIX のようにメニューをたどります。
図1: AlphaBIOSからSRMコンソールへの移行
電源を切って再起動すると、図2のように「>>>」というSRMコンソールのプロンプトが現れますので、
Digital Personal Workstation 433au Console V7.2-1 Mar 6 2000 14:47:02 >>> boot dka ~~~ ← CD-ROMのデバイス名(環境依存)
のようにしてCD-ROMから起動します。dkaというのは機種によって変わりますが、CD-ROMのデバイス名になります。各機種のデバイス名については show config というコマンドを実行することで図3のように確認できます。
図3: show configコマンドの結果(一部)
CD-ROMのデバイス名がdka0でSCSIディスクのデバイス名がdkc0であることが確認できます。
なお画面が流れてしまう場合は、ctrl+Sとctrl-Qで画面表示の一時停止、再開を行ってください。
うまくいくと、CD-ROMにあるabootが読み込まれて図4のような画面表示の後、
aboot>
というabootのプロンプトになります。最近のディストリビューション(注6)では、ここで「l」を押すことで、図5のように起動メニューの一覧が表示されます。なおその他のabootのコマンドについては、「h」を入力することで表示されます。
注6: Red Hat Linux 7.1とDebian GNU/Linux 2.2r4で確認しています。 なお、このメニューは/etc/aboot.confというファイルによって設定します。詳細は後述するSRM-HOWTOを参照してください。
図5: abootのメニュー(Red Hat Linux 7.1の例)
ここで起動したいメニューの数値を
aboot>3 ← 3番のメニューを選択
のように入力するだけで、簡単にインストールを開始することが可能です。 なおRed Hat Linux 7.1の場合、GUIインストールはディスプレイカードの検出に失敗してしまうようですので、テキストモードでのインストールをお勧めします。 なお、古いabootを利用しているディストリビューションの場合は、このメニュー機能がないため、「l」や「h」といったコマンドは利用できません。この場合は予めカーネルのパス名などを調べておいた上で、以下のように直接パスを入力して起動を行う必要があります。
aboot> kernels/generic.gz root=/dev/hda |~~~~~~~~~~~~~~~~~ |~~~~~~~~~~~~ Linuxカーネル カーネルの起動オプション
なお、どのような起動オプションの指定が必要かはディストリビューションによって異なってきますので注意が必要です。上記はLASER5 Linux 6.0でうまくいった例です。 rootファイルシステムのマウント後にインストーラーが起動すれば、最大の難関のクリアです(^_^)。
以下、Alphaマシン固有の注意点について記述します。Linux共通の事項に付いては他のドキュメントなどを参照してください。
表1に示したように、パーティションの形式により利用できるローダーが限定されますので、この時点で最終的にインストールするローダーを決定する必要があります。なおインストーラをabootで起動していても最終的なローダーをmiloにすることや、その逆も可能です。 今回は最終的なローダーとしてabootを利用する前提で、BSD形式のパーティションを作成してみましょう。パーティション設定では手動設定を選択して、図6のようにfdiskを起動してパーティションの設定を行う必要があります。BSD形式のパーティションはfdiskでないと作成できませんので、注意してください。
以下は、パーティションbにswap用として128MB、パーティションeに/用として1024MBを割り当てた場合の例です。 Command (m for help): b ← BSD形式のパーティション作成モードを指示 Warning: starting partitions at cylinder 1 will... ← パーティションはシリンダ2から開始するようにという警告 /tmp/sda contains no disklabel. Do you want to create a disklabel? (y/n) y ← ディスクがBSD形式になっていなかった場合は、BSD形式用のパーティション管理情報を新規に作成することを求められる。 BSD disklabel command (m for help): n Partition (a-h): b First cylinder (1-1106, default 1): 2 ← 先頭のシリンダは、abootをインストールするために利用しないでおく Last cylinder or +size or +sizeM or +sizeK (2-1106, default 1106): +128M BSD disklabel command (m for help): t Partition (a-c): b Hex code (type L to list codes): 1 ← ext2 は8、swapは1を指定 一覧を表示したい場合はLを指定する BSD disklabel command (m for help): n Partition (a-h): e First cylinder (1-1106, default 1): 19 Last cylinder or +size or +sizeM or +sizeK (19-1106, default 1106): +1024M BSD disklabel command (m for help): t Partition (a-c): e Hex code (type L to list codes): 8 BSD disklabel command (m for help): p ← 結果表示 5 partitions: # start end size fstype [fsize bsize cpg] b: 2 18 17 swap c: 1 1106 1105 unused 0 0 ← cパーティションは慣習的にディスク全体を意味するため、このようにディスク先頭を含むように設定されています。 e: 19 149 131 ext2 BSD disklabel command (m for help): w ← 書き込み
図6: パーティション設定例
パーティション作成の後は通常通りインストールを行っていきます。
インストールの最後にabootを書き込む必要があります。 abootの書き込みは、インストールの一貫として行える場合もありますが、筆者が確認した限りでは構成によっては書き込みに失敗する場合や、そもそも自分で書き込まないといけない場合も多いため、手作業で行う方法を知っておいて損はないでしょう。 abootを書き込むためには、まずローダーのイメージファイルを探す必要があります。これは通常bootlxという名前で/bootディレクトリにあります。またswritebootという書き込みプログラムが実行可能である必要もあります。 Alt + F2などを押して、別のコンソールからシェルを起動した上で、図7のようにインストール済の領域にchrootしてコマンドを起動してみましょう。
#mount ← インストール先の領域がどこにマウントされているかを確認する /dev/root / ext2 rw 0 0 /proc /proc proc rw 0 0 /dev/pts /dev/pts devpts rw 0 0 /tmp/cdrom /mnt/source iso9660 ro 0 0 /tmp/loop /mnt/runtime cramfs ro 0 0 /tmp/sda5 /mnt/sysimage ext2 rw 0 0 ← ここが起動イメージ /proc /mnt/sysimage/proc proc rw 0 0 (*) dfコマンドがあれば、dfコマンドでも同様の出力が得られます #chroot /mnt/sysimage ← Red Hat Linux 7.1の場合 (*) Debian GNU/Linux 2.2r4の場合は #chroot /target #/sbin/swriteboot ← コマンドを起動してみる Usage: swriteboot [-f[1-8]] [-c[1-8]] [-v] disk bootfile [kernel]
コマンドの動作が確認できたら、以下のようにしてabootをインストールしてください。これによりディスク先頭のシリンダ1にabootが書き込まれます(注7)。
#/sbin/swriteboot /dev/sda /boot/bootlx
もし、
#/sbin/swriteboot /dev/sda /boot/bootlx error: bootcode overlaps with partition #3. If you really want to this, use -f3
のようなエラーがでた場合は、ディスク先頭のシリンダ1を利用しているパーティションが存在しています。
cパーティションをシリンダ1から確保している場合など、上書きをしても問題ないという場合は、エラーメッセージに記述されている「-f[パーティション番号]」オプションを利用して強制的に書き込んでください。これで、インストールは完了です。
再起動後、SRMコンソールから起動してみましょう。
図8のように入力することで無事起動に成功すれば、まずはインストール完了です。
>>>boot dkc -file 5/boot/vmlinuz.gz -flags "root=/dev/sda5" ||~~~~~~~~~~~~~~~ |~~~~~~~~~~~~~ || +----- 起動オプション |+----- パーティション内のLinuxカーネルへのパス +---- パーティションe(eは5番目)
図8: SRMコンソールからのaboot経由でのLinuxの起動
コラム: SRMコンソールのコマンド SRMコンソールを操作する上で、最低限これだけは知っておいた方がよいと考えるコマンドに付いて、説明します。なお詳細は、SRM-HOWTO(http://www.linuxdoc.org/HOWTO/SRM-HOWTO/)などを参照してください。
|
手作業で起動することが確認できたら、最後に自動起動の設定を行いましょう。 まずは、図9のように変数に適切な値を設定して、bootコマンドにオプションをつけずにLinuxが正しく起動することを確認してください。
>>> set bootdef_dev "dkc" >>> set boot_file "5/boot/vmlinuz" >>> set boot_osflags "root=/dev/sda5" >>> boot ← オプションなしでLinuxを起動
ここまで正常にLinuxが起動したら、最後にSRMコンソールから
>>> set auto_action BOOT
として、auto_action変数をBOOTに設定します。これで再起動すると自動的にLinuxが起動するようになる筈です。
ここまでどうでしょうか? さすがワークステーションだけあって、一筋縄ではいかないところもありますが、慣れればそんなに難しくはありません。 次回は、miloをローダーとしてWindows NTとのデュアルブートを実現させてみたいと思います。