Forcer mon MacBook Air qui utilise une clé USB externe comme lecteur de démarrage à hiberner / suspendre sur le disque?

9

Il y a plusieurs questions sur l'hibernation (suspension sur disque), mais la plupart sont préoccupées par la durée de vie de la batterie et de nombreuses réponses disent simplement d'utiliser la veille (suspension sur RAM) car la batterie durera mieux que vous ne le pensez. D'autres réponses sont simplement obsolètes.

Je ne veux pas utiliser la mise en veille prolongée en raison de problèmes de batterie. Je le veux car le SSD est mort et j'utilise un disque dur externe USB 3 comme disque de démarrage. En d'autres termes, je n'ai que ce seul lecteur. Aucun lecteur intégré fonctionnel.

C'est presque aussi rapide et j'en suis content. Mais si le câble bouge trop alors que le MacBook est dans mon sac à dos, le système d'exploitation se bloque et tout ce qui était dans la RAM est perdu. Je veux transporter l'équipement avec le lecteur séparé de l'ordinateur. Cela nécessite une véritable mise en veille prolongée et pas seulement du sommeil.

J'ai lu que MacOS a plusieurs heuristiques sur le moment de suspendre sur le disque (hibernation) plutôt que sur la RAM (veille) et que l'une d'elles est de savoir si des périphériques USB sont branchés, ce qui pour moi est toujours.

Je l'ai, sudo pmset -a hibernatemode 25mais quand je mets le Mac en veille maintenant, il démarre juste en appuyant sur une touche ou en branchant le secteur, ce qui me dit qu'il ne suspend pas.

Existe-t-il un moyen de vraiment suspendre mon MacBook sur le disque, puis de retirer le HD en toute sécurité, de tout transporter, de rebrancher le lecteur, de réveiller le Mac, le tout sans perdre ce sur quoi je travaillais à l'époque?

Mi-2013 11 "Air / Sierra 10.12.6


Sortie de sudo pmset -g assertions

2017-08-20 12:10:43 +1000 
Assertion status system-wide:
   BackgroundTask                 0
   ApplePushServiceTask           0
   UserIsActive                   1
   PreventUserIdleDisplaySleep    0
   PreventSystemSleep             0
   ExternalMedia                  1
   PreventUserIdleSystemSleep     1
   NetworkClientActive            0
Listed by owning process:
   pid 59(powerd): [0x0000004100088000] 39:29:46 ExternalMedia named: "com.apple.powermanagement.externalmediamounted" 
   pid 251(mds_stores): [0x0001272e000ba305] 00:04:18 BackgroundTask named: "com.apple.metadata.mds_stores.power" 
   pid 114(hidd): [0x000100dd0009997a] 03:36:53 UserIsActive named: "com.apple.iohideventsystem.queue.tickle.4294967962.3" 
    Timeout will fire in 110 secs Action=TimeoutActionRelease
   pid 72(mds): [0x000126ae000ba2d1] 00:06:26 BackgroundTask named: "com.apple.metadata.mds.power" 
   pid 57(configd): [0x000122640007a186] 00:24:44 DenySystemSleep named: "InternetSharingPreferencePlugin" 
   pid 193(coreaudiod): [0x000122260001889a] 00:25:46 PreventUserIdleSystemSleep named: "com.apple.audio.AppleHDAEngineOutput:1B,0,1,1:0.context.preventuseridlesleep" 
    Created for PID: 438. 
Kernel Assertions: 0x4=USB
   id=503  level=255 0x4=USB mod=1/1/70, 10:00 am description=com.apple.usb.externaldevice.14500000 owner=BUP Slim Mac SL
Idle sleep preventers: IODisplayWrangler
hippietrail
la source
avez-vous essayé de déplacer l'image de veille sur le disque externe et de la supprimer sur HD?
Ruskes
2
Quelle est la sortie depmset -g assertions
Allan
1
@Allan OP de cette question cherche à hiberner (pas seulement à dormir), afin que le disque externe puisse être déconnecté pendant l'hibernation
grg
1
@hippietrail Il semble que ce soit différent. La page de manuel dit:GETTING -g (with no argument) will display the settings currently in use. -g live displays the settings currently in use. -g custom displays custom settings for all power sources. -g assertions displays a summary of power assertions. Assertions may pre- vent system sleep or display sleep. Available 10.6 and later.
FiddleDeDee

Réponses:

1

pmset avec hibernatemode = 25 pourrait fonctionner.

sudo pmset -a hibernatemode 25  #to change to "safe sleep", aka, hibernate
pmset sleepnow                  #to make it sleep now

Et, pour le remettre en mode ordinateur portable "normal", utilisez sudo pmset -a hibernatemode 3.

MikeP
la source