⚡️ Mes codes promo et bons plans partenaires sont ici !

Rechercher

Menu

S'abonner

Catégories

Tech

Exploration

Maison et Domotique

Sport & Santé

Culture

Comment formater un disque de Time Capsule sans AirPort Utility (SSH & Terminal)
Mac Réseau

Comment formater un disque de Time Capsule sans AirPort Utility (SSH & Terminal)

LoKan Sardari

J'ai récemment remplacé le disque dur d'une Time Capsule par un Seagate IronWolf Pro de 12 To. Le problème ? Impossible d'utiliser AirPort Utility avec macOS 27 pour formater le disque, et TimeCapsuleSMB refusait de s'installer. Voici ma méthode pour formater une Time Capsule avec le Terminal, en SSH.

Cette procédure fait partie de mon article expliquant comment remplacer le disque dur d'une Time Capsule pour continuer de l'utiliser avec macOS 27 et ultérieurs. Apple ayant supprimé le support de SMB1, il fallait installer SMB4 via TimeCapsuleSMB.

Sommaire

Se connecter en SSH à la Time Capsule

Depuis le Mac, la connexion SSH classique peut échouer, car la Time Capsule utilise de vieilles normes SSH.

Avec un macOS récent, vous pouvez obtenir une erreur indiquant qu'aucun algorithme compatible n'est disponible. C'est normal : le serveur SSH de la Time Capsule est vieux, et OpenSSH désactive progressivement les algorithmes historiques.

Dans mon cas, la connexion fonctionnait avec :

ssh -oHostKeyAlgorithms=+ssh-rsa [email protected]

Remplacez évidemment l'adresse IP par celle de votre Time Capsule.

L'option -oHostKeyAlgorithms=+ssh-rsa dit simplement à SSH : "pour cette connexion, accepte aussi l'ancien type de clé ssh-rsa".

Ce n'est pas quelque chose à faire sur un serveur exposé sur Internet, mais pour une Time Capsule sur votre réseau local, dont le firmware ne sera plus mis à jour, c'est le genre de compromis qui permet d'avancer.

Si ça bloque encore, vous pouvez essayer :

ssh -oHostKeyAlgorithms=+ssh-rsa -oPubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

Le mot de passe demandé est celui de la Time Capsule.

Quelques commandes Linux a adapter

Une fois connecté en SSH, j'ai perdu beaucoup de temps en pensant que les commandes UNIX/Linux habituelles fonctionneraient. Aujourd'hui, c'était littéralement du bricolage.

Sur ma Time Capsule, grep n'existe pas. Certaines commandes pratiques comme which peuvent également manquer ou ne pas se comporter comme prévu.

Donc si vous avez envie de faire :

dmesg | grep dk0

ça peut tout simplement ne pas fonctionner.

À la place, lancez la commande complète :

/sbin/dmesg

Puis utilisez la recherche du Terminal, avec ⌘F, pour chercher wd0, dk0, hfs, etc.

C'est moins élégant, mais ça marche. Et dans ce genre de bricolage, "ça marche" est déjà une très bonne nouvelle.

SATA Disque dur time capsule

Une fois ouverte, la Time Capsule nous laisse facilement remplacer son disque dur

Vérifier que le disque est détecté

La première commande utile est celle-ci :

/usr/bin/acp -A MaSt

Elle permet de demander à la Time Capsule ce qu'elle voit côté stockage.

Au départ, j'obtenais quelque chose comme :

[
    {
        deviceName="wd0"
        smartStatus="verified"
        partitions=[]
        builtin=true
    }
]

C'est à la fois frustrant et rassurant.

Frustrant, parce que la Time Capsule ne voit aucun volume utilisable. Rassurant, parce que le disque physique est bien détecté, et que son statut SMART est correct.

Le problème n'est donc pas le branchement SATA. Le problème est le partitionnement.

Comprendre les noms : wd0, dk0, rdk0

C'est important de comprendre ce qu'on manipule, sinon les commandes ressemblent vite à de la magie noire.

  • wd0 est le disque physique SATA ;
  • dk0 est la partition HFS créée à partir de la table GPT ;
  • rdk0 est la version "raw" de cette partition, utilisée pour le formatage.

On crée donc la table de partition sur wd0, puis on formate le volume sur /dev/rdk0.

Vérifier l'état de la table GPT

Avant de recréer quoi que ce soit, j'ai vérifié l'état du disque :

/sbin/gpt show wd0

Dans mon cas, le disque contenait encore une ancienne table GPT Linux. La Time Capsule voyait donc un disque, mais pas une structure qu'elle pouvait utiliser comme disque interne HFS.

Supprimer l'ancienne table GPT

J'ai commencé par supprimer l'ancienne table GPT :

/sbin/gpt destroy wd0

Attention : sur cette version du firmware, l'option -f n'était pas disponible. Si vous trouvez ailleurs une commande du type /sbin/gpt destroy -f wd0elle peut échouer.

