Salut
guillaume.
Ah! que voici un abstrus petit problème comme le fantasque
macomaniac les affectionne - d'où ce 'devoir de vacances' du susnommé
Si je t'ai bien suivi, ce que tu veux c'est que ton HDD auxiliaire que tu
éjectes manuellement par l'«
Utilitaire de Disque» une fois ta session ouverte, càd. dont tu assures la
dé-connexion physique qui l'empêche de
tourner (état de
spin_down) et pas seulement le
dé-montage du volume logique ; lorsque ton Mac sort de l'état de sommeil (
sleep) où tu l'as plongé par fermeture du couvercle et se réveille (=
wake-up par ré-ouverture du couvercle), ne se re-connecte pas automatiquement pour se remettre à tourner. Tu veux donc neutraliser la fonction de re-connexion automatique du HDD au réveil de l'état de sommeil, de manière à le maintenir à l'état de
spin_down sans avoir chaque fois à l'y replonger par une nouvelle intervention manuelle dans l'«
Utilitaire de Disque».
Si tu as la patience de me suivre et le cran de te servir du «
Terminal», voici un procédé bien 'tarabiscoté' mais qui marche (d'après l'expérience que je viens d'en faire ce matin sur mon
MacBook Pro) -->
- Obtention de sleepwatcher. Rends-toi d'abord sur le site de Bernhard Baehr ☞bb's Homepage☜ et télécharge SleepWatcher 2.2 (gratuit) qui devrait atterrir sous forme d'archive .tar soit dans ton dossier des Téléchargements, soit sur ton Bureau, selon les préférences d'utilisateur que tu as définies. Double-clique l'archive, ce qui la décompresse pour donner un dossier : sleepwatcher_2.2. Afin que nos violons soient accordés (càd. pour que les commandes que je vais te proposer concordent avec la localisation de l'objet sur ton Mac
), arrange-toi pour que ce dossier sleepwatcher_2.2 soit sur ton Bureau = ~/Desktop (s'il est dans tes Téléchargements, déplace-le sur ton Bureau).
❊
- Installation de sleepwatcher. Tout va se passer dans le «Terminal». Va donc à Applications/Utilitaires et lance le «Terminal» --> une fenêtre s'ouvre, où tu es accueilli par une invite-de-commande de la forme (exemple) guillaume# flanquée d'un pointeur (comme dans un traitement de texte) déplaçable vers la droite par pressions sur la barre d'espacement du clavier et vers la gauche en mode 'effacement' par pressions sur la touche ←. Le «Terminal» supporte le copier-coller et donc tu vas en profiter dans tout ce qui suit. Commence donc par faire un copier-coller de la ligne de commande :
Bloc de code:
sudo mkdir -p /usr/local/sbin /usr/local/share/man/man8
et ↩︎ (presse la touche 'Entrée' du clavier pour activer la commande) --> une demande de password s'affiche (commande sudo) --> tape ton mot-de-passe admin à l'aveugle -aucun caractère ne se montrant à la frappe- et derechef ↩︎. L'invite de commande ré-affichée, enchaîne avec :
Bloc de code:
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher /usr/local/sbin
et ↩︎ (pas besoin de te ré-authentifier avec ton mot-de-passe dans un délai de grâce de 5' pendant lequel tu vas rester sudoer). L'invite de commande réaffichée, tu conclus par :
Bloc de code:
sudo cp ~/Desktop/sleepwatcher_2.2/sleepwatcher.8 /usr/local/share/man/man8
et ↩︎. Par ce jeu de commandes, tu as installé les binaires du logiciel dans le répertoire invisible de l'OS /usr/local/sbin et tu as installé la page de manuel man:sleepwatcher (consultable depuis le «Terminal» désormais) dans le dossier /usr/local/share/man/man8 que tu as créé.
✻
- Génération du LaunchAgent. Il convient à présent de faire en sorte que, dès ton ouverture de session, sleepwatcher soit exécuté par un LaunchAgent (processus de toile de fond de session permanent). Toujours dans la fenêtre du «Terminal», tu copies-colles (déroule toute la commande pour la copier) -->
Bloc de code:
sudo mv ~/Desktop/sleepwatcher_2.2/config/de.bernhard-baehr.sleepwatcher-20compatibility-localuser.plist ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist
et ↩︎. À l'invite de commande ré-affichée , tu enchaînes par :
Bloc de code:
sudo chown root ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist
et ↩︎ puis avec :
Bloc de code:
sudo chmod 644 ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist
et ↩︎ et enfin :
Bloc de code:
sudo launchctl load ~/Library/LaunchAgents/de.bernhard-baehr.sleepwatcher.plist
et ↩︎. Par ces commandes (abstrus, non?
), tu as déplacé le LaunchAgent pré-créé par l'auteur au répertoire des LaunchAgents de ta Bibliothèque personnelle (~/Library) sous le nom abrégé de de.bernhard-baehr.sleepwatcher.plist ; tu as rectifié les droits sur le fichier (propriétaire = root et permissions de lecture/écriture pour celui-ci) ; et enfin tu as activé sa prise en charge par le processus launchctl.
✼
- Identification du device. Pour continuer ton emploi du «Terminal», fais un copier-coller de la commande informative :
et ↩︎ --> le tableau des disques attachés au Mac avec leurs volumes s'affiche. Vérifie que ton SSD qui supporte l'OS est bien par défaut identifié globalement (disque physique) comme :
et surtout vérifie que ton HDD auxiliaire qui supporte de simples données est bien identifié globalement (disque physique) comme :
Bloc de code:
/dev/disk[COLOR="Red"]1[/COLOR]
Il est tout à fait décisif que le disque soit correctement identifié numériquement parlant dans la séquence ordonnée des devices, afin que le programme sleepwatcher exécuté par le LaunchAgent porte sur le bon objet
. Logiquement, ton HDD devrait être identifié comme : /dev/disk1 (si ce n'était pas le cas -je ne vois pas comment- suspends la suite des opérations et poste un message d'alerte. Si c'est bien /dev/disk1 comme attendu, alors continue bravement
. Ne ferme pas le «Terminal», tu vas en avoir encore besoin pour finir après l'épisode «TextWrangler».
❉
- Obtention de TextWrangler. Rends-toi sur le site de Bare Bones et télécharge le logiciel ☞TextWrangler☜, que tu installes dans le dossier des Applications de ton OS. Il s'agit d'un logiciel gratuit (
) qui permet d'éditer/créer des fichiers_Système de OSX avec de droits root sur simple authentification admin et sans passer par les abstrus traitements de texte du «Terminal» (qui sont, comme le disent les Américains en mode imagé, a pain in the ass
à utiliser).
✾
- Création du script dodo. Lance «TextWrangler» qui s'ouvre en affichant une fenêtre de fichier texte vide par défaut (= New Document). Fais-y un copier-coller (déroule toute la commande pour la copier) de :
Bloc de code:
#!/bin/sh
/usr/sbin/diskutil list | grep -e 'disk[1-9]s.*' | sed 's/.*\(disk[0-9].*\)/\1/' | xargs -I{} /usr/sbin/diskutil eject {}
et par ⌘S sauvegarde ce fichier sous l'intitulé dodo.txt (supprime complètement l'intitulé par défaut : Untitled.sh par dodo.txt, y compris l'extension .sh) et choisis comme destination du fichier ton Bureau où tu vérifies qu'il a bien atterri. Tu peux quitter «TextWrangler».
❈
- Finalisation du fichier dodo. Reviens pour finir dans la fenêtre laissée ouverte du «Terminal», et fais un copier-coller de :
Bloc de code:
mv ~/Desktop/dodo.txt ~/.dodo
et ↩︎, puis tu conclus par :
et ↩︎. Par ces commandes, tu as frappé le fichier dodo d'invisibilité (tu remarques qu'il a disparu de l'affichage graphique sur ton Bureau) tout en le déplaçant à la racine de ton espace Home, et tu lui a rajouté l'executable_bit (+x) sans lequel il ne serait pas opératoire pour le LaunchAgent. Tu peux quitter le «Terminal» par ⌘Q. Tu peux aussi 'benner' l'archive inaugurale sleepwatcher_2.2.tar ainsi que le dossier décompressé résidant sur le Bureau = sleepwatcher_2.2.
❀
☞ Pour conclure, tu
re-démarres ton Mac. Normalement après ce parcours du combattant et si le petit
macomaniac n'a pas lâché de wagons sur les rails des vacances

, ton HDD devrait -même si tu ne l'avais pas déjà éjecté manuellement au préalable dans l'«
Utilitaire de Disque»- être affecté par une instruction automatique d'
eject =
spin_down à toute mise en sommeil (
sleep)
et rester dans l'état d'eject (spin_down) sans re-connexion automatique lors du réveil (
wake-up) du Mac dans ta session. En tout cas, sur mon
MacBook Pro, ça marche d'après mes tests : ouvrir le couvercle n'enclenche pas de re-connexion automatique d'un disque auxiliaire
/dev/disk1. Je ne peux pas mesurer si des re-connexions accidentelles pendant la poursuite de la session sont ou non à attendre, càd. si le procédé est ou non stable.
[@ Albert
& Locke
--> je vous accorde que c'est complètement dispensable et ne m'y suis intéressé qu'à titre de cas d'école
]
------♧