Hibernando e inicializando em outro sistema operacional: meus sistemas de arquivos serão corrompidos?


52

IMPORTANTE

Se você veio aqui procurando uma resposta para esta pergunta, leia todas as respostas abaixo. Existem alguns depoimentos de pessoas que perderam dados fazendo isso. Se você planeja fazer isso regularmente, eu recomendo que você teste por si mesmo.


Pergunta original

Suponha que eu tenha o Windows e o Linux instalados no mesmo computador. Se eu hibernar o Windows, posso inicializar no Linux sem danificar o sistema de arquivos do Windows quando eu reiniciar o Windows? E o contrário? E se eu hibernar um, inicializar no outro e montar o sistema de arquivos hibernado de leitura / gravação? Somente leitura? Se isso não for seguro, existe alguma maneira de detectar o estado de hibernação do outro sistema operacional e impedir a montagem de seu sistema de arquivos?

Basicamente, até onde posso empurrar isso antes que ele se quebre e quão perigoso é perto da borda? Acho que conheço as respostas para algumas das perguntas acima, mas para outras não faço ideia e, por razões óbvias, não testei isso no meu próprio computador. Se alguém tem testado estes, por favor iluminar o resto de nós. Não estou necessariamente procurando uma resposta específica para todas as perguntas; Aceitarei qualquer resposta que responda a uma porção razoável.


EDITAR

Deixe-me esclarecer que, quando digo "hibernar", quero dizer o processo de gravar o conteúdo da RAM no disco rígido e desligar completamente o computador. Nesse estado, ligar o computador novamente leva você ao BIOS e ao gerenciador de inicialização e, teoricamente, você poderia selecionar outro sistema operacional em um sistema de inicialização múltipla. Enfim, com a pergunta original:


Meus resultados

Ok, depois de todas as garantias de que isso funcionaria, eu testei por mim mesmo. Configurei o Ubuntu para remontar todos os sistemas de arquivos NTFS e unidades externas somente leitura antes de hibernar. Não havia necessidade de uma configuração semelhante do Windows, porque o Windows não lê sistemas de arquivos Linux. Em seguida, tentei hibernar alternadamente um sistema operacional e retomar o outro, várias vezes. Eu até tentei montar o sistema de arquivos do Windows a partir do Ubuntu read-write e criar alguns arquivos. O Windows não reclamou quando eu retomei. Portanto, em conclusão, você pode hibernar mais ou menos livremente em um cenário de inicialização / inicialização do Windows / Linux.

Observe que eu não testei uma situação dupla de co-hibernação Linux / Linux. Se você tiver duas ou mais instalações Linux e hibernar uma delas, poderá corromper o sistema de arquivos montando-o em outro.


11
Gostaria de esclarecer ainda mais que estou procurando alguém que realmente testou essas questões e uma empiricamente semelhante . Mas, na falta disso, fique à vontade para especular. Se ninguém tiver resultados de testes reais, aceitarei a especulação mais plausível depois de um tempo.
21911 Ryan Thompson

Bem, vou tentar testar algumas dessas idéias em breve. Se eu acabar com uma máquina que ainda inicializa, voltarei e aceitarei uma resposta. ;)
Ryan Thompson


@RyanThompson, como você testaria isso de forma confiável? Claro que pode parecer que está funcionando, até que não funcione.
Pacerier

Foi por isso que marquei a resposta "Não faça, você perderá dados" como aceita.
Ryan Thompson

Respostas:


17

Iniciar o Windows em um Linux hibernado não é uma boa ideia. Acabei de perder 20 GiB de dados em uma partição NTFS compartilhada ...

Hibernei o Ubuntu Lucid um dia e no outro liguei meu computador. Algumas atualizações atrapalharam a opção salva no Grub; portanto, em vez de inicializar o Ubuntu novamente como deveria, ele iniciou o Windows 7. Quando voltei com meu café, continuei usando-o sem lembrar que o Ubuntu estava no modo de urso. Eu provavelmente acessei músicas, perfil do Firefox, documentos, downloads e jogos da partição compartilhada.

Na próxima vez que mudei para o Ubuntu, vi a mensagem "acordando da hibernação". Dang. Mas eu esperava que falhasse ao acordar e reinicialize suavemente, como aconteceu na vez anterior em que "tentei" isso (nos meus tempos cármicos). Mas não, ele acordou bem. Legal. Ou não. Eu percebi rapidamente que um diretório na raiz da partição compartilhada estava vazio. Eu acho que os únicos programas que acessaram a partição compartilhada ao reiniciar foram Quod Libet (music player) e Transmission (cliente bittorrent).

