tmori3y2のブログ

主にWindowsのプログラムなど

そりゃないよ!MSさん!! ~ Windows 10 1607にしたら、画面拡大率150%設定でHyper-VのゲストOSの画面サイズが150%に!ゲストOSの解像度をちょっとイジるとマウスのヒットポイントだけが更に150%!!

tmori3y2.hatenablog.com

Windows 10 Version 1607はいろいろあって更新を諦めて、その後も不具合報告などを耳にしたので延期していたが、CBBの猶予期間も切れるので、いきなり更新されるよりもマシということで、アップデートを行った。

子供の小学校に行くので休みを取って、時間が出来たこともある。

ISOファイルのダウンロード

Windows 10

  • [ツールを今すぐダウンロード]をクリックしてダウンロード

  • MediaCreationToolを実行

  • [他の PC 用にインストール メディアを作る]を選択

f:id:tmori3y2:20161130011126p:plain

f:id:tmori3y2:20161130011216p:plain

  • しばらく放置すると、ダウンロード完了。

  • 今回は、仮想環境や子供のPCも含めて、3システム更新するので、外付けHDDローカルフォルダにコピーしておく。

    • 結果に書いたが、外付けHDDは外す

ISOファイルのマウントとアップデートの実行

  • ISOファイルをマウント

    • ゲストOSの場合は、ホストOSのISOファイルを仮想DVDにマウントする
  • マウントされたドライブを開く

  • [更新プログラムをダウンロードしてインストールする]を選ぶと、更新確認や800MB以上の更新プログラムの ダウンロードがあるので、時間がない場合は[今は実行しない]を選んで、後で更新

    • 社内で配布する場合は、予め更新プログラムもダウンロードしておいて、更新確認せずに後で更新するのが良い

f:id:tmori3y2:20161130012008p:plain

  • エディションとデータの引継ぎを設定し更新を開始

f:id:tmori3y2:20161130012317p:plain

結果

  • 最初は、Hyper-VのゲストOSを更新したが、全画面表示を解除できなくなった。

    • OS: Windows 10 Pro (1511をAmazonで購入)

    • Dell InspironでBreakキーが無いので、Ctrl + Alt + Breakを使えないのもあるが、多分全画面にすると、OSセットアップ中はタイトルバーが出ないのだろう

      • 2016/12/03追記: Ctrl + Alt + Fn + Bだった。後述しているが、ホストが1511か、100%設定 (設定後再起動済み)なら切り替わる可能性がある
    • ホストOSに戻りたいときは、Ctrl + Alt + DeleteでホストOSのタスクマネージャを開いたときだけ、ホストOSのタスクバーにアクセスできるので、そこでゲストOSのウィンドウを一旦閉じて、ゲストOSの様子を見たいときだけ、接続しなおすのが楽 (バックグラウンドで動いているので心配ない)

  • ホストOSでは、セットアップ中の再起動に失敗した

    • OS: Windows 10 Pro (1511/OEM)

    • 外付けUSB HDDを接続したままだったからか?

    • サポート終了となったIntel WiDiが無効化されたからか?

    • 電源を一度切って、USB HDDを外してから再開したら、「インストールを修復中」と出て継続できた

    • 初回「このアプリは利用できなくなりました。intel WDは、このバージョンのWindowでは使用できないため、PCから削除されました」とメッセージが出て、デバイスマネージャでは登録が削除されていた

    • 「プログラムのアンインストール」には、Intel WiDiが残ったままで、イベントログではエラーが出続けているので、アンインストール

最新の累積アップデートのダウンロード

1607のセットアップで、更新プログラムのダウンロードをしなかった場合は、Windows Updateを実行するか、Microsoftカタログサイトからダウンロードして実行する。

  • 最新の累積アップデートを以下のサイトで確認

https://support.microsoft.com/ja-jp/help/12387/windows-10-update-history

Microsoft Update Catalog

  • 累積アップデートというだけあって、過去のアップデートの完全な置き換えになっている

f:id:tmori3y2:20161130012851p:plain

f:id:tmori3y2:20161130012906p:plain

  • 容量が大きいのでダウンロードも時間がかかる。

  • ダウンロードしたファイルを実行し、アップデートを適用すると最新のOSビルドになる

