English | Japanese Author: Ken Kato
Mail: chitchat<DOT>vdk<AT>gmail<DOT>com

仮想な背中


仮想な背中 > Solaris Tips & Tricks

Solaris Tips & Tricks

はじめに

ここに挙げるのは VMware 上に Solaris 8 環境を構築するための情報ですが、 一から十までの手順書ではありません。Solaris ゲストをインストール、設定する 際に役立つ(であろう)豆知識・小技と注意すべき点などだけです。

Solaris インストールについて詳しくは Jan Exss 氏のページがお勧めです (http://www.jan.exss.de/vmware/solaris/en_index.html)。 インストール手順の詳しい解説や、カスタム・ジャンプスタート (自動インストール)用のフロッピイメージ、Soraris インストール用の VMware 仮想マシンなどが入手できます。
日本語の解説ページでは http://www.ukkii.com/solaris/ がお勧めです。

Solaris にある程度なれている人には Juergen Keil 氏の "Resource for Solaris" (http://www.tools.de/solaris/) ページが非常にお勧めです。 VMware に特有の情報はありませんが、Ensoniq 1371 (VMware 4.x のサウンドデバイス) のドライバ、PS/2 ホイールマウスドライバ、最新の XFree86 ビデオドライバの移植版など、VMware でも使えるものがいろいろあります。

NOTE: このページは VMware Workstation 3.x 上の Solaris 8 ゲスト を対象に書かれています。VMware Workstation 4.x や Solaris 9 にも当てはまる こともあると思いますが、まだきちんと調べてはいません。

TOP

VMware バージョンの選択

VMware Workstation 3.0 以降をお勧めします。 VMware バージョン 2 でも Solaris を使用することは可能ですが、 以下の理由からあまりお勧めはできません:
TOP

仮想マシンの設定

TOP

OS のインストール

TOP

ハードドライブの DMA を有効にする (Solaris 8)

仮想マシンのディスクアクセスは DMA なしでは非常に遅いです。 DMA を有効にしても超高速になるわけではありませんが、それでも かなりの違いがあります。 Solaris 8 では DMA はデフォルトで無効になっているので手動で有効にする必要があります。
  1. 仮想マシンを起動します。
  2. "SunOS Secondary Boot" 画面で <ESC> を押します。
  3. "Solaris Device Configuration Assistant" 画面で <F2> を押します。
  4. "Identified Devices" 画面で <F2> を押します。
  5. "Boot Solaris" 画面で <F4> を押して "Boot Tasks" へ進みます。
  6. "Boot Tasks" 画面で "View/Edit Property Settings" を選択して <F2> を押します。
  7. "View/Edit Property Settings" 画面で "ata-dma-enabled" の値を "1" に変更します。
  8. <F2>、<F3> の順に押して "Boot Solaris" 画面に戻ります。
  9. "DISK" を選択し、<F2> を押して OS の起動を続行します。
TOP

高解像度の画面を使用する

VMWare SVGA ドライバは正式なものがないので、高解像度の画面を使用するには サードパーティのドライバを使用しなければなりません。 VGA 画面での Solaris (スクリーンショット #1#2) はどう多めに見ても使い物になるようなものではありません。

そのような SVGA ドライバは現在以下のようなサイトから入手できます:

私の個人的なお勧めは Juergen Keil 氏のドライバです。最新の XFree86 リリース をベースとしているだけでなく、彼自身が Solaris や XFree86 に非常に詳しい人の ようで、彼のサイトには XFree86 の開発スナップショットの移植版まであります。

あいにくこれらのドライバが動かなかった場合でも、まだ他にも高解像度の 画面を使用する方法があります:

TOP

Solaris で VMware-Tools を使う (Solaris 8, 9)

lxrun を使用すれば、Solaris 上で Linux 用の VMware-Tools (の一部) を利用することができます。
Solaris ゲストで vmware-toolbox を実行すると、以下の機能が使用できます:

同様に vmware-guestd で以下の機能が使用できます: VMware-Tools による仮想ディスクの最適化(shrink)はできませんが、別の 最適化方法 があります。

lxrun ビルドと linux 環境の組み合わせによって動いたり動かなかったりするようです。 私の場合以下の組み合わせでのみ動作させることができました:

ご参考まで、私が試した組み合わせの一覧です:
Solaris バージョン lxrun ビルド linux 環境 実行結果
Solaris 8 02/02 lxrun 0.9.6pre1-sun1,
built on Nov 28 2001 at 02:35:11
(Solaris 8 companion CD 02/02)
redhat 6.2 (zoot-i386.iso) OK
lxrun 0.9.6pre1 オリジナル ソース
Solaris 8 上でコンパイル(gcc 2.95.3)
redhat 6.2 (zoot-i386.iso) OK
Solaris 9 12/03 lxrun 0.9.6pre1-sun1,
built on Nov 28 2001 at 02:35:11
(Solaris 8 companion CD 02/02)
redhat 6.2 (zoot-i386.iso) OK
redhat 7.3 (valhalla-i386-disk1.iso) NG
lxrun 0.9.6pre1-sun2,
built on Sep 6 2003 at 12:00:52
(Solaris 9 companion CD 12/03)
redhat 6.2 (zoot-i386.iso) NG
redhat 7.3 (valhalla-i386-disk1.iso) NG
lxrun 0.9.6pre1 オリジナル ソース
Solaris 9 上でコンパイル(gcc 2.95.3)
redhat 6.2 (zoot-i386.iso) OK
redhat 7.3 (valhalla-i386-disk1.iso) NG

必要な VMware-Tools バイナリを取得するには:

  1. Linux 用の VMware WS 3.x または 4.0.x パッケージ (tar.gz) を用意します
    すでに持っている場合はよいのですが、これらの古いバージョンはすでに VMware サイトから ダウンロードできなくなっているため持っていない場合は少々話がややこしくなります。 ウェブで見つけることはできます (たとえば "VMware-workstation-4.0.5-6030.tar.gz" を google) が、法的にはどうかな?という感じですので…まあ自己責任で…
  2. "linux.iso" ファイルを VMware tar.gz から抽出
  3. "vmware-linux-tools.tar.gz" ファイル (または似たような名前) を linux.iso から抽出
    どのみちこの iso ファイルには tar.gz ファイルが一つしか入っていないはずです。
  4. "vmware-guestd" および "vmware-toolbox" ファイルを vmware-linux-tools.tar.gz から抽出
お願い: tar.gz や iso からファイルを抽出する方法など私に質問しないでください。 また VMware-Tools の必要ファイルを送ってくれなどとも頼んでこないでください。

VMware-Tools for Linux を Solaris ゲストで実行するには:

  1. lxrun のマニュアルにしたがって lxrun をインストール、設定します。
    lxrun のインストール方法、設定方法などの質問はお断りします。ご自分で調べられない ようでしたら、おそらく VMware で Solaris を使うのもやめたほうがいいでしょう。 あくまでも *未サポート* OS ですから。
  2. linux.iso から vmware-linux-tools.tar.gz を抽出します。 (linux.iso はホストの VMware プログラムディレクトリにあるはずです。)
  3. vmware-linux-tools.tar.gz から vmware-toolboxvmware-guestd を抽出します。
  4. 2 つのファイルを lxrun の Linux ルートディレクトリ以下の任意のディレクトリに 置きます。(例: /lx-env/bin)
  5. lxrun を使って vmware-guestd、vmware-toolbox を起動します。
    	lxrun /lx-env/bin/vmware-guestd
    	lxrun /lx-env/bin/vmware-toolbox

システム起動時に vmware-guestd を自動起動するには:

  1. スクリプトファイル /etc/init.d/vmware-guestd を作成します。
    (スクリプト中のパスは環境に合わせて変更してください。)
    	#!/sbin/sh
    	# vmware-guestd
    	LINUX_ROOT=/lx-env
    	LINUX_PATHMAP=/lx-env/PATHMAP
    	export LINUX_ROOT LINUX_PATHMAP
    
    	case "$1" in
    	'start')
    		cd $LINUX_ROOT
    		$LINUX_ROOT/lxrun $LINUX_ROOT/bin/vmware-guestd --background $LINUX_ROOT/vmware-guestd.pid
    		;;
    	'stop')
    		/usr/bin/kill -TERM `cat $LINUX_ROOT/vmware-guestd.pid`
    		;;
    	*)
    		echo "Usage: $0 { start | stop }"
    		;;
    	esac
    	exit 0
  2. このスクリプトに /etc/rc2.d/S100vmware-guestd からリンクを張ります。
    シンボリックリンク、ハードリンクのどちらでもかまいません。