Voltei ao Windows, onde não conseguia nem abrir o diretório. Tentando "dir" no arquivo produzido "shell não encontrado". Corrompido. Ainda assim, o espaço livre da partição não aumentou, então meus 20 GiB provavelmente ainda estão lá, a salvo de serem substituídos. Talvez. Mas como chegar até eles?

Um pouco de pesquisa forneceu pouca ajuda e deixou minhas esperanças ainda mais sombrias.

Executei o Scandisk ("Verifique se há erros") sem reparo automático, pois não queria arriscar consertar as coisas destruindo ainda mais meus dados. O resultado não foi muito informativo: "Erros encontrados. Execute com reparo automático". Desconhecido para mim, aparentemente também marcou a partição a ser verificada automaticamente na próxima inicialização. Desliguei e fui embora, e voltei com o EasyRecovery mais tarde.

O computador começou comigo, sem prestar atenção, como de costume, e quando olhei, o chkdsk já estava lançando erros em pleno andamento, o que ocorreu por cerca de dez minutos. Oh bem, aqui não vai nada.

Felizmente acendi uma vela para o Santa Tecla recentemente e, depois que o Windows foi iniciado, meus dados estavam de volta, até onde sei, apesar de alguns arquivos terem sido encontrados.000.

Então, sim, isso teve um final feliz. Você perdoará o suspense dramático, mas isso é um ponto de partida: faça backup de seus dados! E (no meu caso) mantenha o backup atualizado! E, claro, tenha cuidado extra com hibernação e partições compartilhadas ...


5
Vou marcar isso como a resposta aceita apenas para errar por precaução para novos usuários que leem esta pergunta.
Ryan Thompson

As atualizações causadas por um sistema operacional que afetam o outro são bastante normais e, na verdade, não são causadas por problemas de hibernação. O estado de hibernação é tratado como qualquer outro arquivo no sistema de arquivos. Não consigo entender por que essa resposta foi aceita.
Matt H

11
Um diretório inteiro desaparecendo no limbo do FAT não é uma "atualização causada por um sistema operacional", nem pelo menos uma intencional. Experimentei corrupção de dados em uma partição NTFS compartilhada após hibernar o Linux, inicializar o Windows e ativar o Linux, simples assim.
Chema

2
A hibernação de um sistema operacional e a montagem da mesma partição em outra fazem com que dois sistemas operacionais acessem o disco ao mesmo tempo. Eles não sabem das mudanças que o outro fez, resultando em corrupção.
Psusi 29/09/13

2
Parece-me que o problema é o SO deixar a partição em um estado "impuro". Existe uma opção no Windows para não armazenar gravações em cache, talvez isso ajude. Talvez exista uma opção semelhante no Linux. Ou talvez possamos encontrar uma maneira de o sistema "limpar" a partição antes de dormir.
Rolf

23

Eu sempre hiberno o Windows antes de inicializar em qualquer outra coisa, o Windows é lento demais para começar do zero. Mas é perigoso gravar na partição do sistema operacional hibernado, porque algumas das tabelas do FS ainda estão na memória (bem, no arquivo de hibernação, mas não no FS), os aplicativos ainda têm identificadores para alguns arquivos e geralmente o estado do sistema de arquivos é gentil de instável.

Mas você pode montar essa partição somente leitura, dessa forma, permanecerá exatamente igual à anterior à hibernação e o Windows não notará nada.

Quanto a uma sugestão sobre como montá-lo normalmente e ficar longe dos arquivos do sistema, não é uma boa ideia. A realocação de um conteúdo de arquivo pode ocorrer, a MFT pode ser alterada, os atributos de tempo de acesso serão alterados, todas essas coisas podem danificar seriamente um sistema de arquivos. Não é tão perigoso com o FAT, mas é realmente muito perigoso com o NTFS, pois é muito mais complicado e tem muito mais estado na memória.


11
Tem certeza de que a montagem somente leitura está correta? Meu entendimento é que, com os sistemas de arquivos com registro em diário, até mesmo uma montagem somente leitura repetirá o diário e, portanto, causará uma alteração no sistema de arquivos. Por outro lado, o único sistema de arquivos Linux que você pode acessar pelo Windows é o ext2, que não é de registro em diário, como é o FAT, e o Linux provavelmente faz uma montagem de NTFS verdadeira somente leitura, por razões históricas. Então talvez seja seguro. Em qualquer caso, eu gostaria que alguém tivesse resultados concretos de testes.
Ryan Thompson