ホストOSの画面拡大率が、Hyper-VのゲストOSに継承されておかしなことに・・・

ここまで、上手くいっていたのだが、落とし穴があった。

  • ホストOS/ゲストOSのディスプレイ設定

    • [テキスト、アプリ、その他の項目のサイズを変更する]: 150% (これが画面拡大率150%と呼称しているものです)

      f:id:tmori3y2:20161130162628p:plain

    • [解像度]: 1920 x 1080

      f:id:tmori3y2:20161130162644p:plain

  • ゲストOSのWindows 10をアップデートした後は、こんな感じで、特に変なことはない

f:id:tmori3y2:20161130154544p:plain

  • これが、ホストOSのWindows 10をアップデートした後。これは・・・と絶句せざる得ない状況に・・・

f:id:tmori3y2:20161130155040p:plain

  • ハイそうです。画面の大きさが150%になっています!

    • 後で調べたが、ホストOSの画面拡大率を100%にすると正常になる

    • ホストOS/ゲストOS起動中に、ホストOSの画面拡大率を100%にすると、画面の大きさは元に戻るが、全画面表示でタイトルバーが出なくなる

      • Dell Inspiron 13では、ホストOSへ切り替えるのに、Ctrl + Alt + Breakが使えないので、Ctrl + Alt + Deleteで、ホストOSのタスクマネージャを起動する必要があるのは前述の通り

        • 2016/12/03追記: 100%に変更して再起動済みでないと、Ctrl + Alt + Break (Fn + B)は動作せず
  • この状態で、ゲストOSの画面拡大率100%にして、150%に戻すと、コントロールの座標と、コントロールが反応するマウスポインタの座標がズレる

    • 2016/12/05 追記: 後述しているように、ゲストOSをウィンドウ表示しているときにホストの拡大率がゲストのマウス座標の計算に妙な副作用を起こす不具合ではないかと思われる (解像度プレビューでおかしくなるのは、ウィンドウサイズが変わるため)

    • ゲストOSで、解像度を1280 x 720を選択して、適用ボタンを押すが、そのまま放置する

    • 画面サイズはそのままで、マウスのヒットポイントが左上端から約1.5倍の位置にズレてる・・・

    • つまり、マウスの反応位置だけ、1.5 x 1.5 = 2.25 = 225%になる

    • 再現しないときは適用してみたりすると再現する

    • プレビューも含めて、解像度を変えて画面拡大率が変わったときに再現する模様

    f:id:tmori3y2:20161130163012p:plain

  • スタートメニューを押すにも一苦労

f:id:tmori3y2:20161130163334p:plain

  • 電源ボタンもこの通り

f:id:tmori3y2:20161130163410p:plain

ホストOSの画面拡大率100%にすれば良いのは分かるが、Dell Inspiron 13で画面拡大率100%は、はっきり言ってキツイ。

f:id:tmori3y2:20161201025436p:plain

ゲストOSがAndroid x86では再現しないので、Windows 10のゲストOSにWindows 10のホストOSの画面拡大率が継承される1607用Hyper-Vの不具合だと思うので、早く治してほしい。

Windows 10 Homeはというと・・・

アップデートしようとすると、すでに1607の最新版でした。

履歴を見ると2か月前に更新されてますね。

そういえば・・・

息子 「お父さん!! ちょっと二階に来て!」

自分 「なに?」

息子 「パソコンが大変なんだよ!」

自分 「どうしたの?」

息子 「なかなか立ち上がらないんだよ。お待ちくださいって書いてある・・・」

自分 「バージョンアップ中だから電源ボタン押さずに待ってて~」

息子 「押しちゃだめなの?」

自分 「前、タブレットの電源ボタン長押ししてどうなった?」

息子 「動かなくなった」

自分 「そういうことだから、よろしく!」

息子 「しょうがないまぁ~」

という会話をしたことがあったような・・・

電源ボタン攻撃怖かったから、自分がアップデートしようと思ったんだが、そうか、HomeはCBだった。

次は忘れずに・・・

