7 votes

Comment se fait-il qu'il soit soudainement devenu beaucoup plus rapide de sortir OS X de son "sommeil sécurisé" ?

Parce que je suis super paranoïaque en matière de sécurité, je configure mon MacBook pour qu'il soit toujours en "veille sécurisée" et détruise sa clé FileVault en entrant en veille :

$ sudo pmset -a hibernatemode 25 DestroyFVKeyOnStandby 1

Comme expliqué sous pmset(1) :

hibernatemode = 25 (binaire 0001 1001) est uniquement réglable par pmset. Le système stocke une copie de la mémoire sur un support persistant (le disque) et coupe l'alimentation de la mémoire. Le système restaurera à partir de l'image disque. Si vous voulez une "hibernation" - sommeil plus lent, réveil plus lent, et une meilleure durée de vie de la batterie, vous devriez utiliser ce paramètre.

et :

destroyfvkeyonstandby - Détruit la clé de File Vault lors du passage en mode veille. Par défaut, les clés de coffre-fort sont conservées même lorsque le système est mis en veille. Si les clés sont détruites, l'utilisateur sera invité à entrer le mot de passe lorsqu'il sortira du mode veille. (valeur : 1 - Détruire, 0 - Conserver)

Par conséquent, lorsque la machine se réveille de son sommeil, il faut :

  1. déverrouiller d'abord FileVault sur un écran de verrouillage EFI, puis
  2. déverrouiller OS X à une fenêtre de connexion.

Historiquement, il y avait un délai compréhensible entre ces deux étapes, car OS X doit restaurer à partir d'une image disque (en copiant le fichier hibernation dans la RAM) avant de pouvoir faire quoi que ce soit d'autre. Pendant ce temps, l'écran affichait la fenêtre de connexion recouverte d'une couverture semi-transparente ainsi qu'une barre de progression.

Cependant, je ne constate plus de délai entre les étapes 1 et 2. Il semble qu'OS X soit capable de reprendre presque dès que FileVault est déverrouillé, ce qui me suggère que l'alimentation n'a peut-être pas été retirée de la RAM comme promis par l'hibernatemode 25.

Qu'est-ce qui se passe ? Est-ce que, comme le suggèrent les journaux ci-dessous, Apple a trouvé un moyen magique de restaurer des gigaoctets de RAM à partir d'une image disque à une vitesse impitoyable (et, si c'est le cas, est-ce que tous les utilisateurs d'ordinateurs portables ne préféreraient pas se mettre en "veille sécurisée", peut-être sans détruire les clés FileVault, plutôt que de garder la RAM alimentée et de gaspiller la batterie) ? Ou, plus vraisemblablement ( ?), mon MacBook n'est plus vraiment en "sommeil sécurisé" ? Dans ce dernier cas, pourquoi - et comment je peux le réparer ?


$ sw\_vers
ProductName:    Mac OS X
ProductVersion: 10.11.3
BuildVersion:   15D21

$ pmset -g
System-wide power settings:
 SleepDisabled      0
 DestroyFVKeyOnStandby      1
Active Profiles:
Battery Power       -1
AC Power        -1\*
Currently in use:
 standbydelay         10800
 standby              1
 womp                 0
 halfdim              1
 hibernatefile        /var/vm/sleepimage
 powernap             0
 gpuswitch            2
 networkoversleep     0
 disksleep            10
 sleep                1
 autopoweroffdelay    14400
 hibernatemode        25
 autopoweroff         0
 ttyskeepawake        1
 displaysleep         10
 acwake               0
 lidwake              1

$ cat /var/log/system.log
Feb  5 01:19:35 eggyal PowerChime\[622\]: 53728.262434: GOING TO SLEEP: kStateDarkWake -> kStateAsleep
Feb  5 01:19:35 eggyal PowerChime\[622\]: 53728.262821: Calling goingToSleepBlock
Feb  5 01:19:38 eggyal kernel\[0\]: PM response took 3072 ms (57, powerd)
Feb  5 01:19:38 eggyal kernel\[0\]: AppleCamIn::systemWakeCall - messageType = 0xE0000280
Feb  5 01:19:38 eggyal kernel\[0\]: AppleCamIn::systemWakeCall - messageType = 0xE0000340
Feb  5 01:19:38 eggyal kernel\[0\]: kern\_open\_file\_for\_direct\_io(0)
Feb  5 01:19:38 eggyal kernel\[0\]: kern\_open\_file\_for\_direct\_io took 24 ms
Feb  5 01:19:38 eggyal kernel\[0\]: Opened file /var/log/SleepWakeStacks.bin, size 172032, extents 1, maxio 40000 ssd 1
Feb  5 01:19:38 eggyal kernel\[0\]: polled file major 1, minor 0, blocksize 4096, pollers 3
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate image path: /var/vm/sleepimage
Feb  5 07:52:38 eggyal kernel\[0\]: efi pagecount 72
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_page\_list\_setall(preflight 1) start
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_page\_list\_setall time: 292 ms
Feb  5 07:52:38 eggyal kernel\[0\]: pages 1229108, wire 262730, act 464069, inact 1872, cleaned 0 spec 10, zf 3948, throt 0, compr 155445, xpmapped 40000
Feb  5 07:52:38 eggyal kernel\[0\]: could discard act 169997 inact 38206 purgeable 85433 spec 47398 cleaned 0
Feb  5 07:52:38 eggyal kernel\[0\]: WARNING: hibernate\_page\_list\_setall skipped 10768 xpmapped pages
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_page\_list\_setall preflight pageCount 262730 est comp 39 setfile 491782144 min 1073741824
Feb  5 07:52:38 eggyal kernel\[0\]: kern\_open\_file\_for\_direct\_io(0)
Feb  5 07:52:38 eggyal kernel\[0\]: kern\_open\_file\_for\_direct\_io took 21 ms
Feb  5 07:52:38 eggyal kernel\[0\]: Opened file /var/vm/sleepimage, size 1073741824, extents 2, maxio 40000 ssd 1
Feb  5 07:52:38 eggyal kernel\[0\]: polled file major 1, minor 0, blocksize 4096, pollers 3
Feb  5 07:52:38 eggyal kernel\[0\]: vm\_compressor\_record\_warmup (29246 - 32193)
Feb  5 07:52:38 eggyal kernel\[0\]: vm\_compressor\_flush - starting
Feb  5 07:52:38 eggyal kernel\[0\]: vm\_compressor\_flush completed - took 7834 msecs
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_flush\_memory: buffer\_cache\_gc freed up 13242 wired pages
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_alloc\_pages act 261470, inact 39096, anon 11567, throt 0, spec 47402, wire 274180, wireinit 32085
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_setup(0) took 9624 ms
Feb  5 07:52:38 eggyal kernel\[0\]: AppleCamIn::systemWakeCall - messageType = 0xE0000340
Feb  5 01:19:49 eggyal kernel\[0\]: hibernate\_page\_list\_setall(preflight 0) start
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_teardown started
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_teardown: wired\_pages 274183, free\_pages 1766704, active\_pages 40000, inactive\_pages 0, speculative\_pages 0, cleaned\_pages 0, compressor\_pages 80
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_teardown\_pmap\_structs done: last\_valid\_compact\_indx 181266
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_teardown: mark\_as\_unneeded\_pages 2048, 26515, 18518
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_teardown completed - discarded 47081
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_page\_list\_setall time: 649 ms
Feb  5 07:52:38 eggyal kernel\[0\]: pages 550280, wire 202232, act 40000, inact 0, cleaned 0 spec 0, zf 0, throt 0, compr 80, xpmapped 40000
Feb  5 07:52:38 eggyal kernel\[0\]: did discard act 136037 inact 39096 purgeable 85433 spec 47402 cleaned 0
Feb  5 07:52:38 eggyal kernel\[0\]: WARNING: hibernate\_page\_list\_setall skipped 16430 xpmapped pages
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_page\_list\_setall found pageCount 242312
Feb  5 07:52:38 eggyal kernel\[0\]: IOHibernatePollerOpen, ml\_get\_interrupts\_enabled 0
Feb  5 07:52:38 eggyal kernel\[0\]: IOHibernatePollerOpen(0)
Feb  5 07:52:38 eggyal kernel\[0\]: encryptStart 14010
Feb  5 07:52:38 eggyal kernel\[0\]: bitmap\_size 0x3f444, previewSize 0x4028, writing 241958 pages @ 0x5747c
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_rebuild started
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_rebuild\_pmap\_structs done: last\_valid\_compact\_indx 181266
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_rebuild completed - took 51 msecs
Feb  5 07:52:38 eggyal kernel\[0\]: booter start at 1073 ms smc 0 ms, \[17, 0, 0\] total 16393 ms, dsply 0, 0 ms, tramp 544 ms
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_machine\_init: state 2, image pages 202019, sum was be127fc2, imageSize 0x17cb5000, image1Size 0xecb6000, conflictCount 2498, nextFree acf
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_newruntime\_map time: 0 ms, IOPolledFilePollersOpen(), ml\_get\_interrupts\_enabled 0
Feb  5 07:52:38 eggyal kernel\[0\]: IOPolledFilePollersOpen(0) 1 ms
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_machine\_init reading
Feb  5 07:52:38 eggyal kernel\[0\]: PMStats: Hibernate read took 281 ms
Feb  5 07:52:38 eggyal kernel\[0\]: hibernate\_machine\_init pagesDone 242099 sum2 91d0cb87, time: 281 ms, disk(0x20000) 512 Mb/s, comp bytes: 47316992 time: 36 ms 1232 Mb/s, crypt bytes: 150990848 time: 38 ms 3702 Mb/s

2voto

Ben L Points 23

Si Filevault est activé et que vous n'obtenez pas l'écran d'authentification EFI (apple.com > HT204156), vous ne sortez pas de veille. Vous devriez être invité à fournir des informations d'identification deux fois : une fois par EFI pour Filevault, puis une barre de progression au fur et à mesure que le volume Filevault est monté et que l'image d'hibernation est restaurée, puis une deuxième authentification à partir du système d'exploitation pour se reconnecter.

sudo pmset -f log peut aider à confirmer ce qui se passe.

Pour ce que ça vaut, j'ai également constaté que l'option hibernatemode=25 ne semble pas fonctionner. Lors d'un test sur un MacbookAir6,2 / A1466 de 2013 fonctionnant sous 10.11.5 avec hibernatemode=25 (direct-to-standby, skip sleep), la machine s'est mise en veille prolongée à la fermeture du couvercle après avoir activé cette option. Cependant, elle ne l'a pas fait à nouveau. (J'ai fait une mise à jour vers la 10.11.5 dans l'intervalle...)

La documentation d'Apple https://support.apple.com/en-us/HT202124 indique que "les ordinateurs portables doivent fonctionner sur batterie [et] ne doivent pas avoir de connexions externes (telles qu'Ethernet, USB, Thunderbolt, carte SD, écrans, Bluetooth, etc.

En faisant attention aux conditions ci-dessus, j'ai testé cela plusieurs fois et ma machine ne se met en veille (et donc, détruit la clé Filevault si destroyfvkeyonstandby est activé) que lorsque la batterie est complètement déchargée.

i.e. hibernatemode=25 ne fonctionne pas réellement comme documenté dans pmset(1).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X