¿Cómo es que de repente se ha vuelto mucho más rápido despertar OS X de "modo seguro"?

5

Debido a que soy muy paranoico con respecto a la seguridad, configuro mi MacBook para que siempre tenga un "reposo seguro" y destruya su clave de FileVault al ingresar al modo de espera:

$ sudo pmset -a hibernatemode 25 DestroyFVKeyOnStandby 1

Como se explica en pmset (1) :

  

hibernatemode = 25 (binario 0001 1001) solo se puede configurar mediante pmset. El sistema almacenará una copia de la memoria en el almacenamiento persistente (el disco) y eliminará la energía de la memoria. El sistema se restaurará desde la imagen de disco. Si desea "hibernación": inactividad más lenta, despertar más lento y una mejor duración de la batería, debe usar esta configuración.

y:

  

destroyfvkeyonstandby - Destruye la clave de almacenamiento del archivo cuando se está en el modo de espera. De forma predeterminada, las claves del almacén de archivos se conservan incluso cuando el sistema pasa al modo de espera. Si se destruyen las claves, se le solicitará al usuario que ingrese la contraseña cuando salga del modo de espera (valor: 1 - Destruir, 0 - Retener)

En consecuencia, cuando la máquina se despierta del modo de espera, uno debe:

  1. primero desbloquea FileVault en una pantalla de bloqueo EFI; y luego
  2. desbloquea OS X en una ventana de inicio de sesión.

Históricamente, hubo un retraso comprensible entre estos dos pasos, ya que OS X tiene que restaurar desde la imagen del disco (copiando el archivo de hibernate en la RAM) antes de que pueda hacer cualquier otra cosa. Mientras esto ocurría, la pantalla mostraría la ventana de inicio de sesión superpuesta por una cubierta semitransparente junto con una barra de progreso.

Sin embargo, ya no presencio ningún retraso entre los pasos 1 y 2. Parece que OS X puede reanudarse casi tan pronto como se desbloquea FileVault, lo que me sugiere que es posible que el poder no tenga ha sido eliminado de la memoria RAM según lo prometido por hibernatemode 25.

¿Qué está pasando? Tenga, como lo sugieren los registros a continuación, Apple encontró una manera mágica de restaurar gigabytes de RAM desde la imagen del disco de manera increíblemente rápida (y, de ser así, ¿no preferirían todos los usuarios de computadoras portátiles a "dormir seguro", tal vez sin destruir las claves de FileVault, en lugar de manteniendo RAM alimentada y perdiendo batería)? O, más probablemente (?), ¿Mi MacBook ya no entra realmente en "sueño seguro"? Si es lo último, por qué , ¿y cómo puedo solucionarlo?

$ 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

    
pregunta eggyal 05.02.2016 - 09:11

1 respuesta

1

Si tiene Filevault habilitado y no obtiene la pantalla de autenticación EFI (apple.com > HT204156), no está despertando desde el modo de espera. Se le deben solicitar credenciales dos veces: una vez por EFI para Filevault, luego una barra de progreso mientras se monta el volumen de Filevault y se restaura la imagen de hibernación, luego una segunda autenticación del sistema operativo para volver a iniciar sesión.

sudo pmset -f log puede ayudar a confirmar lo que está pasando.

Para lo que vale, también he encontrado que la opción hibernatemode = 25 parece estar rota. Probando en un MacbookAir6,2 / A1466 2013 con 10.11.5 con hibernatemode = 25 (directo al modo de espera, omitir suspensión), la máquina hibernó al cerrar la tapa después de haber habilitado esta opción por primera vez. Sin embargo no se ha vuelto a hacer. (Actualicé a 10.11.5 en el ínterin ...)

La documentación de Apple enlace dice: "Las computadoras portátiles deben estar funcionando con la batería [y] no deben tener ninguna Conexiones externas (como Ethernet, USB, Thunderbolt, tarjeta SD, pantallas, Bluetooth, etc.) "para entrar en modo de espera.

Al prestar atención a las condiciones anteriores, he probado esto varias veces y mi máquina solo entrará en modo de espera (y, por lo tanto, destruirá la clave Filevault si está habilitada la función destroyfvkeyonstandby) cuando la batería esté completamente agotada.

es decir, hibernatemode = 25 no funciona como se documenta en pmset (1).

    
respondido por el Ben L 19.05.2016 - 05:07

Lea otras preguntas en las etiquetas