2019/03/06

Windows Server 2016/2019 Hyper-V and Ubuntu 18.10 (追記あり)

ひさびさに Linux on Hyper-V ネタ。Windows Server 2019 Hyper-V Ubuntu Desktop 18.10 をインストールすると、再起動後に「[OK]Started GNOME Display Manager.」のところでハングするという話。ちなみに↓は第 2 世代仮想マシン(Microsoft UEFI 証明機関でセキュアブート有効)。メッセージからして、GNOME なしの Ubuntu Server では発生しないと思う。(未確認)

Ask Ubuntu に 1 つの解決策があった。別の方法があるかもしれないけどとりあえずこれで解消しました。

Stuck at Started Gnome Display Manager 18.10
https://askubuntu.com/questions/1102256/stuck-at-started-gnome-display-manager-18-10

Windows(Hyper-V)のバージョンが関係しているのかはわかりませんが、Windows 10 Hyper-V や Windows Server 2016 Hyper-V で同じ問題に遭遇した場合にも使えるかも。(未確認) (3/7 追記:Windows Server 2016 Hyper-V でも同様の現象が発生します。Wayland と Hyper-V 仮想マシンの相性の問題か?)

Linux や Ubuntu に慣れていないと、それこそ Recovery モードにどう入ったらいいのかの所から悩むと思うのでメモ。おまけで、Hyper-V KVP/VSS/FCOPY Daemon のインストール、解像度の変更、Hyper-V 拡張セッション モードの有効化も。


起動直後に Esc キーを押して(Ubuntu ロゴが表示される前の紫ベタ画面で)、GNU GRUB メニューを開き、「Ubuntu, with Linux ・・・ (recovery mode)」を選択して、「root」シェルを開く。

root@hostname:~# mount -o remount, rw / (root # なので sudo は不要)
root@hostname:~# vi /etc/gdm3/custom.conf (pico でも nano でもいいけど)
 #WaylandEnable=false
 を
 WaylandEnable=false (ログイン画面に Wayland ではなく Xorg を使用)
に変更して上書き保存。ちなみに、LiveCD はこの設定になってるから起動するみたい。
root@hostname:~# reboot

再起動後、問題解決。


3/7 追記...

ソフトウェアの更新したら、xwayland の更新があったけど...

username@hostname:~$ sudo apt-get update
username@hostname:~$ sudo apt-get upgrade



/etc/gdm3/custom.conf を #WaylandEnable=false に戻して再起動したら、やっぱり「[OK]Started GNOME Display Manager.」のところでハング。

参考:
Wayland は Ubuntu 17.10 から採用されたみたいですが、高い品質が求められる LTS(18.04 LTS )では Xorg が既定。その経緯はこちら↓ 現在の Wayland はクラッシュするとみんなを道連れにするそうな。

Bionic Beaver 18.04 LTS to use Xorg by default
https://blog.ubuntu.com/2018/01/26/bionic-beaver-18-04-lts-to-use-xorg-by-default
Xorg will be the default in 18.04 LTS
https://community.ubuntu.com/t/xorg-will-be-the-default-in-18-04-lts/3623


おまけ...


Hyper-V VSS/KVP/FCOPY Daemon をインストールするには...

username@hostname:~$ sudo apt-get update
username@hostname:~$ sudo apt install linux-cloud-tools-common linux-cloud-tools-generic linux-cloud-tools-virtual linux-cloud-tools-lowlatency
username@hostname:~$ reboot
動作確認
username@hostname:~$ systemctl status hv-kvp-daemon.service
username@hostname:~$ systemctl status hv-vss-daemon.service
username@hostname:~$ systemctl status hv-fcopy-daemon.service

画面解像度(既定は1152x864)を例えば 1024x768 に変更するには...

username@hostname:~$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="・・・ video=hyperv_fb:1024x768"
username@hostname:~$ sudo update-grub
username@hostname:~$ reboot

Hyper-V 拡張セッションモードで接続可能にするには...
※ Ubuntu 18.04 LTS 用の install.sh でできました。詳しくはこちら

Ubuntu 側で
username@hostname:~$ sudo apt install xrdp
username@hostname:~$ reboot
username@hostname:~$ ip address show dev eth0  (IPアドレス確認)
username@hostname:~$ sudo ufw allow 3389
username@hostname:~$ gnome-session-quit --logout --no-prompt  (ログアウト)

Hyper-V ホストの mstsc で RDP 接続できることを確認(Session:Xorg、username:ユーザー名、password:パスワード、カラーマネジメント:キャンセル)、ログオフ。

また Ubuntu 側で
username@hostname:~$ sudo ufw deny 3389 (ネットワーク経由の RDP 接続が不要な場合、ポートを閉じる)
username@hostname:~$ sudo apt-get update
username@hostname:~$ sudo apt install git
username@hostname:~$ git clone https://github.com/Microsoft/linux-vm-tools.git ~/linux-vm-tools
username@hostname:~$ cd ~/linux-vm-tools/ubuntu/18.04/ (18.10 用はないので借用)

username@hostname:~$ sudo chmod +x install.sh
username@hostname:~$ sudo ./install.sh
username@hostname:~$ reboot

再起動後、もう一度、install.sh を実行したら最後までセットアップされたみたい。
username@hostname:~$ cd ~/linux-vm-tools/ubuntu/18.04/
username@hostname:~$ sudo chmod +x install.sh
username@hostname:~$ sudo ./install.sh
username@hostname:~$ reboot

Hyper-V ホスト側では HvSocket を有効化し、仮想マシンに再接続(Session:Xorg、username:ユーザー名、password:パスワード、カラーマネジメント:キャンセル)。

PS C:\> Set-VM -VMName <仮想マシン名> -EnhancedSessionTransportType HvSocket



関連:
Windows 10 ver 1803 Hyper-V and Ubuntu 18.04 LTS with Enhanced Session Mode (2018/05/30)
Windows Server 2016 Hyper-V and Ubuntu 18.04 LTS (2018/05/29)
Windows Server 2012 R2 Hyper-V and Ubuntu 14.10 Guest (2015/02/06)
Windows Server 2012 R2 Hyper-V and Ubuntu 14.04 LTS Guest (2014/04/18)

0 件のコメント: