HPの小型デスクトップEliteDesk (6: Windowsを入れる)

いろいろ頑張ってきたHP EliteDesk 800 G2 DM (Core i5-6500T)ですが、Windowsをインストールしました。Hackintoshとしては完敗です。macOSからはWindowsを画面共有で使います。sshでUbuntuも使います。電源が切れてても使えるようにWake On LANの設定もしました。

Microsoft Remote Dektop

最近はWindowsが絶対必要という場面が少なくなりましたが、世の中がWindows前提なので、たまにWindowsを使わざるを得ない時があります。Hackintoshなら、マルチブートにしておけば、同じマシンでWindowsが使えますが、切り替えが面倒です。VMware Fusion Player 12 が個人利用で無償になって、かなり快適でした。なので仮想環境でWindowsを使う手もあります。マルチブートに比べて性能は出ませんが、macOSとの切り替えが簡単です。今回は第3の選択肢として、Windowsマシンを別に用意して、これにリモートデスクトップする方法を試します。

そこで、macOSをインストールしようとして暗黒画面問題で挫折したHP EliteDesk 800 G2 DM

にWindowsを入れて、ディスプレイ無しのリモートデスクトップサーバにします。macOSは諦めて、ただのWindowsマシンに戻すのですから、BootmacOSの路線からしたらダメダメな状況です。すみません。でもWindowsマシンが用意できれば、これにmacOS用のMicrosoft Remote Dektopで接続することでWindowsが使えます。Remote Desktopクライアントプログラムは、無償で配布されていて、使いやすいです。応答も素早いので、仮想マシンより快適な気がしました。

Remote Desktopを起動すると、接続先を選べるようになります。接続先のマシンを何個も登録できるインタフェースでした。職場の何台ものWindowsマシンを管理するような状況を想定しているのかもしれません。

HP EliteDesk 800 G2 DMは小型なのでiGPUで動きます。M1が話題になって貧弱さが際立っているインテルiGPUなので、このままディスプレイには接続しないで、ヘッドレスのリモートデスクトップサーバとして使おうと考えてます。小さなマシンなので、邪魔にならないです。

Windowsをインストール

まずはHP EliteDesk 800 G2 DMにWindowsをクリーンインストールします。macOSマシンにされていたところが、本来の姿に戻ることになります。でも元からあったWindowsは綺麗に全消去されているので、起動できるUSBメモリインストーラを作ります。そこで、Z390 + 9900K + OpenCore 0.6.3 + Big Sur の構成のマシン(機種IDはiMac19,1)で以下の作業をしました。Windowsインストール用のISOイメージファイルがダウンロードできるMicrosoftのサイトに行きました。

とりあえずダウンロードしてみたところ、Windowsのイメージファイルは6GBほどでした。12GB超えてるBig Surに比べて優しいですね。

これから頑張れば、インストール用USBメモリをmacOS環境でも作れないことはないです。でも結構難しい作業で、適当に試しても失敗ばかりでした。USBメモリをFAT32でフォーマットするのですが、コピーしなければならないファイルの一つが、FAT32の限界の2GBを超えているところがネックです。それを乗り越える技が複雑過ぎました。

結局、macOSで頑張るのは諦めて、Windowsでインストール用USBを作ることにしました。このマシンの、Big Surとは別のSSDにWindows 10が入っています。OpenCoreでWindows起動SSDを選択して起動し、上記のMicrosoftのサイトに接続しました。すると、ISOイメージファイル以外に、起動可能なUSBインストーラを作成するアプリケーション「Media Creation Took」がダウンロードできるようになってます!。macOSからこのページを開いても、Media Creation Tookの選択肢は見えませんでした。Media Creation Tookは、macOSのcreateinstallmediaコマンドとよく似た名前で、同じような機能のプログラムです。ですが、Windows版の方が完成度高いです。CUIコマンドのmacOS版と違って、GUIで起動して、ISOイメージを自動でダウンロードして、そのままUSBメモリに書き込んでくれます。とても楽でした。

BIOSもアップデート

ついでにBIOSもアップデートしておきました。HP EliteDesk 800 G2 DMのBIOS画面に、ネットワークからダウンロードして更新するメニューがあります。クリックするだけで最新版 (2020/11/6版の02.51 Rev.A) になりました。以下はHPのサイトですが、ここからダウンロードする必要はありませんでした。

デジタルライセンス