2
Não, quando o FS é montado como somente leitura, nada foi alterado nele. É por isso que é chamado somente leitura :) Não há necessidade de um diário, pois garante que o estado do FS esteja sempre correto, mas quando o estado não muda, não é necessário, portanto o diário não é usado. E ele trabalha para mim por um bom tempo agora, então não há os resultados de testes :)
vava

11
"o Windows está muito lento para começar do zero" Está falando sério? Devo estar fazendo algo errado, pois quando meu laptop hiberna, ele adiciona cerca de 2 minutos ou mais ao meu tempo de inicialização.
11389 thepaulpage

11
Eu estava falando sobre XP e, sim, é lento como o inferno, considerando quanto tempo leva para iniciar os aplicativos em funcionamento. O Ubuntu 9.04 estava rodando em círculos. O Ubuntu 9.10 é muito mais lento por algum motivo.
vava

desde o Windows 8 ou superior, a inicialização do Windows é muito rápida. Quando eu estava usando o Windows 7, ele carrega lentamente, até que eu consiga que o navegador inicie a rede já está disponível. Atualizei para o Windows 8 e, desde então, quando voltei para casa, ligue o roteador, ligue o laptop e os navegadores. Tenho que esperar um longo tempo para poder acessar a Internet. Desde Windows 10 é ainda mais rápido, pressione o poder depois de alguns segundos você estará pronto
phuclv

9

Eu hiberno regularmente meu Windows XP e inicializo via USB no Ubuntu.
Funciona perfeitamente.

Há uma diferença entre o modo "Em espera" e o modo "Hibernar".
O estado do SO é completamente liberado para o disco e seu hardware está desligado.
Se você ligar a máquina e inicializar em outro sistema operacional, isso não terá impacto no sistema operacional hibernado.
Você pode manter quantos SOs hibernados quiser.

Como exemplo,
você pode ter várias instalações do Ubuntu (por exemplo, uma por unidade flash USB)
e hibernar cada uma, desconectar a unidade e inicializar em outra.
Não há arestas aqui porque não há efeito de empilhamento / encadeamento.
Os pendrives USB hibernados nesses exemplos são todos independentes um do outro
(em uma máquina com ciclo de energia).

Uma pequena desvantagem de uma C:\unidade " " hibernada e inicialização em outro sistema operacional é:
você não conseguiria montar a partição de inicialização hibernada no novo sistema operacional.
A partição está bloqueada com hibernação.
Ele será corrompido se editado nesse estado.


Na verdade, você está errado, em um bom caminho! Tentei hibernar o Windows e inicializar no Ubuntu e montar o sistema de arquivos do Windows, e ele funciona, sem corrupção quando você retira o Windows da hibernação! Isso me surpreendeu.
21411 Ryan Thompson

O IMHO sobre o qual as pessoas falam sobre corrupção provavelmente está relacionado ao driver NTFS do Linux não ser totalmente compatível com todos os recursos do NTFS. É melhor montar somente leitura.
Matt H

Ok, você também gostaria de ler O NTFS no Ubuntu é estável?
nik

O nik está certo - não monte a partição do outro sistema operacional, ela ainda está montada no sistema operacional hibernado. Você não montaria a mesma partição em duas máquinas virtuais (usando acesso direto à partição) em execução ao mesmo tempo, montaria?
precisa

8

Posso confirmar a perda de dados com uma partição NTFS compartilhada. Inicializei duas vezes entre o Lucid Lynx Ubuntu e o Windows 7. Depois de hibernar o Windows 7 e inicializar no Ubuntu, comecei a construir três máquinas virtuais VirtualBox (ao longo de 7 dias) e instalei uma variedade de pacotes de software nessas máquinas. Ao reiniciar o Windows 7, os arquivos desapareceram. Se foi. ntfsundelete e acima de tudo não foram capazes de encontrá-los.

Então, eu fiz uma série de testes para ver se foi isso que causou a perda de dados. Ao desligar o Windows 7, iniciar o Ubuntu, gravar alguns arquivos e reiniciar o Windows 7, os arquivos sempre são mantidos. Ao hibernar o Windows 7, reiniciar no Ubuntu, gravar alguns arquivos, reiniciar no Windows 7, os novos arquivos desaparecem.

