Windowsと同居する

f:id:siroanko:20180114123231p:plain

Hackintoshで使うコンピュータはもともとWindowsをインストールする前提で作られているので、当然ながらWindowsも走ります。本物のMacでは、Boot CampというツールでWindowsを動かすようにしますが、その必要はありません(そもそもBoot Campは使えません)。今回は、macOSとWindowsのマルチブートを設定するときの注意事項を書いてみました。

別ドライブにインストールするのが楽

WindowsとmacOSを同一の物理ドライブの別パーティションにインストールすることは可能ではあります。でも色々面倒なので、できれば別の物理ドライブに、macOSとWindowsを分けてインストールするのが簡単です。デスクトップPCなら複数ドライブ搭載は簡単だと思います。

同一のドライブの別パーティションにmacOSとWindowsをインストールしようとすると、それぞれがESPを書き換えることになります。Cloverで設定したものが、Windowsをインストールすると動かなくなります。もう一度、設定すれば良いのですが、かなり面倒です。このような問題は、ESP以前のMBR(マスターブートレコード)を使っていた時代からありました。物理的に別のドライブにインストールすれば、それぞれのESPに個別に起動項目が書き込まれるので、干渉しません。別のドライブにインストールされたWindowsは、UEFI/BIOSの起動メニューで選択することもできますし、Cloverの起動選択画面からも起動できます。

最近の経験では、そもそもパーティションスキームが違ってインストールできないこともありました。特にAPFSになって採用された新しい論理パーティションなどは、Windowsインストーラから使えません。なので同じドライブにインストールしようとする場合は、パーティション分けの方法も面倒になり、試行錯誤が必要になると思います。

インストールに関係ないドライブを外す

Windowsをあまり使わないこともありますが、Windowsインストーラの挙動は、いまだに謎です。インストール対象のドライブ以外のドライブがコンピュータに多数接続されていると、インストールできないことがあります。もしかしたら接続されているドライブがmacOS用にパーティション分けされていたのがいけないのかもしれません。関係ないドライブは外しておいた方が良いです。

先日、m.2 SSDを外すのが面倒だったので接続したまま別ドライブにインストールを試みたら、m.2 SSDのESPに起動ファイルが書き込まれてCloverが起動しなくなってしまいました。Windowsインストーラは、インストール先として指定しないドライブを書き換えることもあるようです。面倒でもm.2 SSDを外すか、せめてUEFI/BIOISでm.2を読めないように設定して、Windowsインストールするのが良いと思いました。

時刻を合わせる

macOSとWindowsを切り替えて使用すると、時刻が合いません。9時間だけずれます。macOSはUTC (協定世界時: Cordinated Universal Time, 昔はグリニッジ標準時GMTと呼ばれていた時刻)を使っているのに対して、Windowは現地時間を使っているからです。

コンピュータは、ファイル作成時刻などを管理するために、時計機能を備えています。マザーボードにはRTC(リアルタイムクロック)というチップが搭載されていて、電源が切れている時も、ボタン電池で時刻を刻んでいます。時差の違う場所に置かれたコンピュータ同士をネットワーク接続で使うことを考えると、コンピュータの時刻はどれか一つの基準時間を使うべきです。そうするとUTCを使用するのが順当です。ということで、macOSやLinuxなどのUNIX系のOSでは、UTCで時刻を管理して、必要に応じて現地時間に換算して表示しています。

UNIX系OSは専門家が使う高価で大掛かりなコンピュータのためのOSとして開発されました。一方、Windowsの先祖は、単独で動く簡素な個人用コンピュータ(マイクロコンピュータ、マイコン)で使われたOSです。昔のコンピュータには電池バックアップのRTCなどなかったので、起動時に時刻を入力させられました。個人ユーザがいちいちUTCと時差を入力するのは面倒なので、マイコンの時計は現地時間に設定することになっていました。それでWindowsは今でもRTCを現地時間に設定していて、UTCが必要な場合には、現地時間から換算しています。

RTCがUTCでも現地時間でも、必要に応じて換算すれば良いので問題はありません。でも、macOSとWindowsで同一のRTCを共有すると、OSを切り替えるたびに時間がずれてしまいます。Boot Campではこの問題を解決するドライバが用意されています。Hackintoshでは、当然ながらそういう配慮はありませんので、自力で解決することになります。

WindowsをUTCにする

WindowsとmacOSのどちらを相手に合わせても良いのですが、歴史的な経緯で仕方なく(?)現地時間を使っているWindowsを正統なUTCに切り替える方が簡単です。これにはレジストリを書き換えます。Windowsでregedit.exeを実行するとレジストリエディタが起動します。

f:id:siroanko:20180114142317p:plain

左の階層から、コンピュータ、HKEY_LOCAL_MACHINE, SYSTEM, CurrentControlSet, Control, TimeZoneInformationと辿っていきます。TimeZoneInformationで右ボタンクリックでコンテクストメニューを呼び出し、「新規 (N)」「DWORD (32ビット) 値(D)」を選択します。