HP EliteDesk 800 G2 DMの筐体のどこを見てもWindowsのプロダクトキーが書いてありません。Windowsを買わないとダメなのか、全消去するんじゃなかったとと少し後悔しました。ところが今やデジタルライセンスの時代だったんですね。このマシンの情報がすでにどこかのサーバに登録されているらしく、Windowsインストール作業最初のプロダクトキー入力をスキップしても、自動的に認証されてました。SSDもメモリもCPUも交換してしまっているので、BIOSのシリアル番号のようなもので個体識別しているようです。メーカー製PCにはWindows代が含まれているので当然の結果かもしれませんが、予想外でありがたかったです。ハードにOS代が含まれていることは、よく考えたらmacOSも同じです。

HP EliteDesk 800 G2 DMの中古価格は、Core i3モデルが1.5万円くらい、i5モデルでも2万円くらいです。一方で、マルチブートしたり、仮想環境を使ってWindows 10 Proを起動する場合には、パーツに紐付けたDSP版でも1.7万円くらい、通常版なら2万円以上のライセンス代が必要になります。そう考えると、デジタルライセンスが付いた上にCPUもメモリも手に入る中古のハードを買うのは、お得な手段なのではと思いました。

リモートデスクトップサーバを有効化

インストールしたWindows 10で最初に行った作業は、リモートデスクトップサーバをonにすることです。これでmacOSから作業ができます。設定する場所が「設定」だったり「コントロールパネル」だったり混乱します。

WSLを入れる

次に行った作業は、WSL (Windows Subsystem for Linux) を有効にすることです。

そして、Microsoft StoreからUbuntu 20.04 LTSをダウンロードしてインストールしました。WSLがあってLinuxが使えることは、macOSユーザから見てちょっと羨ましいです。

とはいえ、WindowsとLinuxではディレクトリ構成が違います。ディレクトリ階層の区切りも¥と/で違います。ファイルやフォルダをUbuntuのウィンドウにドラッグ&ドロップしても、Linuxが理解できるディレクトリ文字列になりません。macOSファインダとターミナルのような円滑な操作性ではなく、ぎくしゃくしている印象です。Windows上の仮想環境でLinuxを動かしているので仕方ないですが、もう少し統合してほしいと思いました。ネイティブに動いているmacOSのUNIX環境が、シームレスで使いやすいことを改めて実感しました。

Dropboxを入れる

One Driveの方がWindowsとの相性が良いのでしょうが、Dropboxを使ってます。One Driveは、昔試したことがありますが、macOSとの相性が悪かったです。One Driveでは、Windowsの規則で、ファイル名に使えない文字があります。例えば、CON, PRN, AUXという名前はファイル名・フォルダ名に使えません。また、” * : < > ? / \ |などの文字も使えません。Dropboxにはそのような制約はありません。自分で作るファイルなら命名に気をつければ良いのですが、例えばアプリケーションのパッケージの中に、たまたまこのような名前のファイル・フォルダがあると厄介です。これらがOne Driveにコピーする際に除外され、アプリケーションの内容が変わってしまいます。実際にそのような事例が発生しました。現在のOne Driveも同様な命名規則を引き継いでいるのかどうかわかりませんが、こういう理由で使用を避けてました。

SSHサーバを入れる

昔のWindowsでsshを使うのは面倒だった記憶がありました。でもWindows 10ではsshクライアントが標準で入っているようです。PowerShellから使えました。でもsshサーバ (sshd) はOpenSSHを自力でインストールする必要があります。

一方で、WSLのUbuntuには、あって当然なのですが、sshのクライアントとサーバが入っています。Ubuntuのsshサーバは、以下のコマンドで起動することができます。

sudo service ssh start

ということで、sshdを使うには、

  • Windowsのsshdを使う
  • Linux (WSL-Ubuntu)のsshdを使う

の2種類の選択肢があります。ここはすでにインストール済みのLinuxにしました。Windowsルートは手順が大変そうでしたが、Linuxルートにも罠がありました。普通のLinuxなら

sudo systemctl enable sshd.service

というような類のコマンドで、起動時に自動的にsshdが起動するように設定できました。でもWSLでは技術的な事情でsystemctlコマンドが動かないようです。なので、コンピュータを起動するたびごとに、

sudo service ssh start

のコマンドを発行する必要があります。これは自動化したいところです。ちょっと調べたところ、PowerShellからWSLのコマンドを発行する命令があるらしいです。その名もwslです。これを使って、

