Linux+Solaris HOWTO MaxBerger <max.berger@xslt.de> v0.8-$Revision: 1.1 $, $Date: 2000/04/17 23:48:03 $ 日本語訳: 木村 智明<t-kimura@po.shiojiri.ne.jp> v1.0.0j May. 13, 2001 この HOWTO は、1台の PC で Linux(x86) と Solaris(x86) を一緒に使う方法 について書かれています。 イントロダクション なんで Solaris なの?

実によい質問ですね。 Linux を使うことができるご時世に、なんで Solaris なのでしょう? Solaris は商用システムですから、サポートするハードウェアは多くはありません。 でも、この文章を読んでいるということは、すでに Solaris を使おうと決めて いるのかもしれませんね。そうでなくとも、使ってみるべき理由はいくつかあります - 私の場合、Solaris マシンのシステム管理のアルバイトをしています。 ですから、自宅で Linux の巧みなコマンドパラメータや、気の利いた コツを覚えてみても、Solaris マシン上で使えなければなんにもならないのです。 Sun 社は Solarils を``送料と手数料のみ''で何度か提供していますし、 これからもそのような形で提供されるでしょう。 この``ほとんど無料''というのは、なかなか魅力的です。 CDE が好きだというのも、Solaris を使う理由になるかもしれません。

この HOWTO で触れられている事

この HOWTO では、すでに Linux が動いている x86 マシンに対して、 Solaris 7 または 8 をインストールしようとするのを、助けようと するものです。主に対象とするのは、 データを破壊しないようにインストールするには、 の章を読んでください。 Linux と Solaris を共存させる( boot manager を利用)には、 の章を読んでください。 Linux と Solaris の間でデータを共有するには、 の章を読んでください。

参照したバージョン

この文章を書くにあたって、参照したバージョン - Solaris 7 x86 (= Solaris 2.7 / SunOS 5.7) Solaris 8 x86 (= Solaris 2.8 / SunOS 5.8) Linux 2.2.14, 2.3.99-pre3 fdisk v2.10f この情報は、他のバージョンのソフトウェアにも適応できるかもしれませんが、 まったく違うかもしれません。

注意事項

お願いですから、システムからデータが消える前に、バックアップをとっておいてください。 この文章に記されている多くの事は、とんでもないデータの消失をおこすかもしれません。 私はデータの消失に対して、何ら責任をとれません。 の章もみておいてください。

ハードディスクの準備

Solaris のためにハードディスクを準備するには、一般的な PC の パーティションテーブルと、Solaris のディスクスライスについて知る 必要があります。 この HOWTO では、1台だけハードディスクを持つシステムについて述べていま すが、すべての情報は、複数台のディスク環境でも同じように適応できるでしょう。

伝統的な PC のパーティション

標準的なパーティションテーブルでは、4つだけエントリーがあります。 我々にとって重要なエントリーは、下記のものです - プライマリ パーティション

1つ確保されます。 またぴったり1つのパーティションを含んでいます。 リソースの無駄遣いのようですが、ブートできるのはこのパーティションだけです。

拡張領域(拡張パーティション)

1つ確保されます。ここには、DOS や Linux など他のパーティションを含 む事ができます。

Solaris パーティション

1つ確保されます。ここには、複数の Solaris パーティションを含むことができます。

自分のシステムに何のパーティションがあるのか知るために、fdisk を使いましょう。パーティション番号 1 から 4 (hda1..4, sda1..4, ...) は、パーティションテーブルの1つです。
Solaris パーティションラベル

Solaris は独自のパーティション機構を持ちます。この機構では、パーティ ションテーブルのうち1つの領域を使い、それが(Solaris における)全体の ディスクとして振舞うことになります。

この仮想ディスクは、(最大)8つまでのスライスに分割されます。3番目 のスライス、s2 は、仮想ディスク全体をカバーしています。そのため、実際 には Solaris の為に7つまでのスライスを持つことになります。