Não sei sobre ALTERAÇÕES gravadas em um arquivo, sejam elas retidas ou perdidas, mas é provável que novos arquivos e pastas adicionados a uma partição NTFS compartilhada sejam perdidos nessa situação.


4

Não há nada errado com o que você mencionou. Mesmo se você montou o sistema de arquivos hibernado, o conteúdo da hibernação é salvo em um arquivo grande no disco - desde que você não toque nesse arquivo ou em nenhum arquivo importante do sistema (obviamente), nada acontecerá.

Se você alterar o conteúdo de uma partição de outro sistema operacional após desligar o sistema, a partição original ainda será inicializada sem problemas. É a mesma coisa na hibernação.

Apenas certifique-se de que ao montar / desmontar a partição, você não danifique nenhum arquivo do sistema ou informações do cabeçalho da unidade (por exemplo, MBR, diários de arquivos) - embora este ponto não tenha nada a ver com hibernação e mais apenas um aviso comum de que todos precisamos saber.


3
Experiência experimental: e se você tiver um documento ou arquivo aberto em um aplicativo no Windows (por exemplo, você estiver editando um documento do Word), hibernará e inicializará no outro sistema operacional. Não há mais bloqueio de arquivo ativo, tanto quanto o Linux sabe que ele pode fazer qualquer coisa com segurança com o arquivo; portanto, se você decidir que está arquivado incorretamente e movê-lo para um diretório diferente, o Linux permitirá. Quando você reinicia o Windows, o que o Word faz se o arquivo desaparecer repentinamente? Agora pense no que aconteceria se esse arquivo fosse mais vital que um documento do Word? A montagem somente leitura será muito mais segura.
GAThrawn

11
Essa é a resposta mais precisa. De fato, você pode montar e fazer modificações na unidade Windows C enquanto o Windows está em hibernação, e não vai reclamar. Não testei isso com Linux, mas suspeito que não funcionará.
Ryan Thompson

@ Ryan, você pode, mas não é 100% seguro. O NTFS pode ser quebrado com muita facilidade. Outra questão é que o Linux e o Windows usam o NTFS ligeiramente diferente; portanto, o que está funcionando com o Windows pode não funcionar com o Linux. Essas diferenças podem acabar com a corrupção do FS, especialmente em um estado de borda do FS.
vava

@GAThrawn - O que o Word faz? Tente editar à força um documento do Word no Windows e veja o que acontece. Existem programas para remover bloqueios de arquivos. @vava - Desde que você esteja usando um programa / sistema operacional que esteja em conformidade com o NTFS MFT e o Journal, tudo bem.
Breakthrough

Sei que não é 100% seguro, mas o ponto é que, se eu acidentalmente montar o sistema de arquivos do Windows no Linux após hibernar o Windows, o resultado não será uma corrupção instantânea e irrecuperável. Em outras palavras, eu realmente teria que me esforçar se quisesse me dar um tiro no pé.
Ryan Thompson

4

Acabei de encontrar um problema em uma unidade física compartilhada (FAT32) entre o Windows XP e o Windows 7. Hibernei o Windows XP, inicializei o Windows 7 por alguns dias e voltei ao XP. Agora eu tenho um sistema de arquivos corrompido na unidade compartilhada. O Disk Checker está em execução e parece muito ruim. Arquivos principalmente com links cruzados, mas milhares deles.


3
Em outras palavras ... Se você hibernar para o disco, NÃO use uma unidade compartilhada. (ou, se você usa Linux, desmontar essa unidade antes de hibernar)
Denilson Sá Maia

4

Isso é meio antigo, mas sendo uma questão crítica, outro depoimento vale a pena.

Eu tenho um disco rígido externo NTFS USB que estou usando para dados (sem arquivos relacionados ao SO) em 2 computadores diferentes. Eu costumava obter constantes perdas de dados até isolar o problema. Um dos PCs é bastante antigo e lento (Windows XP), então eu estava usando o hibernate para tempos de reinicialização mais rápidos, desconectando o disco rígido enquanto estava nesse estado e gravando dados com o outro PC (Windows 7). A perda de dados não ocorria sempre, mas foi definitivamente causada por esse cenário. Desde que parei de fazer isso, nunca mais aconteceu.


