MacBook Air (Early 2015) のSSDを960 EVOに換装しました。 MBAをNVMeのSSDに換装したという情報は日本語では少なかったのでメモ書き。 他のMacでも、High Sierra以上かつ対応するアダプタを使用すればこのgistは参考になると思います。
また、さすがにこの環境でWindowsやLinuxを動かしているという人は 検索した範囲ではまだ見つかりませんでしたね。
結論を言うと、macOSはじめWindows 10やArch Linuxでも動いていますが、注意する点がありました:
- サスペンド中のハイバネート移行に問題があります
- Linuxでは
initramfs
を生成し直す必要があるかもしれません(私はこれでハマった)
今日(2018/01/12)でArch Linuxを3日使用していますが、これ以外の問題は今の所は無いようです。 温度もサーマルパッドを使用したからか、純正よりも低いようです。
SSDを換装したMac
- MacBook Air (Early 2015)
OS
- macOS High Sierra 10.13.2
- Arch Linux
- Windows 10 1709
使用したNVMe SSD
- Samsung 960 EVO 500GB
-
一度でもmacOS High Sierraをインストールしていること
High SierraのFirmwareでNVMeがサポートされました。
-
sintechのアダプタ
-
絶縁テープ
-
P5のドライバ(裏蓋ネジ用)
-
T5のドライバ(SSD止めネジ用)
M.2をMBA2015の端子形状に変換するアダプタが必要です。 私はsintechの NGFF M.2 PCIe SSD Card as 2013 2014 2015 MacBook SSD (ST-NGFF2013) を購入しました (中国からの輸入ですが、発送から5日で届いて驚きました。ハヤスギイ)。 現在(2018/01/12)はドライバとセットの物のみが販売されているようです。リンク
このアダプタは絶縁に問題があり、macOSでkernel panicが発生したと報告があります。そのため、カプトンテープなどで絶縁すると良いでしょう。このように
また、Amazon.co.jpにも変換アダプタはありましたが、そちらはネジ穴の位置がズレていました(ネジは閉まりましたが)。私の場合はさらにハンダが短絡していたので使えませんでした。
Windowsでは未検証ですが、Arch LinuxやmacOSでは サスペンド中にハイバネートに移行するとMacがSSDを見失うようです。
ただし、少なくともそれらのOSすべてでサスペンドや単独のハイバネート(長時間放置した場合の動作は未検証)は動作しました。 Arch Linuxでサスペンドして一晩放置した後でも復帰しました。
systemctl hybrid-sleep
して長時間放置した後に、
電源ボタンを押下してもOSが起動しませんでした。
ただし、電源ボタン長押しで断電源した後に電源を投入したら、この後は普通にハイバネートから復帰しました。
macOSの標準のスリープ
では、サスペンドとハイバネートを同時に行って、電源がある限りはサスペンドから復帰するようです。
(しかし、ずっと電源に繋いでいたためバッテリー切れということは無いはずですが、すみません。よくわかりません。)
次のコマンドでサスペンドのみをするように設定できます:
# サスペンドのみを使用
$ sudo pmset -a hibernatemode 0
ちなみに、単独のハイバネートは成功しました (ただし長時間放置した後の復帰は未検証):
# ハイバネートのみを使用
$ sudo pmset -a hibernatemode 25
# 今すぐスリープ
$ pmset sleepnow
Sleeping now...
参考: Mac OS Xのスリープ方式(ハイバネーション)を変更する方法 – ソーシャルゲーム基盤 運用側から見渡す解像度
私の場合は、initramfs
を再生成しないとArch LinuxがSSDを見つけられませんでした。
Arch Linuxのinitramfs
を再生成するには、LinuxのLive ISOで普段使用しているArch Linuxにchroot
する必要があります。(私はManjaro LinuxのLive ISOを使用しました)
次のコマンドを実行してください:
# ここではarch-chrootコマンドでchrootします。
# arch-chrootはarch-install-scriptsパッケージにあります:
sudo pacman -S arch-install-scripts
# 普段使用しているArch Linuxのルートディレクトリをマウント
sudo mkdir /mnt/Arch
sudo mount /dev/YOUR_ARCH_PARTITION /mnt/Arch
# Arch LinuxにEFIパーティションをマウント
sudo mount /dev/YOUR_EFI_PARTITION /mnt/Arch/boot
# Arch Linuxにchroot
sudo arch-chroot /mnt/Arch
# chroot環境内でinitramfsを再生成
sudo mkinitcpio -p linux
長尾製作所 M.2 SSD用ヒートシンクカバーSS-M2S-HS02 をAmazonで購入して使用しました。 厚みは、サイドフレームを外せば、軽く裏蓋を押さえつけることでギリギリ閉まりました。 ヒートシンクは使っていないですが、コレ単体でも十分に冷却されているようで、純正SSDをサーマルパッド無しで使用していたときよりも温度は低いようです。
裏蓋を開けて確認したところ、思った以上にSSDが歪んでいました。 そこで、現在はAmazonで購入したアイネックス M.2 ヒートシンク用 放熱シリコーンパッド HT-13を上に載せています。温度は少し高くなったように感じますが、それでも純正よりは低そうです。
ここから下のセクションは参考にしたリンク集です。
MBA2013以降は、SATAから11+14, 12+16pinのPCIeに移行しました。
NVMeはHigh Sierraでサポートされました。
リンク幅が x2になるのは、絶縁不足です。コネクターや基板の形状によってどこが一番要注意の場所か変わってきますが、ロジックボードのコネクタの金属カバーと、アダプターの基板上のピンとの絶縁です(寸法的に余裕がない)。絶縁したと思っていたのに3枚のアダプターのうち1枚だけが x2 になり散々悩んだ挙句、再度絶縁を施して x4になりました。このあたりのことは、
Upgrading 2013/2014 Macbook Pro SSD to M.2 NVMe | MacRumors Forums に出ています。
アダプターは sintech 一択です。aliexpressやebayで売られているsintech以外の基板は、ST-NGFF2013と同じ問題が発生します。
ST-NGFF2013 黒基板 NG reset後ドライブを見失う、スリープから回復しないなどの問題あり
ST-NGFF2013-B 緑基板 OK
ST-NGFF2013-C 大きな黒基板 OK
ST-NGFF2013-BとST-NGFF2013-Cの配線は同じです。このあたりの情報もUpgrading 2013/2014 Macbook Pro SSD to M.2 NVMe | MacRumors Forums に出ています。
そのほかに 960 EVO/PROでは、kernek panicが発生する不具合があります。最新のfirmに更新すれば解決するという情報が上記フォーラム
にありました。
2013-2014 のMacBook pro/Airでは、NVMe SSDを搭載すると、外部ドライブとして表示され、起動が遅い(appleマークが表示されるまでに10秒ほどかかる、optionを押してドライブ選択すればすぐ表示される)という問題があります。EFI firmに関わる不具合と思われますが、度重なるEFI Firm更新でも解決していません。