Hyper-VにインストールしたUbuntu 18.04の画面解像度を変更する

Hyper-V上のUbuntu 18.04の画面解像度が変更できない

GoogleでHyper-V上のUbuntuの画面解像度を変更する方法を検索すると、以下のようにファイルを書き換えれば反映されるとの記述が多くみられます。

/etc/default/grub

...
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
...

この部分を以下のように書き換えればOKという記述が多いです。

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash video=hyperv_fb:1920x1080"

残念ながらこの方法はUbuntu 18.04では使えませんこの方法は飽くまでUbuntu 16.04に対して有効な設定方法です。

Ubuntu 18.04の画面解像度を変更するには?

結論から言うと、Microsoftが公開しているlinux-vm-toolsをインストールすることで画面解像度を変更することができるようになります。

Sneak Peek: Taking a Spin with Enhanced Linux VMs | Virtualization Blog

https://blogs.technet.microsoft.com/virtualization/2018/02/28/sneak-peek-taking-a-spin-with-enhanced-linux-vms/

このlinux-vm-toolsは、その他にもクリップボードの共有機能もあり、インストールしておくと非常に便利です。

linux-vm-toolsのインストール

まずはインストールに必要なパッケージを取得します。パッケージはGithub上に公開されているため、これをダウンロードします。Ubuntu側で以下のコマンドを実行します。

git clone https://github.com/Microsoft/linux-vm-tools.git ~/linux-vm-tools
cd ~/linux-vm-tools

次にダウンロードしたパッケージのスクリプトを実行できるように権限を変更します。

sudo chmod +x install.sh

権限が変更できたら、インストールスクリプトを実行します。

sudo ./install.sh

インストールが終了したら、VMを再起動します。VMが起動したら**再度インストールスクリプトを実行します(重要!)**。

sudo ./install.sh

スクリプトが終了したらVMをシャットダウンします(再起動ではありません)。

マイクロソフトの解説ページではconfig-user.shも実行しなさいと書いてありますが、Githubで公開されているリポジトリには、このファイルが存在しないため、実行する必要がないのかもしれません。

次にホストでWindows PowerShellを管理者権限で実行し、以下のコマンドを入力します。Windows PowerShellがどこにあるか不明な場合は、スタートから検索してください。

Set-VM -VMName <VMの名前> -EnhancedSessionTransportType HvSocket

このコマンドはコマンドプロンプトでは実行できません。Windows PowerShell上で実行してください。

これらの変更を行うと、Hyper-VからUbuntuを起動した際に以下のように、画面解像度を変更することが可能です。

画面解像度を指定して接続ボタンを押すと今度は見慣れないログイン画面が表示されます。

ここでは普段Ubuntuにログインする時に使用していたユーザ名とパスワードを入力すればOKです。

もっと簡単にできない?

Hyper-V マネージャのクイック作成という機能を使えばこれらの機能がインストール済みのVMを作成することが可能です。しかし、筆者の環境ではうまく動作しなかっため、紹介はせずに参考までに記述しておきます。