A coisa mais assustadora para mim: isso parece ser sobre um disco de dados, certo? Portanto, nem mesmo o estado do sistema operacional está hibernado nesse disco USB, mas apenas dados? Nesse caso, eu esperaria que o software escrevesse corretamente as coisas no disco quando receberem o sinal de que o sistema operacional está prestes a hibernar. Mas, aparentemente, não ...
Arjan

11
Exatamente. É um disco de dados. Não há arquivos relacionados ao SO. Desculpe por não enfatizar isso. Na verdade, é por isso que senti que precisava adicionar minha contribuição. Quando eu diagnostiquei isso pela primeira vez, disseram-me que não era bom senso, mas, embora eu seja um profissional de TI, isso não parece óbvio e é um cenário que provavelmente ocorrerá em unidades externas. Acho que o motivo pelo qual não é discutido é que poucas pessoas realmente se esforçam para analisá-lo e diagnosticá-lo. Muito menos relatar.
user3671607

Talvez seja uma pergunta boba: você removeu a unidade com segurança (ou seja, gerenciador de arquivos, clique com o botão direito do mouse no dispositivo e ejeta) antes de hibernar ou apenas puxou a unidade?
gamen

Sim, é um comentário bobo: como você remove com segurança uma unidade enquanto o computador está em hibernação?
user3671607

3

Eu tive problemas com hibernação e inicialização múltipla. Situação: Ubuntu e WinxP Multboot, mas a partição de dados visível para os dois sistemas operacionais. Fiz alguns testes ... indo e voltando ... Então, eu estava editando um arquivo do Word com o Word ... Salvei o arquivo e fechei o Word. Hibernated ... iniciou o Ubuntu ... editou o mesmo arquivo com o OpenOffice ... hibernou.

Reinicializado no WinXP hibernado. O Word NÃO 'viu' as alterações ... Simplesmente parecia um outro arquivo ...

Também fiz esse teste ao contrário ... O arquivo da segunda vez foi corrompido ... Não foi possível abrir o arquivo ou excluir o arquivo Chkdsk 'resolveu' o problema, mas o arquivo foi perdido ... Em outro teste, o Ubuntu não até ver o arquivo editado.

Portanto, ao usar a hibernação e as mesmas partições (NÃO precisa ser a partição em que o sistema operacional inicializa a partir de ...) é muito perigoso ... Os arquivos podem e irão corromper nos meus testes e eu posso repeti-lo ... BTW: Nos meus testes, eu sempre salvei o arquivo e fechei o aplicativo (Word e OpenOffice) antes de entrar em hibernação ... !! Eu pensei que montar a partição era o culpado, mas agora acho que o problema deve ser algo sobre o cache de arquivos ou o que quer que seja ... De qualquer maneira: Seja cuidadoso com a hibernação de vários sistemas operacionais ... !! Atenciosamente, ArnoR


3

Tive a seguinte experiência altamente destrutiva com inicialização dupla do Windows (Vista) e Ubuntu (9, 10, 11). Não sou um usuário técnico, embora tenha uma longa experiência no uso e na configuração do Windows e do DOS. Instalei o Ubuntu através de um CD ao vivo em uma máquina Win Vista. Isso funcionou perfeitamente e eu tive a inicialização dupla em funcionamento em pouco tempo. Visto que não havia avisos anexados à instalação do Ubuntu, eu (ingênuo) presumi que eu poderia hibernar (salvar em disco, não suspender) ambos os sistemas e alternar livremente entre eles. Isso teve os seguintes resultados:

1) Cometi o erro de editar um arquivo de texto no Ubuntu que esqueci que estava aberto no Windows. Posteriormente, o arquivo ficou inacessível para qualquer sistema operacional. Nem sequer pôde ser excluído. O Chkdsk finalmente o excluiu, mas meus dados foram perdidos.

2) Eu também tentei outras duas operações de arquivo do Ubuntu diretamente na partição Win: Gerando um arquivo PDF do OpenOffice e criando um diretório / pasta na área de trabalho do Win. Ambos estavam inacessíveis no Windows (embora pudessem ser vistos no Win explorer). Felizmente, eles poderiam ser excluídos do Ubuntu, embora o chkdsk tivesse que ser executado posteriormente para excluir completamente do Windows.

