etsuxのブログ

自分がハマったことなどを記録しています。

仮想環境でOSXを入れるにはunlockerというものがあるらしい

皆さん、ESXiでOSXの夢を見ることがあるらしい。

ESXi 6.0を入れてみたので、同じような夢を見てみようと思い、unlocker 2.0.8を使ってみた。

Unlocker - InsanelyMac Forum

が、仮想マシンを起動しようとするとすぐに停止してしまう。

他にも「Unable to connect to the MKS: Cloud not connect to pipe \\.\pipe\vmware-authdpipe ~」なるメッセージが表示されたりする。

unlockerが効いていないか確認。

  1. syslog → unlockerが読み込まれたログがあるので問題ない。
  2. /bin/vmx → /unlocker/vmxへのシンボリックリンクになっているので問題ない。
  3. ps -c | grep vmx → vmx起動直後にプロセス情報を参照。/bin/vmxを指しているので問題ない。

上記は問題ないことを確認。

ちなみに、使ったバージョンは「ESXi-6.0.0-20170604001-standard-customized.iso」、vmxのコマンドラインではVMware ESX;version=6.0.0;buildnumber=5572656」となっているものであり、ESXi-Customizer-PS-v2.5でオンラインで持ってきたものになる。

最近更新されたビルド番号なので、やはりOSXのチェック強化が行われているからかもしれない。

 

また環境の作り直しになるが、ESXi-Customizer-PS-v2.5にizipオプションをつけて作ったほうがよさそう。

VMware Front Experience: ESXi-Customizer-PS

izipにはオフラインバンドルというものをダウンロードして指定しなければならないが、以下のサイトでダウンロードできるようだ。

https://my.vmware.com/ja/group/vmware/patch#search

これで古めのESXi 6.0を入手してやってみようと思う。

 

コマンドは以下のような感じになる。 

 .\ESXi-Customizer-PS-v2.5.ps1 -izip .\ESXi600-201511001.zip -pkgDir . -outDir .

 

カレントディレクトリのファイルは以下。

 

  • ESXi-Customizer-PS-v2.5.ps1 … スクリプト
  • ESXi600-201511001.zip … ダウンロードしたオフラインバンドル
  • net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64.vib … ドライバ
  • ESXi-6.0.0-20151104001-standard-customized.iso … 生成されたISO

 

unloker207まで提供されていたefi64-srvr.rom/efi32-srvr.romが必要との情報もあった。

Mac OSをインストール!(の準備) | 人畜無害のブログ

 

unlocker208のまま、efi64-srvr.romのコピーとvmxファイルの以下の編集で実行してみる。

smc.version = "0"
efi64.filename = "efi64-srvr.rom"

 

やはりvmware.logに以下のメッセージが出ている。

[msg.Backdoor.OsNotMacOSXServer] The guest operating system is not Mac OS X Server.

 

unlocker208はアンインストールして、unlocker207をインストールしなおす。

cd unlocker208

./esxi-uninstall.sh

cd ../unlocker208

./esxi-uninstall.sh

 

OSチェックが通って、インストーラの起動画面が立ち上がった。

今度はディスクが見えないが、ディスクユーティリティで消去すれば見えるようになった。

ESXi6.0にMac OS X El Capitanをインストールする。 - ダンデライオン

 

ESXi-6.0.0-20170604001でも、unlocker207が動作することを確認。

unlocker208は動作しなかった。

 

 

RDP Wrapperの実験~そしてWindows Update

Windows 10 HomeでRDP Wrapperを試してみる。

ESXiでWindows 10の仮想ゲストを作成し、RDP Wrapperをインストール。

[RDP Wrapper Configuration]画面を起動すると、[Listener state]が[not listening]のままで、起動できない。

調べてみたところ、RDP Wrapperのissueに上がっていた。

Listener is not listening on Win 10 Home (build 14997+) · Issue #194 · stascorp/rdpwrap · GitHub

ソースを見てみると、RDP-Tcpが無効化されている場合に動作しないようだ。(

WinStationEnumerateの情報はほとんどないので想像)
function IsListenerWorking: Boolean;
var
  pCount: DWORD;
  SessionInfo: PWTS_SESSION_INFOW;
  I: Integer;
begin
  Result := False;
  if not WinStationEnumerateW(0, SessionInfo, pCount) then
    Exit;
  for I := 0 to pCount - 1 do
    if SessionInfo^[I].Name = 'RDP-Tcp' then begin
      Result := True;
      Break;
    end;
  WinStationFreeMemory(SessionInfo);
end;

最近のWindows UpdateでRDP-Tcpの無効化が行われたと思われる。

以前ダウンロードしてあったWindows 10 1511のISOがあるので、それを使って再インストール。(「Windows 10 1511 ISO」で検索すると、今でもMicrosoftのサイトからISOはダウンロードできる模様)

再インストール後に[RDP Wrapper Configuration]画面を起動すると、[Listener state]が[Listening]になっていることを確認。

リモートデスクトップからの接続も確認できた。

 

しばらくすると、Windows Updateの準備が完了した旨のメッセージ。