f:id:siroanko:20180114142321p:plain

ここで、RealTimeIsUniversalという値を作り、この名前をダブルクリックして設定ウィンドウを開き、値を1に設定します。このあとWindowsをシャットダウンし、一旦macOSを起動して、またWindowsに戻ってくると、Windowsの時刻がmacOSと一致します。

コマンドプロンプトで設定する

フォーラムで教えていただきましたが、レジストリエディタを使う代わりに、Windowsのコマンドプロンプトから設定することも可能のようです。以下のようにタイプします。

reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f

9件のコメント

  1. siroanko様
    はじめまして。突然のコメント失礼致します。siroanko様の貴重な記事によりPCにOSX(sierra)をインストールできましたが、BIOSでWin又はOsxを選択起動するはできますが、Cloverの起動選択画面からOsxは選択起動可、Windowsは選択できますが選択起動不可で悩んでおります。ご教授頂ければ幸いです。
    【現状は下記です。】
    ①M/B→GA-Z87X-UD3H
    ②OSX→SSD1にSSD2をはずしてインストール
    ③Win10(ver 1709)→SSD1をはずしてSSD2にWin10(ver 1607)インストールし自然にWin-updateでWin10(ver 1709)
    ④Clover UEFI Bootloader→v2.4k_r4411
    【問題現象】
    Clover Bootloader上でWin10のEFIを選択した場合はWin10の最初に出てくる、回転が2回ほど回転しそれから何も反応無し。
    BIOSでWindows Boot Managerを選択した場合は起動可能。
    お手数ですが宜しくお願い致します。

  2. 信者なのであまりWindowsを使っていなくて、実のところよくわかりません、すみません。なので、全くの憶測なのですが、もしかしてWindowsが、UEFI起動じゃなくて、古いレガシー起動(昔のMBR: Master Boot Recordで起動する状態)でインストールされている可能性があるのかなと思いました。そうするとBIOSでは選択できるけどCloverでは起動しないこともありうると思います。EFIのESP: EFI System Partitionには過去にUEFI起動でインストールした名残が残っていて、Cloverではそれが選択されて途中で起動に失敗しているのかも。
    BIOSでレガシー起動を無効にして、UEFI起動だけに設定してみると状況が判明するかもしれません。
    もしそういうことならばWindowsをUEFI起動でインストールし直すと治るかと思います。でもBIOSで切り替えられているなら、そのままでも良いように思います。

  3. はじめまして!
    こちらのサイトを参考にしながら、ノートパソコンにMojaveを無事インストール完了し、起動もしっかりしています。
    しかし、Windowsもインストールしてデュアルブートをしようとしたのですが、うまく起動できません。なにか考えられる理由がありますでしょうか?
    お手数おかけしますがご教授よろしくお願いします。
    一度、HDD 1にwindows用パーティションを作成し、デュアルブートをしたのですが、cloverがwindows boot managerに変わってしまったので、海外のサイトを参考に、BOOT64?cfiをwindows boot managerのcfiにリネームして書き換えたのですが、boot managerのエラーが発生し、あきらめました。
    次にやったことは、HDD 2を用意し、DVDドライブをHDDに付け替え、そちらにwindowsを入れましたが、macが起動できなくなりました。
    環境
    どちらもUEFIモードでインストールしています。
    HDD 1=ここにmojaveを入れています。パーティションはEFIとmacOSの2つ
    HDD 2= windowsのHDD。もともと、hackintoshをする前に使用していたもの。パーティションは復元用とEFIとOSの3つです。
    Windowsを一度起動してしまうと、シャットダウン後、cloverでmacOSを選択したあとクラッシュし、起動できなくなります。
    HDD 2(windowsが入っている)を一度取り外し、接続し直してからcloverを起動すると、しっかりとmacOSがブートします。
    →macを起動するたびにHDDを取り外すのはかなり大変なのでどうにか解決したい。

  4. 解決しました!
    PCのブートメニューからwindows boot managerを起動した場合は、次回マックを起動する際はクラッシュ。
    PCのブートメニューからCLOVERを起動し、windows EFI BOOTを選択すると、次回マックは正常に起動しました!
    挙動がよくわかりませんが…

  5. 貴重な情報ありがとうございます。Windowsのboot managerは色々影響を与えてくれてしまう気がします。Windows導入するときは、他のドライブを全部抜いています。Cloverだけで起動した方がmacOSへの影響が少ないというのは、納得できる現象ですね。

  6. 初めまして、“9時間ずれる問題“でここの記事にたどり着き、無事解決できました。Windows10で時刻設定をどういじっても、どうしたものかと半ば諦めておりました。貴重な情報ありがとうございました。

  7. Windows10のインストールで丸一日ハマっていたのですが、関係ないドライブを全て外したらすんなり終わりました。
    Mac信者というほどでもないですがWindowsは触れば触るほど嫌いになります…。
    いつも良質な記事をありがとうございます。

bootmacos へ返信する コメントをキャンセル

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