3) Um arquivo grande do OpenOffice Writer (salvo como * .doc), que foi editado primeiro em um e depois no outro sistema operacional várias vezes (não estava aberto no outro sistema quando eu o editei), subitamente aumentou de tamanho de cerca de 2 MB a 7 MB, tornando quase impossível carregar e salvar. Quando salvei o arquivo como um documento * .odt, seu tamanho foi bastante reduzido, mas os tempos de salvar / carregar não foram mais rápidos. Quando descompactei o arquivo, sua seção "conteúdo" era superior a 22 MB. Quando eu acessei isso com um editor de texto, verificou-se que todas as palavras e espaços do documento eram formatados separadamente, dentro e fora do mesmo estilo! Finalmente resolvi o problema comparando a versão gigante com uma versão anterior do mesmo arquivo, usando a versão antiga como base para a comparação e, em seguida, aceitando todas as alterações e salvando.

4) Nesse ponto, atualizei o Ubuntu 10 para o Ubuntu 11 e descobri que o sistema 11 usava exclusivamente a nova interface do Unity, o que era completamente inaceitável para os meus propósitos. Quando descobri como instalar o Gnome no Ubuntu 11, o Gnome 3 era muito inferior ao Gnome 2. Portanto, decidi desinstalar o Ubuntu completamente e fazer uma nova instalação do Karmic Koala, que usa o Gnome 2 sem nenhum traço do novo Sistema de unidade. Isso acabou sendo complicado, mas depois de encontrar exatamente as mesmas instruções repetidas em vários manuais online, eu procedi. Tudo correu bem até eu executar o EasyBCD 2.1.2 (a partir do Windows), o que me permitiria reiniciar diretamente no Windows após a remoção do booster Grub do Ubuntu. Ao reiniciar, descobri que meu MBR estava fatalmente danificado e a máquina não reconheceu nenhum disco rígido inicializável.

5) Agora eu poderia inicializar o Vista novamente e estava me preparando para reinstalar o Ubuntu, quando descobri que vários arquivos começaram a desaparecer do meu sistema aleatoriamente. Obviamente, o sistema de arquivos ainda estava corrompido. Apenas uma reinstalação completa do Windows resolveu o problema, e agora estou considerando com muito cuidado o que devo fazer para evitar problemas semelhantes no futuro, antes de instalar o Karmic Koala. Eu espero que os meus problemas estão relacionados com a questão hibernação, mas para ter certeza, eu estou considerando a criação de uma "transferência" separado partição NTFS, onde posso colocar os arquivos de um sistema operacional antes de acessá-las a partir do outro. Impraticável, mas deveria ser seguro. Eu espero.


2

Não faça isso (de novo!)

Hibernei meu Vista / NTFS e inicializei o Lucid, trabalhei 3 dias na partição NTFS compartilhada e comecei a ter arquivos e diretórios desaparecendo ou bloqueados com mensagens de erro desagradáveis ​​(dentro do lucid). Quando eu reiniciei o Windows, era uma verdadeira bagunça, os computadores estavam causando estragos, etc. Esperemos que o chkdsk tenha conseguido consertar a maior parte dele e eu pesquisei do found.000 cerca de 98% do que tinha antes.
Portanto, definitivamente não é uma coisa boa a se fazer.
Eu meio que lembro que isso não era possível antes: as partições 'hibernadas' do ntfs não eram montáveis ​​no linux por algum motivo (aparentemente bom). Eu gostaria de voltar a esse comportamento antigo


2

PERIGO! Também posso confirmar que esse é um problema grave para os volumes FAT32 e NTFS e somente quando o Windows (eu tenho o Windows 7) está hibernado. Eu acho que isso está relacionado ao cache e consideramos configurar a unidade para remoção rápida. Isso pode corrigi-lo, mas ainda não o tentei porque realmente quero apenas configurar uma partição dessa maneira que o Windows parece não suportar. Até o meu driver OSX NTFS suporta o controle de cache por partição, mas não o Windows. Além disso, o driver OSX NTFS parece reconhecer que a unidade não deve ser montada. Parece estar vinculado a esse problema. Espero que ajude.


11
Sim, está relacionado ao cache, e não, "otimizar para remoção rápida" não ajudará. Isso faz com que o Windows grave as alterações imediatamente, mas o Windows ainda assumirá (perigosamente) que seu cache de leitura é 100% válido e não verá as alterações feitas por outros sistemas operacionais no disco.
precisa

1

Aqui está a minha experiência. Estou usando um sistema de inicialização dupla com Windows e Kubuntu (11.04). A maioria dos meus arquivos está em uma partição Windows NTFS e eu o uso principalmente no Linux. É montado usando o FUSE.