あいにく、Solaris パーティションは、Linux の Swap パーティション (82)と同じタイプです。それゆえ、Linux の Swap パーティション(82)をプラ イマリパーティションとして確保する事ができません。Linux では問題になり ませんが、Solaris ではどうなのか誰にもわかりません。

Linux の fdisk は、``Sun disklabel'' をサポートしているのですが、こ れが役立つようには思えません。

ハードディスクの容量

当然ですが、Solaris はディスク領域を必要とします。Solaris 8 の最小インストール で、300MB 程です。 一般的なツールのインストールには 700MB 程、``developer-system''では、 およそ 1GB 必要です。

しかし、これは基本インストールに必要とされる領域に過ぎません。あな たは多くの GNU-Tools をはじめ、他もろもろをインストールしたいでしょう。 それにもし Solaris - Linux 間でデータの共有をしたい場合、共有は Solaris のパーティション上で行わねばなりません。

あなたはもしかして、Solaris - Linux 間で home ディレクトリの共有ま で考えているかもしれません。これを書いている時点において言うならば、そ んな考えは捨ててください! 私は自分の home ディレクトリを共有しようとして、めちゃめちゃにしてしまい、 バックアップにすごーく感謝しました。 この章も参照してください。

簡単なチェック項目

これらは簡単なチェック項目です。自分で確認してみてください - パーティションテーブルにあるエントリのうち、使っているのは3つ以下ですか? プライマリパーティションとして、Linux swap パーティションではないパーティ ションが確保してありますか? 少なくとも1つの Linux ext2 パーティションが、プライマリとして確保してあ りますか? パーティションに区切っていない領域が、少なくとも 1GB 以上ありますか?

Linux の準備 新しい kernel の構築

人によっては、kernel の再構築が嫌いな方がいます。 もし、1つのハードディスク上で Solaris - Linux 間でデータ の共有をしたいのなら、必ず kernel の再構築をする必要があります。 しかし、データの共有をしたくないのであれば、古い kernel を使う 事で kernel の再構築は避ける事ができます。

kernel のオプションに、``Solaris compatibility''というのがあります - code maturity の下層 - Prompt for development drivers

残念な事ですが、UFS への書き込みは、まだ実験段階です。

file systems において - UFS file system support

UFS は、Solaris のファイルシステムです。

UFS file system write support

Solaris にデータを渡す、唯一の方法です。

partition types / Solaris (x86) partition table support

Solaris パーティションに含まれているスライスをみ つけるために必要です。

kernel の構築に関するより詳しい情報は、Kernel-HOWTO で見つける事ができます。

ブートローダの準備

ブートローダをいじくる前に、もとのシステムを起動可能な、緊 急起動ディスクが用意してあるか確認してください。

残念ながら、Solaris のインストールでは、マスターブートレ コード (master boot record : MBR) や、もともとあるブートマネージャを上書 きしてしまいます。

しかし幸いなことに、Solaris のブートマネージャは、チェインブー トが可能です。この機能を使うためには、古いブートローダ (e.g. lilo) を、 プライマリ Linux パーティションのブートセクタに置く必要があります。

lilo に関しては、次のようになります - /etc/lilo.conf を見てください。その中にある boot= の行を探してください。もしその行が、 boot=/dev/hda1 の様になっていたら、全てうまくいっています。 しかし、その行がもし boot=/dev/hda の様になっていたら、 それは MBR を指しています。プライマリ Linux パーティションを指すように、 変更してください。 (e.g. boot=/dev/hda1)

ブートローダがチェインブート可能かどうか調べる方法は、lilo を MBR へインストールしてみて、他のブートマネージャでチェインブートができるか試してみることです。私は、次に示すようなlilo.conf.mbr と名付けたファイルを使っていました。 こんな内容です - #lilo.conf.mbr #Lilo in Master Boot Record doing nothing but chain-loading another lilo boot=/dev/hda root=/dev/hda5 install=/boot/boot.b map=/boot/map vga=ask delay=50 other=/dev/hda1 label=lilochain これを lilo -C lilo.conf.mbr と実行する事で、 MBR に lilo をインストールできます。また、lilo をハードディスクの ブートセクタにインストールするために、lilo を実行する事を忘れ ないでください。