Dans mon cas, il fallait utiliser simplement : /sbin/gpt destroy wd0

Si la commande refuse de détruire la table existante, il reste une solution plus brutale : effacer le début du disque.

/bin/dd if=/dev/zero of=/dev/rwd0c bs=512 count=4096
/sbin/reboot

Cette commande écrase le début du disque. Elle est destructive. Ne la lancez que si vous êtes certain que wd0 est bien le disque que vous voulez effacer.

Créer une nouvelle table GPT

Une fois l'ancienne structure supprimée, on recrée une table GPT propre :

/sbin/gpt create wd0

Jusque-là, rien d'incroyable.

La partie subtile arrive juste après.

Créer une partition HFS correctement alignée

La commande évidente serait :

/sbin/gpt add -t hfs wd0

Sauf que chez moi, ça a créé une partition qui commençait au secteur 34, sans que je ne comprenne vraiment pourquoi.

newfs_hfs refusait ensuite de formater le volume, car la partition n'était pas alignée correctement.

Il faut donc forcer le début de la partition au secteur 2048. C'est un alignement classique à 1 Mio.

On pourrait alors faire :

/sbin/gpt add -b 2048 -t hfs wd0

Sauf que, deuxième déconvenue, gpt choisissait automatiquement une taille qui n'était pas un multiple de 8 secteurs. Résultat : "partition size not a multiple of 4K". Pourquoi ? Parce que la Time Capsule travaille avec des secteurs de 512 octets, et que 8 secteurs de 512 octets font 4096 octets.

Il fallait donc deux choses :

  • commencer au secteur 2048 ;
  • choisir une taille multiple de 8 secteurs.

Dans mon cas, le disque affichait :

512 bytes/sect x 23437770752 sectors

La taille automatiquement choisie finissait par 671, ce qui ne tombe pas juste.

J'ai donc utilisé une taille arrondie à l'inférieur au multiple de 8 :

/sbin/gpt add -b 2048 -s 23437768664 -t hfs wd0

La valeur 23437768664 correspond à mon Seagate IronWolf Pro de 12 To. Ne copiez pas cette valeur si vous utilisez un autre disque.

Comment adapter la taille à votre disque

La logique est la suivante :

  • repérez le nombre total de secteurs dans /sbin/dmesg ;
  • retirez le début de partition : 2048 secteurs ;
  • gardez une petite marge pour la fin de GPT ;
  • arrondissez la taille obtenue au multiple de 8 inférieur.

Dans mon cas :

23437770752 secteurs au total
- 2048 secteurs de départ
- 33 secteurs réservés en fin de disque
= 23437768671

23437768671 arrondi au multiple de 8 inférieur
= 23437768664

D'où la commande finale :

/sbin/gpt add -b 2048 -s 23437768664 -t hfs wd0

Après cette commande, gpt peut afficher un message vous proposant d'utiliser dkctl.

Problème : sur ma Time Capsule, dkctl n'existait pas.

Merci Apple. Très pratique. Vraiment.

Redémarrer pour créer dk0

Comme dkctl n'était pas disponible, impossible de créer le périphérique dk0 à chaud.

La solution a été simple : redémarrer.

/sbin/reboot

Après reconnexion en SSH, j'ai lancé :

/sbin/dmesg

Et j'ai cherché dk0 dans le retour.

La bonne ligne était :

dk0: 23437768664 blocks at 2048, type: hfs

Cette ligne est importante : elle confirme que le noyau a bien créé le périphérique dk0 avec la bonne taille et le bon point de départ.

À partir de là, on peut formater.

Formater le volume en HFS+

On crée maintenant le système de fichiers HFS+ journalisé :

/sbin/newfs_hfs -J -v Data /dev/rdk0

Le -J active le journal.

Le -v Data donne le nom Data au volume. Vous pouvez choisir un autre nom, mais j'ai préféré rester simple.

Chez moi, la commande a retourné :

Initialized /dev/rdk0 as a 11176 GB HFS Plus volume with a 524288k journal

C'est bon signe.

Le disque de 12 To apparaît comme un volume de 11176 GB. Ce n'est pas une erreur : entre les unités, le formatage, les réserves et la manière dont le firmware affiche les tailles, il ne faut pas s'attendre à voir “12 To” écrit partout.

Pourquoi je redémarre encore une fois

À ce stade, j'ai tenté de monter le volume à la main :

mkdir -p /Volumes/dk0
/sbin/mount_hfs /dev/dk0 /Volumes/dk0

Le montage fonctionnait.

Mais lorsque je relançais :

/usr/bin/acp -A MaSt

la Time Capsule continuait d'afficher :

partitions=[]

Autrement dit : le système savait monter le disque, mais le firmware Apple ne l'avait pas encore intégré comme volume interne utilisable.