Isso é o que aconteceu:

  1. Windows hibernado
  2. Na próxima inicialização, inicializei no Linux e o usei por algumas semanas - sem inicializar no Windows
  3. Inicializado de volta para o Windows (porque um teste on-line funcionava apenas no Internet Explorer e nada mais, de alguma forma o ie4linux não era suficiente)

Quando o Windows foi reiniciado, notei que todos os arquivos criados nessas duas semanas estavam ausentes. Reiniciei o Linux novamente para verificar apenas os arquivos ausentes lá. Suponho que o Windows restaurou o sistema de arquivos NTFS para o estado em que ele foi hibernado e o restaurou de volta para esse ponto no tempo.

Eu tentei ferramentas como ntfsundelete e testdisk. Esses arquivos ausentes não estão listados. Além disso, o Linux monta essa unidade no modo RW, mesmo quando o Windows havia hibernado e não desligado. Acho que o Linux avisa ou apenas monta a unidade no modo somente leitura, mas isso não aconteceu aqui.


2
Há uma marcação nos metadados do sistema de arquivos, desmontada corretamente ou não ... Eu também acho que o comportamento correto é o driver NTFS do Linux verificar essa sinalização.
precisa

1

Também posso confirmar que o compartilhamento de uma partição que não é do sistema entre dois sistemas operacionais diferentes no estado de hibernação causa corrupção no sistema de arquivos e perda de dados.

Cenário: Tenho 3 partições NTFS: 1. Windows XP 2. Windows 7 3. Dados (ainda preciso usar o XP para aplicativos antigos que não funcionam bem no modo de compatibilidade).

Exemplo: Inicialize da partição 1 (XP) e execute o Thunderbird, que armazena arquivos no 3. Em seguida, hiberne (o SO despeja a RAM para hibernar o arquivo e desligue o PC). Inicialize a partir da partição 2 (7) e execute o Thunderbird, que armazena arquivos no 3. Aqui o problema começa com os arquivos de acesso etc., às vezes com ou sem chkdsk. De volta à inicialização da partição 1 e os arquivos corrigidos pelo OS_2_7 são novamente corrompidos, o que é pior, alguns arquivos abertos antes da hibernação (por exemplo, Firefox) ser corrompida agora.

Então sim. Hibernar dois O / S, independentemente de usarem partição sistema / não sistema, danificará os dados. Por quê ? Suponho que a causa raiz seja o arquivo LOCK e MFT. Depois de acordar da hibernação, o O / S não atualiza a MFT, portanto, ainda assim, suponha que você encontre arquivos em setores antigos, para que qualquer arquivo que alterou seu tamanho / local seja corrompido.


Bem, quais arquivos foram corrompidos? Apenas aqueles pertencentes ao Thunderbird ou vários arquivos não relacionados? Pode fazer (alguns) sentido que, se o Thunderbird for executado no mesmo local na partição 3, haverá dois conjuntos de dados diferentes em dois sistemas diferentes. Um tentará forçar o outro.
Doktoro Reichard

0

Eu costumava fazer exatamente isso. Eu nunca montei a unidade do sistema da máquina de hibernação para evitar acidentes e cada sistema operacional tem sua própria partição de troca separada. No entanto, eu tinha uma partição de dados dedicada, que usaria para transferir dados entre os dois sistemas operacionais em hibernação. Eu até coloquei meu perfil Firefox e Thunderbird lá, então não preciso manter dois perfis separados. Apenas certifique-se de fechar o Firefox em uma máquina antes de hibernar.

Não me lembro de ter tido nenhum problema com a instalação e a usei por um bom tempo também.


Que FS você usa na partição compartilhada? Estou começando a pensar que talvez o NTFS tenha algo a ver com isso, todo mundo reclama que sua partição NTFS compartilhada está sendo corrompida.
Rolf

@Rolf: NTFS com o driver NTFS-3G no Linux. Além disso, essa era apenas uma partição de dados, exceto para aplicativos como Firefox / Thunderbird, que eu sei que têm avisos de desligamento impuro e que eu sempre fechava antes de mudar de sistema operacional.
Lie Ryan

Talvez o FAT faria? O NTFS é melhor, mas, neste caso, não parece funcionar bem, para dizer o mínimo. Além disso, se conseguirmos que o sistema libere todo o buffer em disco antes da hibernação, talvez isso ajude. Mas acho que seria melhor experimentar diferentes sistemas de arquivos (EXT ou outros também podem ser opções) para a partição compartilhada. Se alguém estiver disposto a fazer isso :) Talvez em uma máquina virtual? BTW, encontrei o mesmo problema usando uma VM, salvando o estado e usando a mesma VM (mesmo arquivo), mas em outro sistema operacional. O host da VM não estava ciente do estado salvo.
Rolf