@echo off
wsl -u root -- service ssh start

というbatファイルを作ると、Windows環境から、–の後に書いたLinuxの命令がroot権限で出せるようです。batファイルなんて書くのはものすごく久々でした。

Windowsのbatファイルなので、これはWindowsで実行できます。なのでこのbatファイルを、Windowsが起動した直後に実行するよう設定すれば良いです。でもこの方法もかなり試行錯誤しました。結局は、コントロールパネル–>システムとセキュリティ–>管理ツール–>タスクスケジューラに行きついて、ここで「スタートアップ時(システム起動時)に」「ログインしているかどうかにかかわらず実行する」設定で、batファイルを登録すれば良いようでした。

sshdが起動するように設定するには、Linuxならコマンドひとつ、macOSだと「システム環境設定」「共有」で「リモートログイン」をクリックするだけです。Windows (WSL) だと深い階層の幾つもの設定が必要で大変でした。でもこの作業の結果、電源を入れるだけでLinuxのsshdが応答してくれる状態になるので、別のマシンからssh接続すればUbuntuのシェル環境が使えます。Windows環境が用意されただけでなく、いつでも試せるLinux環境も出来上がったので、ちょっと嬉しいです。

Wake On LANを設定

次にWake On LAN (WOL)を設定しました。これに関しては、Windowsは素晴らしい!です。WOLは、ネットワークの他のマシンから、スリープ中や電源切れているコンピュータを目覚めさせる機能です。そのために、相手のMACアドレスを指定して、マジックパケットという謎のパケットを送りつけます。マジックパケットを送るアプリケーションは多数ありますが、Pyhthonで書けばこんなプログラムで可能なようです。

#!/usr/bin/python
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
s.sendto('\xFF'*6+'\x99\xAA\xBB\xCC\xDD\xEE'*16, ('192.168.xxx.255', 7))

最後の行に、目覚めさせたいコンピュータのNICの情報を書きます。\x99\xAA\xBB\xCC\xDD\xEEの部分がMACアドレスで、192.168.xxx.255がIPアドレスです。IPアドレスの最後が255なのは、ブロードキャストするためです。ここを機器のアドレス通りにしても、一応は起動するようです。でも今回のマシンで試したところ、offした後しばらくは起動しますが、時間が経つと失敗します。シャットダウンしてからしばらくすると、スリープモードが深まるのか、自分のIPアドレスがわからなくなるようです。255にしておけば、必ず成功します。

macOSでは、「システム環境設定」「省エネルギー」の「ネットワークアクセスによるスリープ解除」で、Wake On LANを有効にできます。以下は、「省エネルギー」のデフォルト設定ですが、デフォルトで有効になってます。このほかにもBIOSでWOLを有効にしておく設定が必要です。

Windowsの場合は、デバイスマネージャの中のいくつかの設定でWOLを有効にします。ここではWake On Magic Packetが有効であることを確認してますが、このほか「電源の管理」タブも関係があります。一般的にmacOSよりも設定箇所が多い傾向にあると感じますが、デフォルトのままで大丈夫でした。ちなみにネットワークアダプターのドライバを、上記のHPのサイトからダウンロードしないと、WOL関係の設定が現れなかったです。Windowsの標準ドライバーでは、最新に更新してもWOLの設定がありませんでした。このほかBIOSの設定も確認する必要があります。

幾つか試行削除しつつ設定したところ、macOS(前述のZ390マシン)でも、このWindowsでも、どちらもマジックパケットを送ってスリープから目覚めさせることができました。

macOSでは、スリープ状態に対してのみ、WOLが効くようでした。電源を落としてしまうとWOLは効かなくなります。少し検索しただけなのですが、ネットにもやっぱりそう書いてありました。もし、電源も入れられるようなWOL設定の情報ありましたら、教えていただければとても助かります。

一方、Windowsでは、なんと電源を切った状態でもWOLが効きます。電源の落ちたマシンにマジックパケットを送ると電源投入できました。これはちょっと素晴らしいです。

訂正:hackintoshなら電源を切った状態からのWOLが効きます。以下をご覧ください。

Wake On LAN (WOL) を使ってmacOSの電源を入れる

追記:Windows 10のWOL