ここで直ちにリブートすると、起動時に lilo プロンプトが現れる はずです。 この状態のとき other を選択すると、もともとある lilo が起動され、Linux の起動に移行していきます。

Solaris のインストール Solaris interactive

Solaris 7

Solaris の対話式インストールは、一枚目のCDにあります。 一枚目から起動して、Solaris interactive を選択してください。

Solaris 8

Solaris 8 では、対話式インストーラは software CD の一枚 目にあります。インストール CD は、全く必要ありません。

Solaris のインストール自体は、整然と進んでいきます。混乱するとすれば、 パーティションの確保でしょう。Solaris は、自動的にハードディスクの空き 容量全部を使って、仮想ディスクを作ります。 ですから、仮想ディスクにスライスを確保する段階になったら、 Solaris/Linux 間のデータ交換用の領域を追加する事を忘れないでください。 この為に便利なマウント場所は、/export/share の様な、 拡張パーティションです。

注意事項 - もし Solaris インストール最中に作業を中断してしま うと、この段階ではすでにハードディスクの MBR が書き換えられてしまってい るでしょうから、二度とハードディスクから起動できなくなるかもしれません。

Web-Start

私は一度も Web-Start でうまくいった事がありません。 もしこれを使った経験がある方がいらっしゃいましたら、メールをください。

しかし、一旦 Solaris をインストールしてしまえば、 web-start-package で問題が起きた事はありません。

GNU-tools の入手

Solaris の標準インストールでは、less コマンドすらイン ストールされません。そんなものは、Solaris 向け RedHat Package Manager(RPM) からもってくれば? と薦めるかたもいますが、通常は標準のパッケージ tool を使います。 多くのすばらしいパッケージは、 で見つける事ができます。 標準パッケージは、次のコマンドでインストールできます。 pkgadd <package> また web-start ではこのようになります。java <packagewithoutclassextension>

ブートに関して Solaris 付属のブートマネージャを使う

ブート時、Solaris のブートマネージャでは、どのパーティション から起動するのか、4つのプライマリパーティションから選択できます。 もし自分のブートローダを、プライマリパーティションのブートセクタにインス トールしているのなら、全てうまくいくでしょう。 このパーティションからブートさせるだけで、Linux が起動するはずです。

lilo を使う

今、lilo は二番目のブートローダとして機能しています。 しかし、もう一度第一のブートローダとして使いたくありませんか? 何も問題はありません。lilo は簡単に Solaris をチェインブートできます。 ただ、lilo.conf に対して、適切に other= の行を付け加えればよい だけです。

テストするにあたって、まず初めに Solaris のチェインロードを ブートセクタにある lilo に加えてみましょう。そして心ゆくまで、 lilo Solaris ,lilo Solaris ... と チェインロードさせてみましょう。 もしこれがうまくいくようなら、lilo を再び MBR へ戻す事ができるでしょう。

しかしながら、Solaris がパーティションテーブルをめちゃめちゃ にしてしまったかもしれません。この事は、私のシステムに Solaris 8 を インストールした後、発生しました。 lilo は新型のパーティションとは相性がよくありません。fdisk も同様です。 Solaris 7 の時は、なにも問題がなかったのですが。

grub を使う

大変残念な事なのですが、私は Solaris で grub boot を経験した 事がありません。だれか経験がある人がいましたら、私までメールを下さい! (訳注 : grub とは、GNU GRUB という Multiboot ブートローダの事です。 詳しい情報が必要な方は、GNU GRUB のサイト へアクセスしてみてください。)

データの共有 共有パーティションを使う

