¿Es posible utilizar las verdaderas funcionalidades del sistema de hibernación de Win 7 y OS X para crear una especie de cambio instantáneo entre los dos? Imagínese esto al leer / escribir las imágenes de suspensión en un SSD SATA-3 rápido.
Corrección de corrupción de Hibernate: si esto es posible, asegúrese de que sus diferentes particiones no estén habilitadas para escritura entre sí. (por ejemplo, haga que Boot Camp Windows 7 no pueda escribir en la partición OS X y viceversa). Esta medida de seguridad debería hacer imposible que sus diferentes sistemas se corrompan entre sí cuando uno está suspendido en hibernación.
Editar: me di cuenta de que no estoy seguro de que así es como funcionan las particiones en un disco. El núcleo de OS X hibernado podría tener referencias a bloques en el disco en los que continuará escribiendo cuando se despierte nuevamente. ¿Están los bloques de disco como estos contenidos dentro de una partición o están asignados a una partición después de haber sido escritos? ¿Es diferente en HDD y SSD? ¿Afecta esto la corrección de corrupción de hibernación anterior?
Ok, sigamos adelante:
Windows 7 ya tiene una opción "Hibernate" que le permite reiniciar a su partición OS X, pero OS X no ofrece exactamente lo mismo.
Con OS X es posible hibernar cambiando la variable del sistema hibernatemode.
Pre OS X 10.7
sudo pmset -a hibernatemode 2
OS X 10.7
sudo pmset -a hibernatemode 25
Esto hace que su Mac entre en hibernación cuando la pone en suspensión. Puedes ponerlo a dormir con:
sudo shutdown -s now
Ok, hasta ahora todo bien. Entonces podemos poner tanto Windows 7 como OS X Lion en hibernación a voluntad. ¡Pero espera! Hay más problemas por delante.
Cuando ponga OS X en hibernación, se reiniciará automáticamente en OS X cuando vuelva a encender su Mac. Esto hace que sea imposible para nosotros usarlo para "hotswitching" entre particiones.
Posibles soluciones:
si instala rEFIt sin rEFItBlesser, obtendrá el menú de inicio de rEFIt después de la hibernación de OS X. Sin embargo, en OS X 10.7 Lion, esto no funciona completamente, en su lugar obtienes una pantalla en negro y tienes que apagar tu Mac por completo. ¡Pero hey! Al menos interrumpe el arranque automático de OS X, ¿verdad? Tal vez se pueda ajustar más desde allí.
Como se mencionó anteriormente en OS X: s el menú de inicio de rEFIt en realidad aparece después del apagado de hibernación + encendido. Esto le permite, por ejemplo, iniciar su partición Boot Camp Windows 7. Sin embargo, aquí también hay problemas. Aparentemente, la partición OS X pierde su bandera de hibernación si sigue este método, lo que significa que la próxima vez que inicie OS X, no volverá de su estado de hibernación. En cambio, hará un inicio limpio. ¿Por qué es esto?
¿OS X busca la existencia de una imagen inactiva para determinar si se debe despertar de la hibernación o hacer un inicio limpio o tiene algún tipo de variable de sistema / indicador establecido?
Resumen
Cuando Win 7 entra en hibernación, se apaga por completo y luego puede iniciar en OS X al inicio. Sin embargo, en OS X, hibernate lo obliga a despertarse en OS X. ¿Puede hackear esto para que pueda seleccionar la partición de arranque después de que OS X hiberne y aún pueda regresar más tarde a OS X y despertarlo desde su hibernación? ?
¡Veamos qué podemos hacer colectivamente!
Respuestas:
No es posible hacer esto de la manera que piensas. El problema radica en la estrecha integración del firmware de Apple y OS X. OS X y el firmware trabajan entre sí para determinar el estado de suspensión de la computadora.
Cuando Windows hiberna, volca el contenido de RAM en C: \ Hiberfil.sys y establece un indicador en el registro de que la máquina está hibernada. Cuando inicia por primera vez una máquina con Windows, el código del sector de inicio carga el archivo BCD, que carga esa parte del registro muy temprano en el proceso de inicio y ve que el sistema está en hibernación. Después de realizar una comprobación de cordura básica, carga hiberfil.sys nuevamente en la memoria. Lo importante aquí es que todo esto está contenido en el sistema de archivos. Es por eso que puede iniciar libremente en OS X, luego reiniciar nuevamente en Windows y continuará reanudando desde el archivo de hibernación.
Lo mismo no es cierto para OS X. Cuando OS X hiberna, volca el contenido de RAM a / var / vm / sleepimage de la misma manera que lo hace Windows. Pero guarda la bandera de hibernación en la PRAM , no en el sistema de archivos (la configuración se llama IORegistryCurrentSleepMode si está interesado). Cuando vuelve a encender una Mac, los valores en PRAM se leen incluso antes de que se intente iniciar el sistema operativo. Si la bandera indica que el sistema está hibernado, lo primero que hace es voltearlo a un estado normal. El firmware inicia inmediatamente el sistema e ignora la preferencia Disco de inicio y cualquier intento de Option+ inicio. Ni siquiera obtienes una campanilla de inicio. En una Mac, el firmware contiene toda la lógica necesaria para inspeccionar el sistema de archivos y arrancar el sistema operativo. No necesita código de arranque como Windows.
Cuando arrojas rEFIt en la mezcla, se inserta en el proceso. Reemplaza el /System/Library/CoreServices/boot.efi normal (que es el cargador de arranque de OS X), con su propio archivo de cargador de arranque. Aquí es donde las cosas se ponen confusas para mí porque todo esto es propiedad de Apple, pero la conclusión es que cuando el firmware arranca OS X, pasa todos los argumentos necesarios para cargar / var / vm / sleepimage en lugar del kernel normal de Darwin. rEF No hace esto correctamente con Lion y versiones posteriores. Pero independientemente de si se trata de una versión anterior de OS X o una nueva, el firmware ya ha cambiado el bit de hibernación antes de que incluso se cargue. Esta es la razón por la cual ya no es posible reanudar OS X desde hibernación después del primer encendido.
fuente
nvram
herramienta de OS X ), creo que sería posible. Puede configurarlo como una tarea programada para que se active cuando la estación de trabajo duerme. Pero no sé si existe tal programa. Si te encuentras con uno, me encantaría saberlo.