「Missing Operating System」は Windows がシステムから起動できない時に出るエラーメッセージです。
Laravel とは直接関係はないのですが、今回 MacBook Air 2012 にいろいろな OS をインストールしていて、Windows、macOS、Linux の3つの OS をインストールして、どの OS からも起動できる「トリプルブート」にしてみたくなりました。というかもともと MacBook Air 2012 はトリプルブートにしていたのです。ところが久しぶりにやってみると、Windows で Missing Operating System エラーが出るのです。
このエラーには覚えがありました。そして案外簡単な方法で直せたはず、という記憶も残っていたのです。ところが検索しても、以前にやった方法がなかなか見つからないのです。そして、なんとか見つけたのです。
Mac のトリプルブートは、2017 年までに発売された Intel Mac でしかできません。それ以降の 2020 年までに発売された Mac では、macOS と Windows のダブルブートしかできなくなり、2020年から発売されている、Apple Silicon Mac では、macOS しかインストールできなくなりました。
トリプルブートは憧れでしたが、違う OS が同時に起動しているわけでもなく、また切り替えには再起動が必要だったので、実際にやってみると、意外と不便でした。Parallels Desktop のような仮想化技術のほうがやはり便利でした。
そういうわけで、いまさら、Mac のトリプルブートを取り上げるウェブサイトはどんどん減っていき、今回見つけたの解決方法を載せているサイトもいずれなくなるかもしれません。サイトというか掲示板でした。なので、この技術は資料として残しておかなければならないと思い、「Mac のトリプルブートにおける、Windows の Missing Operating System エラーを解決する方法」を残すことにしました。
まずはトリプルブートのインストールの簡単な流れを紹介します。
この問題は、Linux をインストールしたときに、SSD もしくは HDD の MBR というテーブルが壊れてしまい、Windows の起動に必要なデータがなくなってしまったことから起きてしまいます。次の方法でこの問題を直します。
今回は gdisk というツールを使います。 こちら からインストーラーがダウンロードできます。
このインストーラーを起動しようとすると macOS によって拒否されます。コントロールパネル(システム設定パネル)の「プライバシーとセキュリティ」でこのインストーラーに許可を与えてください。
準備が整いましたら、作業を進めていきます。
Disk: /dev/disk0 geometry: 60821/255/63 [977105060 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: EE 0 0 2 - 1023 254 63 [ 1 - 785698815]
*2: 07 1023 254 63 - 1023 254 63 [ 785698816 - 191406080] HPFS/QNX/AUX
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
これで、macOS、Windows、Linuxのどれでも自由に起動できるようになったと思います。