HOME / コンピュータTips / Solaris / Win4Solaris
Date: 2024/12/04 | | Tags: Solaris opensolaris Windows VMware Win4Solaris Win4Lin Win4BSD リモートデスクトップ
Win4Solarisという、Solarisの上で、Windowsを動作させるVMwareのようなアプリケーションがある。
これを購入してみた。
まずはルート権限で
loadwinproCD /export/vm/jp_winxp_pro_with_sp2.iso
結果
Checking CDROM... Media found: Windows XP Professional (Service Pack 2) Loading CDROM... please wait... .................................................. Windows CDROM load complete.
次に自分の権限でおこなうこと。
installwinpro -w winxppro -g 16G -m shared
出力結果
installwinpro: installation details: Target directory: /export/home/kohju/winpro Windows version: winxppro Installation mode: shared Guest image size: 16G installwinpro: launching guest installation...
するとウインドウがたちあがり、もりもりとインストール作業を始める。どうやらWindowsXPの自動インストール機能を使ってるみたいだ。QEMUやVMwareよりも、VM環境が楽に使えるのか?と期待してしまう。
ウインドウ中のアラートがでている。Do not show this againがでているし、「DO NOT」なんて強調されているので思わず、手でうつす。
Win4Solaris Pro 4.0 - winpro
The session will end automatically once the guest Windows installation is finished.In rare cases, you may instead see a screen that indicates it is safe to turn off the computer. Should this happen, DO NOT close the Win4Solaris Pro window , as this would abort your installation and erase it. Instead, press Shift + F12, and select the "Exit Session...." option, answering "Yes" when prompted for confirmation. This will allow your installation to finish properly and remain on disk.
You can safely ignore this massage if your guest Windows installation completes properly, as expected.
要するにこんな超意訳。
今回は、自動的にゲストWindowsをインストールしてそのまま終了します。まれに、ゲストマシンの電源が自動的に切れたり再起動しないときがあり、そのときの画面にはシステムを安全に電源OFFできるというような画面が出ています。このとき、Win4Solaris Proのウインドウを絶対に閉じないでください!!ゲストWindowsはインストールからやり直しになります。代わりにShift + F12を押すか、メニューからExit Session...を選び、Yesを選択してください。こうすることで、インストールは無事に完了します。
ってなワケ。
終わるとこんなMSGがでる。
installwinpro: launching guest installation... --total session runtime: 151m 29s
ライセンスについてはこのコマンドを入力する。
/opt/VBICw4s/bin/ask_license.sh
次のように登録。
Would you like to enter your license code now? (y/n) y Please now enter the license code for your copy of Win4Solaris Pro. If you received a license code via mail or the internet, when prompted type it in exactly as printed, including the hyphens. Otherwise the license code can be found on the Win4Solaris Pro CD sleeve. When prompted, please type this license code exactly as it appears on the CD sleeve (including the hyphens). Your Name: TAKI<<自分の名前をいれた Organization: JUSTPLAYER<<自分の会社名 License Code: 1w6p<ライセンスは購入品目の一覧にある> Is the above information correct? (y/n) y License accepted.
これで終わり。
winpro
で起動は可能なのであるが、デフォルトメモリが128Mと、きょうび、XPを動かすには、あまりにアレなので512Mぐらい、くれてやる。
$ cat winpro/settings.local
# DO NOT DELETE OR CHANGE MRGPRO_WINDOWS_VERSION OR MRGPRO_GUEST_INSTALL_MODE MRGPRO_WINDOWS_VERSION="winxppro" MRGPRO_GUEST_INSTALL_MODE="shared" # BEGINNING OF LOCAL USER SETTINGS MRGPRO_WINDOW_TITLE="winpro" MRGPRO_DISABLE_AUDIO="no" MRGPRO_WINDOWS_RAMSIZE="512"
あとは、ディスクに関連するもの・・・たとえば、復元ポイントを作るところは、親OSであるzfsのSnapshotを使えばいいし、いくつかの項目をひたすら落とす。
WindowsはOffice系アプリなど等が使えれば良いわけで、デバイス系は落としまくれば良い。
ファイルは、ホームディレクトリに保存されている。samba的な何かが立ち上がってるのかどうかは不明。
画面描画は、どうしても遅くなるので、winpro自体を最小化して利用し、リモートデスクトップを利用するという方法がある。リモートデスクトップはrdesktopをpkg-getなどを利用してインストールする。これについては割愛。
この方法だと、ホストOSがどのような画面解像度でも、フルスクリーンで利用することができるし、画面描画もそこそこ速くなる。OSにとって負荷の高い描画をホストOSで行うからだ。
しかしながら、もしかしたらwin4solarisのライセンスではこれはやってはいけないことなのかもしれない・・・・詳しくはわからないのだが、理由は下記をみて、想像して欲しい。
EXTRA_FLAGS="-redir tcp:3389::3389"
実は、これだけでは有効にならない。winproスクリプトでEXTRA_FLAGSを無効?にされているっぽい。
winproのスクリプトを下記のように書き換える。要するに、EXTRA_FLAGSをクリアしているところを除去すればよい。
*** 254,260 **** COREFLAGS="$COREFLAGS -soundhw es1370" fi # Make slight adjustments for each respective Windows version ! EXTRA_FLAGS="" CPUARCH=`uname -m` case $MRGPRO_WINDOWS_VERSION in win2k*) --- 254,260 ---- COREFLAGS="$COREFLAGS -soundhw es1370" fi # Make slight adjustments for each respective Windows version ! #EXTRA_FLAGS="" CPUARCH=`uname -m` case $MRGPRO_WINDOWS_VERSION in win2k*)
ホストOS側はこれで終了。
デフォルトでゲストOSのAdministrator=Solaris上の自分のアカウントになっているので、Administratorで普通に使った方が良い(笑
が、パスワードがわからないので、パスワードを設定する。
パスワード変更時、自動ログインになってるんだが、本当に良いのか?みたいなメッセージが出てくるが、とりあえず他に方法が無いので、パスワードを好きに設定する。
このパスワードはプレーンでどこかに記載しても良いような物でも良いんじゃないかと思う。理由はそっちの方がrdesktopで設定できて楽だから。
たとえば、こんなシェルスクリプトを作っておく。
#!/bin/sh rdesktop -g 1280x840 -k en-us -u Administrator -p admin localhost
パスワードはadminに設定しており、画面サイズは1280x840、キーボードは英語キーボードである。この画面サイズは好きに出来るので、自分のPCのサイズで一番良い物にすればいいだろう。ちなみにwin4solarisのエミュレーションウインドウは、サイズは自由に設定できないので、メリットが多いはず。
・・・
このようにすると、Win4Solarisのメインウインドウが、せっかく、自動的にデスクトップが起動したり、SingleAppモードが使えるのに、いちいちパスワードを入れないと、使えなくなってしまう
そこで、元のように戻すため、
ユーザーアカウント設定ウインドウを開く。
以上で、元のように戻るはず。
ホストOSには101/104英語キーボードが認識されているが、黙っていると中のWindowsXPは、101キーとして認識されてる割に、キーをたたいてみると106配列になっている。
一度、キーボードを106に変え、101に変えると修復可能。
win4solarisを利用していると、Windowsを利用しているときは速い一方で、何かをするときに、しばしばホストOSであるSolarisを巻き込んで重くなってしまうことがある。
WindowsというOSは、常々、なにをしてもすぐにOS全体を巻き込んで遅くなる。Solarisはそれがほとんど無いことがメリットであるが、この状態はWindowsの病気が移ってしまったかのように見える。
これは、カーネルレベルで動いているkqemuのせいだと思われる。kqemuはカーネルレベルでエミュレーションを行うため、OSの動きを加速させる。qemuの場合がCPUそのものをエミュレーションするのに対し、kqemuではBIOSエミュレーションのVMwareやVirtualPCに近い動きをする感じだ。
実際、win4solarisの上で動作しているWindowsでHDベンチを実行すると、次のような結果になる。
kqemu利用時(デフォルト)
ALL Integer Float MemoryR MemoryW MemoryRW DirectDraw 48408 106571 86465 71057 75666 145700 0 Rectangle Text Ellipse BitBlt Read Write Copy Drive 0 0 0 0 117295 25950 1710 C:\100MB
qemuモード
ALL Integer Float MemoryR MemoryW MemoryRW DirectDraw 30450 23371 11724 13208 14487 16987 0 Rectangle Text Ellipse BitBlt Read Write Copy Drive 0 0 0 0 129291 27923 1152 C:\100MB
意外にも、HDのアクセス速度が、誤差の中に止まっているのだが、CPU速度やメモリのアクセス速度はKQEMUが圧倒的に速い。
さて。
このままではqemuのモードにする意味はないのだが、冒頭で上げた通り、kqemuを利用したwin4solarisは、アプリ実行時にSolaris側がもたつくことがある。
具体的に言うと次のような形だ。
結局、これはエミュレータがKernelレベルで動いている?せいっぽい。
qemuを実行するとこうなる。
秒数はいい加減なのだが、要するに、そう言うことなのだ。
ということで、qemuモードにしたい人のパッチ。
まずは、上記のwinproのパッチを当てておく。
winpro/settings.localの編集を行い、
EXTRA_FLAGS="-redir tcp:3389::3389 -no-kqemu"
と行っておく。
起動時にワーニングが出るが、YESを選択しよう。後は利用してみるとわかるが・・・個人的にはこの真ん中が欲しいね(笑