¿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 del sueño en un SSD SATA-3 rápido.
Corrección-de-corrupción-de-hibernación: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 de 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 cómo funcionan las particiones en un disco. El kernel de OS X hibernado podría tener referencias a bloques en el disco en los que continuará escribiendo cuando se vuelva a activar. ¿Los bloques de disco como estos están contenidos dentro de una partición o se asignan a una partición después de haber sido escritos? ¿Es diferente en HDD y SSD? ¿Esto afecta la corrección de corrupción de hibernación anterior?
Bueno sigamos adelante:
Windows 7 ya tiene una opción "Hibernar" que le permite reiniciar desde 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.
Antes de OS X 10.7
sudo pmset -a modo de hibernación 2
OS X 10.7
sudo pmset -a modo de hibernación 25
Esto hace que tu Mac entre en hibernación cuando la pones en suspensión. Puedes ponerlo a dormir con:
sudo apagado -s ahora
Bien, hasta ahora todo bien. Así podremos poner en hibernación tanto Windows 7 como OS X Lion a nuestro antojo. ¡Pero espera! Hay más problemas por delante.
Cuando pones OS X en hibernación, se reiniciará automáticamente en OS X cuando vuelvas a encender tu Mac. Esto nos hace imposible usarlo para "cambiar en caliente" entre particiones.
Posibles soluciones:
Si instalasrepararsesin 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 del todo, sino que aparece una pantalla negra y tienes que apagar tu Mac por completo. ¡Pero hey! Al menos interrumpe el arranque automático de OS X, ¿verdad? Quizás se pueda modificar más a partir de ahí.
Como se mencionó anteriormente en OS X, el menú de inicio rEFIt en realidad aparece después del apagado y encendido de la hibernación. Esto le permite, por ejemplo, iniciar su partición Boot Camp de Windows 7. Sin embargo, aquí también hay problemas. Aparentemente, la partición de OS X pierde su indicador 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 su lugar, realizará un inicio limpio.¿Por qué es esto?
¿OS X busca la existencia de una imagen de suspensión para determinar si se debe despertar de la hibernación o realizar un inicio limpio o tiene algún tipo de variable/indicador del sistema establecido?
Resumen
Cuando Win 7 entra en hibernación, se apaga por completo y luego puede iniciar OS X al iniciar. Sin embargo, en OS X, la hibernación te obliga a reactivarte en OS X. ¿Puedes piratear esto para que puedas seleccionar la partición de inicio después de que OS X hiberne y aún puedas regresar más tarde a OS X y reactivarlo desde su hibernación? ?
¡Veamos qué se nos ocurre colectivamente!
Respuesta1
No es posible hacer esto de la manera que estás pensando. El problema radica en la estrecha integración del firmware de Apple y OS X. OS X y el firmware trabajan juntos para determinar el estado de suspensión de la computadora.
Cuando Windows hiberna, vuelca el contenido de la RAM en C:\Hiberfil.sys y establece una marca en el registro que indica 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á hibernado. Después de realizar una verificación básica de integridad, carga hiberfil.sys nuevamente en la memoria. Lo importante aquí es que todo esto está contenido dentro del sistema de archivos. Es por eso que puede iniciar libremente en OS X, luego iniciar nuevamente en Windows y continuará reanudándose desde el archivo de hibernación.
No ocurre lo mismo con OS X. Cuando OS X hiberna, vuelca el contenido de la RAM en /var/vm/sleepimage de la misma manera que lo hace Windows. Pero guarda la bandera de hibernación.en el cochecito, no el sistema de archivos (la configuración se llama IORegistryCurrentSleepMode si está interesado). Cuando vuelves a encender una Mac, los valores en PRAM se leen incluso antes de intentar iniciar el sistema operativo. Si la bandera indica que el sistema está hibernado, lo primero que hace es devolverlo a su estado normal. Luego, el firmware inicia inmediatamente el sistema e ignora la preferencia del disco de inicio y cualquier intento de Optioninicio. Ni siquiera escuchas un timbre de inicio. En una Mac, el firmware contiene toda la lógica necesaria para inspeccionar el sistema de archivos e iniciar el sistema operativo. No necesita código de arranque como lo hace Windows.
Cuando agregas rEFIt a 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. rEFNo hace esto correctamente con Lion y versiones posteriores. Pero independientemente de si se trata de una versión anterior de OS X o una más nueva, el firmware ya ha cambiado el bit de hibernación antes de que rEFIt se cargue. Esta es la razón por la que ya no es posible reanudar OS X desde la hibernación después del primer encendido.