どうもみむらです。
VirtualBox や VMware だとできるのに、
Hyper-V だと出来ない事。色々とあります。
多分一番大きなところは、共有クリップボードでしょうか。
最近 ESXi に VMware Remote Console でつなぎに行ってもクリップボードが使えなくなりまして
なんとも悲しい思いをしています。
さて。
Hyper-V では Linux で通常セッションは普通使えないのですが、
ふと「拡張セッションは本当に有効に出来ないのかな・・?」と思いやってみました。
結論としてはクリップボードの共有も、画面の高速な描画も出来した。
How to Implement.
1. 普通に Kali Linux をインストールします。
(Install the Kali Linux.)
2. 下記のスクリプトを Root で実行します。
(Execute the script with Root account on Kali Linux.)
bash –c “$(curl –sL https://go.mimumimu.net/2CQlyKy)”
# Do you want to check the code?, please check the page:
# https://gist.github.com/mimura1133/25451be04929d65993e0fb658d0b6890
3. Kali Linux をシャットダウンします。
(Shutdown the Kali Linux.)
4. 管理者権限の PowerShell で下記のコマンドを実行します
(Execute the PowerShell Script with Administrator Account on Host Windows OS)
Set-VM –VMName <YOUR_VM_NAME> -EnhancedSessionTransportType HvSocket
5. Kali Linux を起動します。
(Start the Kali Linux VM.)
正常にインストールが完了していれば、
5番で起動した際に、下記のように「拡張セッション」で接続しなおすように聞いてきます。
( When open the VM window, it will ask you an window-size settings if you’re finished the installation successfully. )
で、これって何をやっているの?
元ネタはこれ。
( Sneak Peek: Taking a Spin with Enhanced Linux VMs – Virtualization Blog )
下図が凄く分かりやすいのですが、
Hyper-V の 拡張セッションモードは内部的に “RDP” を利用して機能が実現されています。
早い話がリモートデスクトップのあれです。
(Src : https://channel9.msdn.com/Events/TechEd/NorthAmerica/2013/MDC-B330#fbid=M3oY0SjYJi2 )
今回のスクリプトを確認頂くとわかるのですが、
XRDP を用いて、VMCI (hv_sock) 経由で RDP 接続を受け付けることで
今回の「拡張セッションモード」を実現する、という構図です。
Ref : https://gist.github.com/mimura1133/25451be04929d65993e0fb658d0b6890
他の Linux 用のサポートはないの?
あります。
Microsoft のリポジトリで Arch Linux 用と Ubuntu 用が提供されています。
https://github.com/Microsoft/linux-vm-tools
Redhat 系列の場合は、xrdp パッケージが vsock オプションが使えるようにビルドされていませんので、
SRPM を取ってきてコンパイルオプションを設定してコンパイルしなおせば動きます。
というわけで、私自身の作業環境がこれでぐぐっと作業しやすくなりました。
であであー。