X セッション開始時に vmware-toolbox を自動起動するには:

  1. /usr/dt/config/Xconfig と /usr/dt/config/Xsetup を /etc/dt/config ディレクトリにコピーします。(/usr/dt/config ディレクトリのファイルを 直接編集することもできますが、コピーしたファイルを編集して元のファイル は手付かずで残しておく方が推奨されています。)
  2. Xconfig ファイルの以下の行のコメントをはずします:
    	Dtlogin*grabServer:        False
    こうしないとログインマネージャが画面を占有してしまい、 vmware-toolbox が開始できません。
  3. 以下のコマンドで、更新した Xconfig ファイルをログインマネージャに読み込ませます。
    	/usr/dt/bin/dtconfig -reset
  4. Xsetup ファイルの最後に以下の行を追加します。 (パスは環境に合わせて変更してください。)
    	# launch vmware-toolbox
    	$XDIR/xhost localhost
    	LINUX_ROOT=/lx-env
    	LINUX_PATHMAP=/lx-env/PATHMAP
    	export LINUX_ROOT LINUX_PATHMAP
    	$LINUX_ROOT/lxrun $LINUX_ROOT/bin/vmware-toolbox -geometry -10-76 --minimize &
    -geometry オプションと --minimize オプションはなくてもかまいません。
    注意:Solaris のログインマネージャは画面全体を黒のバックグラウンドで 覆ってしまうので vmware-toolbox はその後ろに隠されてしまいます。 ログインすれば見えるようになります。