その後、起動ディスクをM.2 SSD変更しようとして、Windows 10のクリーンインストールを再度行いました。そうしたら電源offでのWOLが効かなくなりました。結局は、再びWOLが動くようにできたのですが、そのポイントをメモしておきます。

  • LANのドライバーは最新します。Windowsに最初に入っている、または更新からダウンロードできるIntel LANドライバーにはWOLの設定項目がありません。HPのサイトからダウンロードするとWOLの設定があります。これがないとsleepからのWOLもできないです。
  • 「高速スタートアップ」をoffにします。これがOnだとシャットダウンからのWOLができなかったです。
  • スリープ中やシャットダウン時に、LANコネクタのLEDが点灯していることが重要です。これが消灯している状態だと如何なるパケットも受け付けないようで、WOLもしません。
  • BIOSでシャットダウン時にS5に移行するよう設定すると、WOLしません。Off状態ではLANコネクタのLEDも点灯しません。デフォルトはS5ではないので、注意すべき点ではないですが。

WOLはいろいろとややこしいです。シャットダウンしないと、機能しているかどうかを確認できないので、結果がなかなかわからないこともあり、手間がかかります。そこを設定するところが達成感を得られて楽しいところです。

まとめ

暗黒画面問題で頓挫したHP EliteDeskは、結局のところWindowsマシンとして復活しました。ディスプレイは接続せず、macOSからMicrosoft Remote Desktopで使用します。Windowsのデジタルライセンスが効いていたので無償でした。さらにWSL、SSHサーバ、Wake on LANなどを設定しました。このプライベートネットワークには、ルータのVPN機能を使ってL2TP over IPSecでインターネットから入れるようにしてあります。なので

  1. 外出先からVPNで接続する
  2. Pythonプログラムでマジックパケットを送る
  3. 電源が切れているHP EliteDeskが起動する
  4. sshまたはRemote Desktopで接続する

という手順で、世界中どこからでも、このWindowsマシン(Ubuntu付き)をmacOSから利用できるようになりました。今後は、電源が切れている自作Z390 macOSマシンも、外部から起動して使えるように考えたいです。