Updateが当たるのは困るのでダウンロードしたと思われるファイルやUpdate関連のサービスを無効化したのだが、OSを再起動したらやっぱりUpdateされた。 

f:id:etsux:20170731213354p:plain

結局、Update後はRDP Wrapperは動作しなくなり、Updateによる影響であることが判明した。

ちなみに、KB4021572はアンインストール可能だが、アンインストールしても動作せず。

他の更新プログラムはアンインストールできないようになっていて、OSの再インストールしかない。

 ...本当にUpdateを強要するのはやめてほしい。

 

[追記]

Windows 10 1511 ISO」を再インストール後、すぐにWindows Updateを止めて永続的にRDP Wrapperが動作することが確認できた。

 

なお、Windows Updateの無効化は レジストリエディタで以下のキーを作成することでできた。

  1. 「HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows」まで展開する。
  2. 「WindowsUpdate」キーを作成する。
  3. AU」キーを作成する。
  4. DOWRD値で「NoAutoUpdate」を追加し、値を「1」にする。

 

 

VMware vSphere Hypervisor 6.0でのライセンス登録

6のライセンスなので、6.0も6.5も共通。

  1. VMware vSphere Hypervisor 6.5のダウンロードセンターにログインし、[ライセンスとダウンロード]に表示される[VMware vSphere Hypervisor 6 License]のライセンスキーをコピー。
  2. vSphere Clientを起動して、[構成]>[ライセンス機能]で表示される画面の右上端にある[編集]をクリックして表示された画面でライセンスキーを貼り付け。

f:id:etsux:20170730064655p:plain

VMware vSphere Hypervisor 6.0に変更

VMware vSphere Hypervisor 6.5はHTML5のみのクライアントとなっているので、クライアントPC側に多大な処理性能を要求する。

安物のノートPCでは何をするにも動作が遅くて使うのは無理。

ということで、VMware vSphere Hypervisor 6.0に変更することとした。

セットアップが終わった仮想マシン(Windows10)の仮想ディスクが破損したところなので、ちょうどいい機会。

 

HTML5クライアントに比べるとvSphere Clientは軽くてよい。

ローカルファイルの受け渡しも簡単だし、6.5はないな~。

 

VMware vSphere Hypervisor 6.5の仮想マシンからデータストアを参照(方法見つからず)

VMware vSphere Hypervisor 6.5の仮想マシン(Windows)にローカルにあるファイルを渡したいので、データストアを経由して渡す方法がないか調査。

 

やっぱりなさそうですね...

 

普通に共有フォルダかリモートデスクトップで渡すようにしたほうが早そう。

↓こういうこともできるらしい。

 

Windows Homeにリモートデスクトップで接続する方法 【RDPWrap】 - WICの中から

 

あと、持ち込みたいファイルをISO化して、データストアにアップロード、仮想マシンのCD/DVDに「データストアISOファイル」として割り当てる方法もある。

今回はISO WorkshopでISOを作ってアップロードしてみたが、ネットワーク設定ができるまではこのほうが簡単?

ISO Workshop のダウンロードと使い方 - k本的に無料ソフト・フリーソフト

 

VMware vSphere Hypervisorでの仮想マシン追加

VMware vSphere Hypervisorのインストールが完了したら、ブラウザからESXiにアクセス。

https://<ESXiのIPアドレス

 

以前はブラウザでアクセスしてvSphere Cllientをダウンロード、vSphere Clientから操作していたが、今はCllientがなくなってHTML5でのGUIだけになった。

vSphere Client (HTML5) と vSphere Web Client 6.5 の FAQ (2148759) | VMware KB

 

アクセスすると気になる2つ。

  • このホストに割り当てられた証明書はまだ有効ではありません。 有効な証明書をインストールする必要があります。
  • 現在 ESXi を評価モードで使用しています。このライセンスは 60 日後に有効期限が切れます。

「現在ESXiを評価モードで~」はVMware vSphere Hypervisor 6.5 ダウンロード センターの「ライセンス情報」の「ライセンス キー」をコピーして、VMware ESXiのライセンスに貼り付け。

f:id:etsux:20170716203211p:plain

証明書のほうは後回し。

 

USBのDVDドライブをESXiに接続して、OSメディアを差し込んで仮想マシンにインストールしようとしているが、CD/DVD ドライブ 1を「ホストデバイス」にしてもCD/DVD メディアが「none」以外に選択できず認識されていない。

とりあえず、「アクション>サービス>SSHの有効化」と「コンソールSSHの有効化」を行って、SSHコンソールを開く。

TeraTermからパスワードでSSHでつなげられるように/etc/ssh/sshd_configの設定を変更。

PasswordAuthentication yes

SSHを再起動すれば、TereTermから接続できるようになる。

/etc/init.d/SSH restart

 

とやってみたものの、USBのDVDドライブを認識させる方法がわからず。

 

STYLE-IL11-i7S-HNV購入とVMware vSphere Hypervisorの構築

iiyamaの省スペースPCを購入。