補足: 最近の VMware プラットフォーム上で旧バージョンの vmware-tools を走らせると、 「VMware Tools が古い」というメッセージが VMware のステータス領域に表示されます。 vmware-guestd 開始後に "tools.set.version" バックドア RPC コマンドをゲスト内から送ることでこれを消去することができます。 たとえば私の"vmw"バックドアアクセスプログラムを使用します:
	# vmw rpc "tools.set.version 6433"
ここで使っている 6433 という番号は、VMware WS 5.5.2 build 29772 の VMware Tools が使用しているバージョン番号です。 もっと大きな番号(たとえば 10000)を使用しても問題はないようです。
TOP

仮想ディスクの最適化 (shrink)

  1. 仮想ディスクを Persistent モードにします。
    VMware 3.x の場合仮想ディスク設定を "Persistent" にします。
    VMware 4.x 以降の場合、スナップショットを削除するか、仮想ディスク設定を "Independent Persistent" にします。
  2. 仮想ディスクの未使用領域のサイズを求めます。
    	# df -b /
  3. 未使用領域と同じサイズの 0x00 で埋められたファイルを作成します。
    	# dd if=/dev/zero of=/bigfile bs=1024 count=<n>
    <n> は 手順 1 のコマンドで返された値です。
    ディスクフルエラーが出ても特に気にする必要はありません。
  4. 手順 2 で作成したファイルは不要なので削除します。
    目的は未使用セクタを 0x00 で埋めることでした。
    	# rm /bigfile
  5. 仮想マシンをシャットダウンして電源を切った後、Configuration Editor から "Defragment" 処理を実行します。次回仮想マシンの電源を入れた 時に「ディスクサイズが合わない」という警告が出ますが、特に害は ないようです。
補足: 私の "vmshrink" で、上記すべてを一挙に行うことができます。
TOP

CPU のアイドリング (Solaris 8)

初期の Solaris 8 (2001/07 あるいは 2001/10 以前のもの。正確にどのリリース からなのかはわかりません)は、OS がアイドルのときに CPU のアイドリングを 行いません。通常のループに入ってしまうので、CPU 時間を無駄に消費してしまいます。 カーネルアップデートパッチ 108529-09 以降(2003/02/14 時点で 108529-18 が 最新です)を当てます。
できれば Recommended Patch Cluster(Windows のサービスパックのようなもの)を 全て当ててしまう方がよいでしょう。(ただし全てのパッチを当て終わるのにかなり 時間はかかりますが。)パッチは SunSolve からダウンロードできます。

TOP

その他もろもろ

TOP