後日談 (2016/12/03追記)

  • 現在、仮想環境を起動した後、リモートデスクトップで使用している

  • ディスクスペースが少ないのでディスクのクリーンアップでバックアップは削除した

    • ホストOS SSD 256GBは、10GB切っていた。5分ほどで30GBくらい復活

    • ゲストOSの仮想ディスクは可変127GBしかないのに、バックアップが4TBと表示され、削除も1時間半くらいかかった

  • フィードバックHubのInsider Programに参加して、不具合報告をしました

    • デカくなる問題とバックアップの容量の問題

      • デカくなる問題は1607以前に出された大画面でのDisplay scaling問題に対する切り札的に導入された改良のデグレードであるような節がある

      • build 14959で修正したらしいが、100%、125%、150%、200%の4種類しか選べないようなのでデカい画面しか相変わらず見ていない気がするので期待薄のような気がする。その辺、1607にその修正は降りてこないとPreviewで試さない限りなんとも言えないが・・・

      blogs.windows.com

    • Insider Programに参加していない人たちのフィードバックは愚痴なので、利用するならInsider Programに参加が必須 (参加者・未参加者のフィードバックは相互に見れない)

    • 登録の受付に1時間、アプリでの切り替わりに半日、メニュー追加は初回投稿受付後??

    • 画像を投稿したはずだが表示されず・・・

    • 追加情報をコメントしたが反映されず・・・ (半日後、投稿した分は即時反映された。操作ミス?)

    • 投稿内容のURLは"共有"で取得可能

http://aka.ms/rkwesv

http://aka.ms/C3c1fl

再現条件確定? (2016/12/03追記)

  • 以下の場合は、現象が発生しないことを確認しました

    • ゲストOSが、全画面表示であるとき
    • ゲストOSが、最大化ウィンドウであるとき
    • ゲストOSが、最大化されていないが、スクロールバーが出ないとき(解像度が小さな場合など)
  • つまり、最大化されておらず、スクロールバーが出ているとき、現象を確認できる

    • ゲストOS上でコントロールを表示している状態で、ゲストのウィンドウの大きさを変えたりしたときに、変にホストOSの設定倍率がかけられて、マウス座標がおかしくなっている模様
    • ゲストとホストの解像度が同じだと、ホストの拡大率の分ゲストが大きくなるので、必ずスクロールバーが出るので、発生しやすい

    • 解像度ダイアログで解像度を変えたときにおかしくなるのは、プレビューでゲストのウィンドウサイズが変わるから

    • 解像度を小さくしてスクロールバーが表示されない場合は、不具合が出ない場合もある

    • 13インチでホスト1980 x 1080 (150%)、ゲスト1280 x 780(100%)ではスクロールバーが出ており、現象が発生しやすい

    • 解像度を変えなくても、設定画面を表示している状態で、ゲストのウィンドウサイズを小さくしたりすると、マウスとコントロールの座標がズレたりするのも確認できた

  • その状態でも、全画面表示や最大化すると、マウス座標がリセットされて正しくコントロールにマウスを当てられるようになる

blogs.msdn.microsoft.com

には、

仮想マシンの画面のスケーリングのコントロールHyper-V仮想マシンが時々期待通りのスケールにならないというフィードバックがあったので、デフォルトのスケーリングをパフォーマンスに合わせて100,125,150,200と言った値に設定できるように、View メニューにZoom オプションを追加しました。これにより、リモートデスクトップ接続バーがフルスクリーンモードになった時に表示されなくなるという問題も解決しました。使い勝手などについてはまだ調整中です。例えば、スクロールなしにVMの全画面を表示することが出来ないときのために、より高いDPIのズームレベルを追加しました。

というのがありますが、

「何となく変な動きをするから、スケーリングを起動時に上書きできるようにしたよ」

みたいなノリなのが気になります。

今回見つかった不具合は、ホストOSの拡大率がゲストに反映されてしまい、ゲストのウィンドウサイズが変わったときに動的にマウス座標の演算に影響を与えてしまっているような不具合に見えるので、多分治っていない気がします。

時間があれば調べるのですが、ちょっと今は厳しいので、フィードバックを適切に処置してくれるのを祈るばかりです。