もし「」の章で触れたように、 カーネルを Sun ディスクラベルと UFS をサポートするように構築しているのなら、 Solaris パーティションをマウントする事ができます。 カーネルのブート中に、次の様なメッセージを目にするでしょう - hda: [PTBL] [523/255/63] hda1 hda2 < hda5 hda6 hda7 hda8 > hda3 <Polaris: [s0] hda9 [s1] hda10 [s2] hda11 [s3] hda12 [s6] hda13 [s7] hda14> このケースでは、パーティション 3 (hda3) は、 6つのスライス (s0,s1,s2,s3,s6,s7) をもつ Solaris パーティションを意味し ます。これらのスライスは、Linux において、hda9 から hda14 のデバイスとして認識されます。

Solaris のパーティションを、マウントしてみましょう。 UFS パーティションをマウントする時には、常に -oufstype= の指定 が必要です。このケースでは、-oufstype=sunx86 となります。 つまり、パーティションをマウントするコマンドは、この様になります - mount -oufstype=sunx86 /dev/hda14 /mnt さあ、パーティションを確認してみましょう。 注意点 - UFS パーティションに対しての書き込みは、まだ実験的 なものです。お願いですから、UFS パーティションに書き込んだデータを信用し ないようにしてください。

もし、Solaris パーティションをブート時に自動でマウントするよ うにしたければ、次の様な行を /etc/fstab に加えてください。 /dev/hda14 /solaris ufs ufstype=sunx86 0 0

その他の手段

当たり前の事ですけど、データを共有するには他の手段もあります - フロッピーディスク

私は、フロッピーディスクのどのファイルシステムが Solaris で使えるのか知りません。 知っていたらメールをください。

ネットワーク経由

Solaris は NFS が利用できます。Linux も NFS が使えます。 この方法は、データを共有するには一番良い方法かもしれませんね。

他のシステムのバイナリーを実行させる Solaris 上で Linux のバイナリーを実行する

これは、``lxrun''というプログラムを使う事でサポートされていま す。私には、まだこのプログラムをテストする暇がありません。もっと情報が必 要でしたら、Solaris のウェブサイトをみてください。

Linux 上で Solaris のバイナリーを実行する

私の知る限り、サポートされていません。

さらに情報を見つけるには

これらの URL は、きっと役に立つでしょう - 私が Solaris 用のリソースを見つけるにあたって、まず 最初にアクセスするサイトです。多くの GNU-tools が、バイナリ形式で即イ ンストールできる状態になって置いてあります。 Sun 社の公式サイト いつでもこのドキュメントの最新バージョンを、ページのどこかで 見つける事ができます。

謝辞 お礼

自分のマシンに Solaris をインストールし、この HOWTO を検証してく れた Marcel Meyer 氏に感謝いたします。

疑問, 注文, 提案

これらは、いつでも歓迎します。 max.berger@xslt.de までどうぞ。

著作権

訳注:著作権に関する宣言は、原文を尊重することとし、訳は参考程度にとどめます。

This document is copyrighted © by Max Berger. You may use and/or modify it according to the Linux Documentation Project License (LDPL) found at .

参考訳:この文章の著作権は、Max Berger が所有します。 この文章の利用及び変更にあたっては、Linux Documentation Project License(LDPL) に従ってください。 Linux Documentation Project License(LDPL) は、ここで見る事がで きます。.

According to the license you don't have to tell me, but I'd very much like to know when you modify and/or republish this document.

参考訳:このライセンスに従う限り、私に連絡をする必要はありません。 ですが、私にとって、この文章が改良されたり再出版されたりする事を知るのは、 とっても嬉しい事です。

Although the information given in this document is believed to be correct, the author will accept no liability for the content of this document. Use the tips and examples given herein at your own risk.

参考訳:この文章で書いた情報は正しいものであると信じていますが、 作者はこの文章の内容に対して、なんら責任を負いません。 この文章中に出ているサンプルは、自己責任において使ってください。 日本語訳について

日本語訳 初版: 2001年 5月 13日

この文書を翻訳及び編集するにあたり、以下の方々からアドバイスを頂きました。 (50音順) 本当にありがとうございました。 岡本 さん 大畑 さん 後藤 雅晴さん 小林 雅典さん 境真 太郎さん 佐野 武俊さん 鈴木 康弘さん 千旦 さん 高城 正平さん 山下 義之さん