iiyama STYLE-IL11-i7S-HNV [Windows 10 Home] | パソコン工房【公式通販】

大きさとスペックがよい自宅のセンターサーバー用(自分の実験用)。

 

ここにVMware vSphere Hypervisor環境を作って、仮想マシンをいくつも立てて、夢を見てみようと思う。

無償の VMware vSphere Hypervisor, 無償の仮想化 (ESXi)

VMware-VMvisor-Installer-201701001-4887370.x86_64.iso 

 

サイズが328 MBしかないのでISOをCD-Rに焼いて、インストールを始めたらすぐにエラーが出た。

「nfs41client failed to load」

How to fix nfs41client not load ? |VMware Communities

いろいろ書いてあるけど、ESXiとNICで調べてみるとNICが対応していないとダメらしい。つまり、エラーの原因は NICRealtekなので、ESXiに標準に提供されているドライバでは対応できない、ということらしい。

仮想環境なのでネットワークなしというわけにはいかないので、ネットワーク関連を無視してインストールするのはありえないから、対処は必須。

 

 

読みやすそうな参考記事はこのあたり。

VMware ESXiをインストールしたら「No network adapters」ではまった時の対処法 - Qiita

 

必要なファイルをダウンローしようとリンクをたどっていくと、ESXi-Customizer-PS-v2.5.ps1は飛び先がDonate(寄付)のところ。少し上にスクロールすれば、ダウンロードリンクがあるのでそこからダウンロード。

VMware Front Experience: ESXi-Customizer-PS

 

ダウンロードしたファイルは以下の3つ。

  • VMware-PowerCLI-6.5.0-4624819.exe
  • ESXi-Customizer-PS-v2.5.ps1
  • net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64.vib

 

VMware-PowerCLIをインストールしようとすると、PowerShellのポリシー変更が必要とのこと。

コマンド:Set-ExecutionPolicy RemoteSigned

 

念のため、注意書きを読んでおく。とりあえず大丈夫とする。

about_Execution_Policies

RemoteSigned
- スクリプトを実行できます。Windows Server 2012 R2 の既定の実行ポリシーです。
- インターネット (電子メールとインスタント メッセージング プログラムを含む) からダウンロードされたスクリプトと構成ファイルが、信頼された発行元によってデジタル署名されている必要があります。
- ローカル コンピューター上で記述された (インターネットからダウンロードされていない) スクリプトには、デジタル署名は必要ありません。
- Unblock-File コマンドレットの使用などによってスクリプトのブロックが解除されている場合は、インターネットからダウンロードされた、署名されていないスクリプトが実行されます。
- インターネット以外をソースとする署名されていないスクリプトや、署名されているが悪意のあるスクリプトが実行される危険性があります。

 

PowerShellで実行したら

Set-ExecutionPolicy : レジストリ キー 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerS
' へのアクセスが拒否されました。 既定 (LocalMachine) のスコープの実行ポリシーを変更
ョンを使用して Windows PowerShell を起動してください。現在のユーザーの実行ポリシーを
-Scope CurrentUser" を実行してください。
発生場所 行:1 文字:1
+ Set-ExecutionPolicy RemoteSigned
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (:) [Set-ExecutionPolicy], Unauthor
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShe
nd

 

あ、PowerShellを「管理者として実行」で起動するんですね。→無事完了。

VMware-PowerCLIのインストールで[Continue]ボタンを押してインストール完了。

 

続いて、PowerShellESXi-Customizer-PSのスクリプトを実行。

about_Execution_Policiesの-v65の説明が間違っているけど。

-v60 : Create the latest ESXi 6.0 ISO
-v65 : Create the latest ESXi 6.0 ISO

 

以下のコマンドを実行。

.\ESXi-Customizer-PS-v2.5.ps1 -v65 -pkgDir O:\download

 

に不要なZIPファイルなどがあると読み込みに多少時間がかかる上にFAILEDが出て無視される。pkgDirには余計なファイルはおかないように注意。

 

Loading Offline bundles and VIB files from O:\download ...
Loading O:\download\XXXXXXXX.zip ... [FAILED]
Probably not a valid Offline bundle, ignoring.
Loading O:\download\net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64.vib ... [OK]
Add VIB net51-drivers 1.0.0-1vft.510.0.0.799733 [New AcceptanceLevel: CommunitySupported] [OK, added]

 

カスタマイズ版のISOの作成が完了。

ESXi-6.5.0-20170404001-standard-customized.iso

 

標準のISOをCD-Rに焼いて(2回)でインストールに失敗したので、今度はDVD-RWに焼くことにした。常識かもしれないけど、↓のとおり。

  • DVD-RWでもISOイメージは焼ける。
  • 起動用のディスクに使える。
  • DVD-RWのほうがCD-RよりもESXiのインストールのファイルの読み込みが速い。(なぜかは知らない)

最初のエラーも起きなくなり、「nfs41client load successfully」で進んだ。

ESXiのインストール先にはSSDを選択したが、HDDにしておいて、SSDはOSの仮想イメージにしたほうがよかったかも。