13件のコメント

  1. >Wake On LAN (WOL)を設定しました。これに関しては、Windowsは素晴らしい!
    お館方さまにしては、Winちゃんをお褒めになるとは?!。。。w

    Kext UpdaterにIntelMausiEthernet-WOLがお仲間入りしましたね。。。
    以前ごにょごにょしてもWOLが動かなかった?ので、これでちょっとやってみよっかなとか、思ったりしましたぁ。。。w

    Fork from IntelMausiEthernet with WOL functionality after complete shutdown.
    https://github.com/fischerscode/IntelMausiEthernet-WOL

    1. 試してみました。現在使用中のIntelMausi.kextと入れ替えてみたところ、手元のZ390マザーボードではmacOS自体が起動しませんでした。残念

      すみません、もう一度やり直したらちゃんと動きました。またEOLも効きました。情報ありがとうございました。

      1. あら?動いたのですねぇ。。。

        もしかしたら、BIOSの設定やら、追加のSSDTとかPlistにプロパティー追加とかに細かく斬撃を加えないといけない代物かな?とか思ったりしたんですけど、これは手強いのか?Kext Updaterのお仲間に入るのが早すぎるちゅうパターンなのかなとか、一瞬?戦慄が走りました。w

        昔、↓こんなのとか、だったと思いますけど、MacOSでも似たようなのが沢山あって、WOLをやろうとしてた記憶はあるんですけど、できなくて撤収して結構月日がたっちゃって、なんで?WOLをやりたかったのかを忘れましたぁ。。。w
        http://magicpacket.free.fr

      2. >なんで?WOLをやりたかったのかを忘れましたぁ。。。w

        それは名言だと思います。人はWOLをやりたいからWOLをするのではないかと思いますw

        コンピュータがパッと自動起動すると感動しますから

  2. >世の中がWindows前提なので、たまにWindowsを使わざるを得ない時があります。
    この点に関しては御意のとおりですねw

    林檎無残さまがWindows10のGUIをこしらえてくれると、MacOSとWinちゃんのシームレス?切り替えて使えんのになぁとかずっと思ってますね。

    Avdanさんのf Apple Created Windows 10 (Concept by Avdan)とか見た時に思いましたけど、これが実現したら、わたしなんか今はMacOS常駐で生活してますけど、Winちゃんを常駐利用の比率が増えそうです。www

  3. WSL2でLinuxが導入できるようになってから、Windowsはだいぶ使い物になってきましたね。
    フォントの描画方法がAppleの用に綺麗になれば、かなり不満点消えるんですけどね。

    ( MacType じゃ解決しないですしね・・・)

    1. まだHackintoshの夜明けの時代のころのPen4でLeopard 10.5 で起動実験をする前とかMacTypeは昔インスコして、ニヤニヤしてた記憶はありますね。。。ただ、フォントがはみ出したり、無慈悲に切れたりしてたのか、詳しい状況がこれまた思い出せなく。。。なぜか常駐インスコしなくなっています。w

      でも、味噌汁さんの記事によれば、それなりに動いてるみたいですけど、なんか今でも解決できない問題あるんでしたっけ???

      MacTypeを使って文字を美しく | Windows10
      https://note.com/nekomimix_jp/n/n443d4a341dd4

      あと、MacOSのGUIであるAquaを模したスキンにするユーティリーティーとかもあって、当時(XP?)のPCをMac風にしてましたねぇ。。。無料のはなくトライアルとかでお茶を濁してたですね。今もMacOSのGUI風にするのがあるのかな?

      ただ、やっぱこんなことをMacOSを使いのにやってるとだるいし、めんどくくさいし、そうこうしてるうちに、ムラムラ?と炎が舞い上がり、その心が原動力になって、本格的にスノレパを起動すべく、全力でosx86の世界に突入していきましたぁ。。。w

  4. コンセプトビデオのようになったらWindowsを使いたくなりますね。みなさんおっしゃるように、フォントの差が大きい気がしました。この記事のWindowsのスクショを見ても、フォントが残念です。WSLのLinuxも、macOSのターミナルからssh接続すると美しいですw

  5. >今後は、電源が切れている自作Z390 macOSマシンも、外部から起動して使えるように考えたいです。
    お館さまは、こんな感じのことを実現されようとしてらっしゃいますよね?

    ルータ越えのWOL(Wake On LAN)
    http://onodekita.com/vpn/wolgaibu.html

    私も、これに似たようなことをやろうとしてた?のかもです。w

    1. VPNを動かしているので、ルータ越えの設定は要らないかと思ってます。VPN接続してしまえばあとはpythonプログラム起動できるかと

  6. >Windowsをインストールしました。Hackintoshとしては完敗です。
    そういえば?、お御さまぁ。。。よくよく考えたら、これは明らかな(BootMacOSサイトの?)隊律違反じゃないですかぁ!???w
    しれっとWindowsだけインスコしてぇ。。。www

    これは竈門炭治郎のうたでも聴きながら、あらたなアプローチを含めて、覚悟をを決めて取り組まないといけませんねぇ。。。SMBIOSの再考とか、USBもMacbookProとかに酷似するように、最小限に止めるとたり、もしかしてDSDTのフルパッチに切り替えてとかも一つの道なのかもしれませんね???。

    確かに林檎無残さまが2020年のWWDCイベントでApple Silicon Mac発表とIntel下弦を解体するとリストラ宣言し、無残さまとIntelの絆が切れた主因である下弦の六世代のSkylakeという背景はありますけどねぇ。。。w

      1. 頸が切れないっていう思い込み?でインテル® HD グラフィックス 530に後退りしてるだけかもっている可能性も?。。。あるかもしれないしぃ。。。

        下弦の六世代は、手強いと感じるのはの全体の情報の出てき方も少ないし、Real Macも絶対数が少ない気がしますからねぇ。柱級の方はATX Standard フォームファクタがデフォですから、鉄板板とHaswell i7-4790K Devil’s Canyonの次にSkyLakeに逝くは理由がほとんどなかったですから、さらにSFFで消費電力に魅力を感じてまでっていう時代?だったから、この検体でHacintoshをやりましょう!っていうのはちょっと盛り上がりずらいっていう気もしますね。w

        でも、SFFは企業に大量に導入されてる可能性もあるので、HPのが日本で大量に投げ売り?されてたのなら、海外でもOptiPlex 3040 SFFが大量に中古市場に流出しているなら、HP系じゃなくDellちゃん系で、今後はうまいこと行くような情報が流れてくるのかもですね。

        [Solved…almost] Optiplex 3040 FULLY working!
        https://osxlatitude.com/forums/topic/9386-solvedalmost-optiplex-3040-fully-working/

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です