11
Então, o que você está dizendo é que, se lembrarmos de fechar todos os identificadores de arquivo da partição compartilhada antes da hibernação, tudo ficará bem.
Rolf

0

A resposta é que, com o NTFS, aparentemente, sim (veja outras respostas). Você pode tentar com sistemas de arquivos mais antigos e simples, como o FAT. Mas isso seria uma facada no escuro.

Eu só quero acrescentar que o problema pode ser reproduzido com máquinas virtuais. Eu uso o VirtualBox em uma máquina de inicialização dupla. Instalei o software host do VirtualBox nas partições Windows e Linux e salve os arquivos de imagem em uma partição NTFS compartilhada. O objetivo era poder usar a mesma VM no Windows e Linux.

Por hábito, usei o comando de estado "salvar máquina" no VirtualBox ao desligar a VM. Usei esse comando (que salva o estado da RAM da VM em algum lugar), reiniciei meu laptop no outro sistema operacional e usei a mesma VM novamente. Não havia opção de restauração no VirtualBox, portanto, aparentemente, o VirtualBox não está ciente do estado salvo de uma VM se o estado foi salvo usando outra instalação do VirtualBox. Eu li que o VMware pode ser mais inteligente sobre isso, mas ainda não tentei.

Eventualmente, todas as minhas VMs foram corrompidas. Consegui consertar a maior parte dos danos usando o fsck.

Isso é apenas para dizer que você não precisa gastar horas particionando e instalando um sistema operacional para reproduzir esse problema.

Minha solução? Hibernação desativada no Windows. Está desabilitado por padrão no Ubuntu. Além disso, nunca use salvar o estado da máquina para uma VM se planejar iniciar a VM em um contexto diferente (SO diferente, instalação diferente do host, etc.).

Até que alguém crie um sistema de arquivos (ou SO, ou o que seja) que não esteja vulnerável a esse problema.

Além disso, feche todas as alças abertas na partição compartilhada (e presumivelmente liberando para o disco) antes de hibernar (ou, suponho, desmontar a partição - deve haver uma maneira de fazer isso também no Windows) se tiver sido relatado para evitar corrupção (consulte Mentira a resposta de Ryan). Eu preferiria estar seguro e não usar o hibernate nesta situação.


O estado de salvamento da Caixa Virtual é totalmente diferente da hibernação. Salvar estado é um recurso da máquina virtual, não um recurso do SO. O sistema operacional é totalmente inconsciente quando um estado de salvamento está acontecendo. O estado de salvamento não é armazenado na imagem do disco virtual, mas em outro arquivo. Na verdade, o Virtual Box pode restaurar o estado salvo em uma máquina diferente, chamada teleporte.
Lie Ryan

-3

Só não acho que isso seja possível.

Quando você hiberna, o computador é 'bloqueado' (por falta de um termo melhor) para esse sistema operacional. Você não está hibernando o sistema operacional, está hibernando o computador inteiro. Quando sair da hibernação, você não passa pelo BIOS e pelo POST novamente.


Não estou falando de suspender para a RAM, quero dizer hibernação para o disco. Vou editar a pergunta para ser mais específico.
21911 Ryan Thompson

7
Parece errado para mim. Quando você está hibernando, o computador é desligado. Quando você o inicia novamente, ele passa pelo BIOS e pelo POST. Somente quando o carregador do SO vê que está hibernando, ele carrega o arquivo que contém o estado da memória (hiberfil.sys para Windows) e restaura o SO.
11009 Snark

Não, isso causará problemas com a consistência do sistema de arquivos. Veja meu post acima.
Nathan Osman

@ George: Haverá problemas com a consistência do sistema de arquivos, se você compartilhar algum sistema de arquivos entre os dois sistemas operacionais. Mas você certamente pode executar um sistema operacional diferente que tenha seu próprio conjunto de partições, ao contrário desta resposta.
Ben Voigt

Se ele não passasse pelo BIOS e pelo POST, não seria possível escolher o sistema operacional na inicialização e fazer mensagens como as descritas aqui. O Hibernate não é suspenso para ram.
Rolf
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.