Depuis quelques années, les SSD passent d’une interface SATA à une interface PCI-Express. Et en PCI-Express, il passent de l’AHCI au NVMe. Et ce dernier pose quelques soucis avec macOS. Je vais vous expliquer comment garder une bonne compatibilité avec plusieurs OS.
Les SSD modernes utilisent une interface PCI-Express et la norme NVMe. Le PCI-Express permet des débits de l’ordre de 4 Go/s actuellement (4 lignes PCI-Express 3.0) contre ~550 Mo/s en SATA (sur 600 Mo/s en théorie). Dans la pratique, ça dépend évidemment du modèle et du nombre de lignes de l’ordinateur, mais le gain reste généralement conséquent. Le NVMe est la norme utilisée pour gérer la communication entre l’OS et le SSD. Les premiers SSD PCI-Express (notamment utilisés par Apple dès 2013) utilisaient l’AHCI, la même norme que pour les SSD SATA. Le NVMe offre plus de fonctions et gère mieux les SSD, pour améliorer les performances.
macOS et le NVMe
Apple utilise des SSD NVMe maison depuis quelques années (le premier MacBook moderne) mais le support des SSD NVMe d’une autre marque reste assez léger. Actuellement, seul macOS Sierra et High Sierra supportent le NVMe, et Sierra pose des limites. Sous Sierra, il faut que le SSD utilise des secteurs de 4 ko en interne, alors que High Sierra accepte les modèles avec des secteurs de 512 octets. De plus, le démarrage sur un SSD NVMe nécessite un EFI à jour, qui ne s’effectue normalement qu’avec l’installation de High Sierra.
Le choix d’un SSD avec des secteurs de 4 ko pour une compatibilité avec Sierra devient vite un calvaire : la grosse majorité des SSD utilise des secteurs de 512 octets. Heureusement, il existe quelques modèles qui sont par défaut en 4 ko ou – dans le pire des cas – qui peuvent être configurés en 4 ko. Je vais vous expliquer la technique dans la suite, mais je dois d’abord remercier Gilles qui fait régulièrement des tests et dispose d’une liste à jour avec les SSD compatibles et les problèmes éventuels.
Le Thunderbolt et le choix du SSD
Premièrement, le choix du SSD. Dans les modèles compatibles, il y a les Toshiba XG3 et XG4, le WD Black, l’OCZ RD400 et le Kingston KC1000. Il y en a peut-être d’autres, mais ceux là fonctionnent. Quelques modèles Intel haut de gamme permettent aussi le changement, mais pas les variantes grand public. Sur les autres SSD (Samsung notamment), le changement est impossible.
Deuxièmement, le Thunderbolt. Il existe quelques SSD PCI-Express en Thunderbolt directement (comme chez Plugable) mais le plus simple reste de passer par un boîtier Thunderbolt. Le Thunderbolt 1 limitera vers ~850 Mo/s en pratique, le Thunderbolt 2 à ~1 700 Mo/s et la version 3 à ~3 400 Mo/s. Bien évidemment, il s’agit du maximum en fonction du SSD. Pour brancher un SSD M.2 en Thunderbolt, un simple adaptateur passif suffit (qu’il soit indiqué compatible NVMe ou pas n’interfère pas). Evitez les modèles à bas prix, la qualité de fabrication reste faible. Le mien a par exemple été livré avec une équerre qui ne peut pas être fixée…
Pour tester, je me suis procuré un Toshiba XG4, issu d’un PC portable Dell. C’est un SSD NVMe de 256 Go qui utilise par défaut des secteurs de 512 octets. Sous High Sierra, il fonctionne directement et offre des débits corrects dans un boîtier Thunderbolt 2 Akitio. Sous Sierra, il n’est évidemment pas reconnu par défaut. J’ai utilisé ce tutorial.
Un passage sous Linux
Première étape, télécharger Ubuntu Desktop. Insérez une clé USB de quelques Go et tapez les lignes suivantes dans le Terminal.
diskutil list
Une fois la clé USB sélectionnée (vous devez trouver son numéro), démontez les volumes montés en remplaçant les x
par les valeurs de la clé USB. Ne vous trompez pas, ce serait bête d’effacer un disque dur externe.
sudo diskutil unmount /dev/diskxsx
Ensuite, copiez l’ISO sur la clé.
sudo dd bs= 32130b if=ubuntu-17.10-desktop-amd64.iso of=/dev/diskx
Maintenant, vous pouvez démarrer le Mac sur la clé USB (avec alt au démarrage). Une option permet de démarrer en mode live, c’est-à-dire sans installer Ubuntu.
Lancez Ubuntu Software, cliquez sur Ubuntus Software en haut de l’écran et choisissez Software & Updates. Dans la fenêtre, cochez Commmunity-maintained free and open-source software (universe). A la fermeture, l’OS va mettre à jour les caches, ce qui peut prendre quelques minutes.
Maintenant, lancez le Terminal et tapez les lignes suivantes, avec évidemment le SSD branché.
sudo apt-get install smartmontools
sudo apt-get install nvme-cli
sudo smartctl -a /dev/nvme0
Dans la liste, une section donne la taille de bloc courante et les options possibles. Avec un SSD Toshiba, ça donne ça. S’il ne propose pas l’option 4096, ça ne marchera évidemment pas.
Supported LBA Sizes (NSID 0x1)
Id Fmt Data Metadt Rel_Perf
0 + 512 0 2
1 - 4096 0 1
La ligne suivante passe le SSD en secteur de 4 ko et efface totalement le SSD (vous êtes prévenus).
sudo nvme format -l 1 /dev/nvme0
Une fois que c’est fait, il suffit de redémarrer sous macOS et le SSD NVMe devrait fonctionner sous Sierra.
J’ai testé avec un MacBook Air 2012 sous Sierra sans problèmes. Niveau débit, en Thunderbolt 1, on est vers 850 Mo/s en lecture et ~400 Mo/s en écriture. En Thunderbolt 2 sur un autre Mac, on monte à ~1 200 Mo/s en lecture et toujours ~400 Mo/s en écriture. Le débit en écriture dépend essentiellement de la capacité (256 Go, c’est un peu léger pour mettre plusieurs puces en parallèle). En lecture, le Thunderbolt 1 limite dans le premier cas, le SSD atteint son maximum dans le second.
Cela serait pas mal de mentionner la source pour les pas à suivre pour la conversion en 4ko ;)
https://www.insanelymac.com/forum/forums/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/?do=findComment&comment=2377304
Je pensais l’avoir mis dans mes liens, ceci dit, ma source, c’est pas ton lien, c’est ça : https://github.com/wmchris/DellXPS15-9550-OSX/blob/master/4k_sector.md
Ouais, mais vu qu’il a copié les infos 4 mois après ma publication initiale…
Sur github OK, mais sur un blog vaut mieux s’en soucier des sources
https://github.com/wmchris/DellXPS15-9550-OSX/commit/027404f5c11d40defd6c4274094479548996fc58
L’une des choses les plus compliquées est de toujours trouver un logiciel qui corresponde à ce que l’on veut faire, mais la clé est toujours de faire une bonne recherche et c’est ce qui m’est arrivé avec Ubuntu, donc je peux certifier sa qualité et son utilité ça a été pour moi
Bonjour,
Je sais que l’article date un peu mais j’aimerai upgrader mon macbook pro retina fin 2013 et passer d’un SSD 256 à 1To.
Je ne suis pas du tout experte dans le domaine donc pardonnez ma question si elle vous semble bête mais quid des nouveaux OS ? Auj c’est Catalina, est ce que le matériel supporte un SSD M2 (avec adaptateur) en NVME ? Car je lis que oui et parfois on me dit que non… du coup je suis perdue et ne sais pas si je peux acheter un SSD M2 en NVME (si la machine va supporter et ne pas bugger)
Merci infiniment pour votre réponse
Bonne journée
Alors, oui. Il faut bien d’abord passer à Catalina ou High Sierra avant de changer de SSD. Et ensuite installer un SSD M.2 avec un adaptateur
Salut mon pote, merci d’avoir partagé ces informations avec nous.
Bonjour à tous,
Quelqu’un peut-il m’aider ? J’ai un disque SSD M.2 de Samsung modèle M951 en PCI-e AHCI.
Je recherche un boîtier externe pour mon SSD Samsung PCI-e AHCI., impossible d’en trouver sur Amazon.
Si quelqu’un a une idée où une référence je vous serais très reconnaissant.
Merci à tout pour votre aide
Michel
En USB, c’est compliqué. Normalement, les boîtiers pour M.2 en Thunderbolt, genre OWC, prennent les AHCI.
Mais vu le prix, c’est peu intéressant, sauf si le but est de récupérer des données. N’importe quel SSD externe USB-C va être plus rapide.
Bonjour,
J’ai acheté un Samsung SSD Interne 970 EVO NVMe M.2 pour le mettre dans un boîtier externe USB 3.1 Gen 2 et impossible de le faire reconnaître par mon Mac mini 2018.
Auriez vous une solution svp.
Merci