J'ai tenté de relancer diskd à la main. Ça n'a rien changé.

La solution a été, encore une fois, de redémarrer :

/sbin/reboot

Après ce redémarrage, la Time Capsule a monté le volume automatiquement.

Vérifier que la Time Capsule reconnaît enfin le disque

Après le dernier redémarrage, reconnectez-vous en SSH puis lancez :

/usr/bin/acp -A MaSt

Cette fois, j'obtenais bien :

partitions=
[
    {
        format="hfs"
        deviceName="dk0"
        name="Data"
        users=1
    }
]

Et le volume était bien monté :

ls /Volumes
mount

Avec :

/dev/dk0 on /Volumes/dk0 type hfs

Là, c'est gagné.

La Time Capsule ne voit plus seulement un disque physique. Elle voit un disque interne HFS utilisable.

Pourquoi TimeCapsuleSMB bloquait

TimeCapsuleSMB ne cherche pas juste un disque branché. Il cherche un volume HFS exploitable par la Time Capsule.

Au départ, la commande /usr/bin/acp -A MaSt retournait :

partitions=[]

Pour TimeCapsuleSMB, ça veut dire : "je n'ai aucun disque HFS utilisable".

D'où l'erreur :

No deployable HFS disk

Une fois la partition HFS créée, le volume HFS+ formaté, et le firmware Apple relancé proprement, MaSt retourne enfin :

format="hfs"
deviceName="dk0"
name="Data"

À partir de là, TimeCapsuleSMB peut s'installer normalement.

Les commandes complètes utilisées dans mon cas

Si vous avez exactement le même contexte que moi - disque interne en wd0, Seagate IronWolf Pro 12 To, partition finale en dk0 - les commandes utiles sont donc :

/usr/bin/acp -A MaSt
/sbin/gpt show wd0
/sbin/gpt destroy wd0
/sbin/gpt create wd0
/sbin/gpt add -b 2048 -s 23437768664 -t hfs wd0
/sbin/reboot

Après reconnexion :

/sbin/dmesg
/sbin/newfs_hfs -J -v Data /dev/rdk0
/sbin/reboot

Après le dernier redémarrage :

/usr/bin/acp -A MaSt
ls /Volumes
mount

Ne copiez pas aveuglément la valeur 23437768664. Elle correspond à mon disque. Si votre capacité est différente, vous devez recalculer la taille de partition.

Les erreurs qui m'ont fait perdre du temps

La première erreur a été de laisser gpt créer la partition automatiquement. Il a commencé au secteur 34, ce qui n'était pas utilisable pour le formatage HFS+ dans cette configuration.

La deuxième erreur a été de corriger le début de partition avec -b 2048, mais sans fixer la taille. Résultat : la partition commençait au bon endroit, mais sa taille n'était pas multiple de 4K.

La troisième erreur a été de croire que le montage manuel suffisait. Le volume pouvait être monté avec mount_hfs, mais MaSt continuait de retourner partitions=[] jusqu'au redémarrage.

La quatrième erreur a été de raisonner comme sur un Linux moderne. Ici, pas de grep, pas de dkctl, pas de confort. Vous lisez les retours complets, vous utilisez les chemins absolus, et vous avancez calmement.

Conclusion

Au final, le problème n'était pas de remplacer le disque. Le problème était de reconstruire exactement ce que le firmware Apple attend :

  • une table GPT propre ;
  • une partition HFS alignée au secteur 2048 ;
  • une taille de partition multiple de 8 secteurs ;
  • un volume HFS+ journalisé ;
  • un redémarrage pour que la Time Capsule recrée dk0 ;
  • un second redémarrage pour que MaSt reconnaisse enfin le volume.

Une fois cette étape passée, TimeCapsuleSMB peut faire son travail, et la Time Capsule peut continuer à servir de stockage réseau avec un protocole SMB moderne.

Ce n'est clairement pas plug and play. Mais si vous avez une Time Capsule qui dort dans un placard, un disque compatible, et un peu de patience, ça permet de prolonger la vie d'un matériel encore très pratique.

LoKan Sardari
Auteur de l'article

LoKan Sardari

Je crée des contenus depuis 2006 avec la même obsession : comprendre ce que la tech change vraiment quand elle sort des fiches produit et entre dans la vraie vie.

Apple, santé connectée, sport, voyage, maison, productivité : je teste les outils qui promettent de mieux vivre, de mieux bouger ou de mieux travailler, puis je garde ce qui résiste à l'usage réel.

Indépendant, curieux, souvent trop équipé, je partage ici mes tests, mes obsessions et mes retours d'expérience, sans langue de bois.

Plus qu'une chaîne.

Tests en avant-première, discussions directes, accès aux coulisses de chaque projet. Pour ceux qui veulent aller plus loin.

Rejoindre la communauté

Commentaires

Qu’en pensez-vous ?

Soyez le premier à laisser un commentaire.