É possível usar as verdadeiras funcionalidades de sistema de hibernação do Win 7 e OS X para criar uma espécie de alternância instantânea entre os dois? Imagine isso ao ler / gravar as imagens do sono em um SSD SATA-3 rápido.
Correção de corrupção de hibernação: se isso for possível, verifique se as diferentes partições não estão ativadas para gravação uma da outra. (por exemplo, faça com que o Boot Camp Windows 7 não possa gravar na partição do OS X e vice-versa). Essa medida de segurança deve impossibilitar que seus diferentes sistemas corrompam um ao outro quando um deles é suspenso na hibernação.
Edit: eu percebi que não tenho certeza de que é assim que as partições funcionam em um disco. O kernel do OS X hibernado pode ter referências a blocos no disco nos quais continuará gravando quando for acordado novamente. Os blocos de disco como estes estão contidos em uma partição ou são atribuídos a uma partição após serem gravados? É diferente no HDD e SSD? Isso afeta a correção de hibernação acima?
Ok, vamos seguir em frente:
O Windows 7 já possui uma opção "Hibernate", que permite inicializar novamente na partição do OS X, mas o OS X não oferece exatamente o mesmo.
Com o OS X, é possível hibernar alterando a variável de sistema hibernatemode.
Pré OS X 10.7
sudo pmset - um hibernatemode 2
OS X 10.7
sudo pmset -a hibernatemode 25
Isso faz com que o seu Mac entre em hibernação quando você o adormece. Você pode colocá-lo para dormir com:
sudo shutdown -s now
Ok, até agora tudo bem. Assim, podemos colocar o Windows 7 e o OS X Lion em hibernação à vontade. Mas espere! Há mais problemas à frente.
Quando você coloca o OS X em hibernação, ele reinicia automaticamente no OS X quando você liga o Mac novamente. Isso impossibilita que possamos usá-lo para "hotswitching" entre partições.
Correções possíveis:
Se você instalar rEFIt sem rEFItBlesser você obterá o menu de inicialização rEFIt após OS X hibernação. No entanto, no OS X 10.7 Lion, isso não funciona totalmente. Em vez disso, você obtém uma tela preta e precisa desligar o Mac com força. Mas ei! Pelo menos interrompe a inicialização automática do OS X, certo? Talvez possa ser ajustado mais a partir daí.
Como mencionado no OS X: s anterior, o menu de inicialização do rEFIt realmente aparece após o desligamento da hibernação + a inicialização. Isso permite, por exemplo, inicializar sua partição do Boot Camp Windows 7. Existem problemas aqui também. Aparentemente, a partição do OS X perde seu sinalizador de hibernação se você seguir esse método, o que significa que na próxima vez que você inicializar no OS X, ela não retornará do estado de hibernação. Em vez disso, fará uma inicialização limpa. Por que é isso?
O OS X procura a existência de uma imagem de suspensão para determinar se deseja acordar da hibernação ou para iniciar de forma limpa ou possui algum tipo de variável / sinalizador do sistema definido?
Sumário
Quando o Win 7 entra em hibernação, ele desliga completamente e você pode inicializar no OS X na inicialização. No entanto, no OS X, a hibernação obriga a ativar o OS X. Você pode invadir isso para poder selecionar a partição de inicialização após a hibernação do OS X e ainda poder retornar posteriormente ao OS X e despertá-la da hibernação? ?
Vamos ver o que coletivamente podemos criar!
Respostas:
Não é possível fazer isso da maneira que você está pensando. O problema está na forte integração do firmware da Apple e do OS X. O OS X e o firmware trabalham juntos para determinar o estado de suspensão do computador.
Quando o Windows hiberna, ele despeja o conteúdo da RAM em C: \ Hiberfil.sys e define um sinalizador no registro de que a máquina está hibernada. Quando você inicializa uma máquina Windows, o código do setor de inicialização carrega o arquivo BCD, que carrega essa parte do registro muito cedo no processo de inicialização e verifica que o sistema está hibernado. Depois de executar uma verificação básica de integridade, ele carrega o hiberfil.sys de volta na memória. O importante aqui é que tudo isso está contido no sistema de arquivos. É por isso que você pode inicializar livremente no OS X e, em seguida, reiniciar novamente no Windows, e ele continuará sendo reiniciado a partir do arquivo de hibernação.
O mesmo não ocorre no OS X. Quando o OS X hiberna, ele despeja o conteúdo da RAM em / var / vm / sleepimage da mesma maneira que o Windows. Mas ele salva o sinalizador de hibernação na PRAM , não no sistema de arquivos (a configuração é chamada IORegistryCurrentSleepMode, se você estiver interessado). Quando você liga o Mac novamente, os valores no PRAM são lidos antes mesmo de ser feita uma tentativa de inicialização no sistema operacional. Se o sinalizador indicar que o sistema está em hibernação, a primeira coisa que faz é voltar ao status normal. O firmware inicializa imediatamente o sistema e ignora a preferência Disco de inicialização e qualquer tentativa de Optioninicialização. Você nem recebe um sinal sonoro de inicialização. Em um Mac, o firmware contém toda a lógica necessária para inspecionar o sistema de arquivos e inicializar o sistema operacional. Ele não precisa de código de inicialização como o Windows.
Quando você joga o rEFIt na mistura, ele se insere no processo. Ele substitui o /System/Library/CoreServices/boot.efi (que é o carregador de inicialização do OS X) por seu próprio arquivo do carregador de inicialização. É aqui que as coisas ficam confusas para mim porque tudo isso é propriedade da Apple, mas o ponto principal é que, quando o firmware está inicializando no OS X, ele passa todos os argumentos necessários para carregar / var / vm / sleepimage em vez do kernel normal do Darwin. O rEFIt não faz isso corretamente com o Lion e posterior. Mas, independentemente de se tratar de uma versão mais antiga do OS X ou de uma versão mais recente, o firmware já mudou o bit de hibernação antes que o rEFIt seja carregado. É por isso que não é mais possível reiniciar o OS X a partir do hibernate após a primeira inicialização.
fonte
nvram
ferramenta do OS X ), acho que seria possível. Você pode configurá-lo como uma tarefa agendada para disparar quando a estação de trabalho dorme. Mas não sei se esse programa existe. Se você se deparar com um, eu adoraria ouvir sobre isso.