55 votes

Hibernation et démarrage dans un autre système d'exploitation : mes systèmes de fichiers seront-ils corrompus ?

IMPORTANT

Si vous êtes venu ici pour trouver une réponse à cette question, lisez ce qui suit tous les réponses ci-dessous. Il existe des témoignages de personnes qui ont perdu des données en procédant ainsi. Si vous envisagez de le faire régulièrement, je vous recommande vivement de le tester par vous-même.


Question originale

Supposons que j'ai Windows et Linux installés sur le même ordinateur. Si je mets Windows en hibernation, puis-je démarrer sur Linux sans corrompre le système de fichiers de Windows lorsque je reprends Windows ? Et dans l'autre sens ? Que se passe-t-il si j'en hiberne un, que je démarre sur l'autre et que je monte le système de fichiers hiberné en lecture/écriture ? En lecture seule ? Si cela n'est pas sûr, existe-t-il un moyen de détecter l'état d'hibernation de l'autre système d'exploitation et d'empêcher le montage de son système de fichiers ?

En gros, jusqu'où puis-je le pousser avant qu'il ne se casse, et quel est le danger près du bord ? Je pense connaître les réponses à certaines des questions ci-dessus, mais pour d'autres, je n'en ai aucune idée, et pour des raisons évidentes, je n'ai pas testé cela sur mon propre ordinateur. Si quelqu'un a testé ces derniers, s'il vous plaît éclairez le reste d'entre nous. Je ne cherche pas nécessairement une réponse spécifique à chaque question ; j'accepterai toute réponse qui répond à une partie raisonnable.


EDITAR

Permettez-moi de préciser que lorsque je parle d'"hibernation", j'entends le processus consistant à écrire le contenu de la RAM sur le disque dur et à éteindre complètement l'ordinateur. Dans cet état, le fait de rallumer l'ordinateur vous fait repasser par le BIOS et le chargeur de démarrage, et vous pouvez théoriquement sélectionner un autre système d'exploitation sur un système multi-boot. Bref, revenons à la question initiale :


Mes résultats

Ok, après que tout le monde m'ait assuré que ça allait marcher, je l'ai testé moi-même. J'ai configuré Ubuntu pour remonter tous les systèmes de fichiers ntfs et les disques externes en lecture seule avant l'hibernation. Il n'y avait pas besoin d'une configuration similaire pour Windows, car Windows ne lit pas les systèmes de fichiers Linux. Ensuite, j'ai essayé d'hiberner alternativement un système d'exploitation et de reprendre l'autre, en faisant des allers-retours plusieurs fois. J'ai même essayé de monter le système de fichiers Windows depuis Ubuntu en lecture-écriture, et de créer quelques fichiers. Windows ne s'est pas plaint lorsque j'ai repris. Donc, en conclusion, vous pouvez plus ou moins librement hiberner dans un scénario de double démarrage Windows/Linux.

Notez que je n'ai pas testé une situation de double co-hibernation Linux/Linux. Si vous avez deux ou plusieurs installations Linux et que vous hibernez l'une d'entre elles, vous pourriez être en mesure de corrompre le système de fichiers en le montant à partir d'une autre.

25voto

vava Points 5738

Je mets toujours Windows en hibernation avant de démarrer quoi que ce soit d'autre, Windows est tout simplement trop lent pour démarrer à partir de zéro. Mais il est dangereux de écrire à la partition du système d'exploitation en hibernation, parce que certaines des tables du système de fichiers sont encore en mémoire (enfin, dans le fichier d'hibernation mais pas dans le système de fichiers), les applications ont encore des handles sur certains fichiers et l'état général du système de fichiers est plutôt instable.

Mais vous pouvez monter cette partition en lecture seule, de cette façon elle restera exactement la même qu'avant l'hibernation et Windows ne remarquera rien.

Quant à la suggestion de le monter normalement et de ne pas toucher aux fichiers système, ce n'est pas une bonne idée. La relocalisation du contenu d'un fichier peut se produire, le MFT peut être modifié, les attributs de temps d'accès seront modifiés, toutes ces choses peuvent sérieusement corrompre un système de fichiers. Ce n'est pas si dangereux avec FAT mais c'est vraiment très dangereux avec NTFS, car il est beaucoup plus compliqué et possède beaucoup plus d'états dans la mémoire.

21voto

Pat James Points 169

Démarrer Windows sur un Linux en hibernation n'est pas une bonne idée. Je viens de perdre 20 Go de données dans une partition NTFS partagée...

J'ai mis Ubuntu Lucid en hibernation un jour, et le lendemain j'ai allumé mon ordinateur. Une mise à jour a gâché l'option de sauvegarde dans Grub, donc au lieu de redémarrer Ubuntu comme il se doit, il a démarré Windows 7. Quand je suis revenu avec mon café, j'ai continué à l'utiliser sans me souvenir qu'Ubuntu était en mode ours. J'ai probablement accédé à la musique, au profil Firefox, aux documents, aux téléchargements et aux jeux à partir de la partition partagée.

La fois suivante où je suis passé à Ubuntu, j'ai vu le message "réveil de l'hibernation". Zut. Mais je m'attendais à ce qu'il échoue au réveil, et qu'il redémarre en douceur à la place, comme cela s'est produit la fois précédente où j'ai "essayé" ceci (dans mon temps karmique). Mais non, il s'est bien réveillé. Cool. Ou pas. J'ai rapidement réalisé qu'un répertoire à la racine de la partition partagée était maintenant vide. Je pense que les seuls programmes accédant à la partition partagée lors de la reprise étaient Quod Libet (lecteur de musique) et Transmission (client bittorrent).

Je suis retourné à Windows, où je ne pouvais même pas ouvrir le répertoire. Essayer de le "dir" dans Shell produisait "file not found". Corrompu. Pourtant, l'espace libre de la partition n'avait pas augmenté, donc mes 20 GiB étaient probablement toujours là, à l'abri d'être écrasés. Peut-être. Mais comment les atteindre ?

Une petite recherche n'a pas été d'une grande aide, et a rendu mes espoirs encore plus sombres.

J'ai lancé Scandisk ("Check for Errors") sans réparation automatique, car je ne voulais pas risquer qu'il répare les choses en détruisant davantage mes données. Le résultat n'était pas très informatif : "Erreurs trouvées. Exécuter avec réparation automatique". Sans que je le sache, il semble qu'il ait également marqué la partition pour qu'elle soit automatiquement vérifiée au prochain démarrage. J'ai éteint et suis parti, et je suis revenu avec EasyRecovery plus tard.

L'ordinateur a démarré sans que je fasse attention, comme d'habitude, et quand j'ai regardé, chkdsk était déjà en train de cracher des erreurs à plein régime, ce qu'il a fait pendant une dizaine de minutes. Oh et bien, voilà, rien ne va plus.

Heureusement, j'ai allumé une bougie pour Santa Tecla récemment, et après le démarrage de Windows, mes données étaient de retour, toutes pour autant que je puisse dire, bien que certains fichiers se soient retrouvés dans found.000.

Donc oui, il y a eu une fin heureuse. Vous pardonnerez le suspense dramatique, mais c'est pour faire passer un message : sauvegardez vos données ! Et (dans mon cas) gardez la sauvegarde à jour ! Et bien sûr, faites très attention à l'hibernation et aux partitions partagées...

9voto

Mark Points 251

Je mets régulièrement en hibernation mon Windows XP et je démarre par USB dans Ubuntu.
Fonctionne parfaitement.

Il y a une différence entre le mode "veille" et le mode "veille prolongée".
L'état du système d'exploitation est complètement effacé sur le disque et votre matériel est mis hors tension.
Si vous mettez la machine sous tension et démarrez dans un autre système d'exploitation, cela n'a aucun impact sur le système d'exploitation en hibernation.
Vous pouvez garder autant de systèmes d'exploitation en hibernation que vous le souhaitez.

A titre d'exemple,
Vous pouvez avoir plusieurs installations Ubuntu (par exemple, une par clé USB),
Et, hibernez chacun, débranchez le disque, et démarrez sur un autre.
Il n'y a pas d'avantage ici car il n'y a pas d'effet d'empilement/de chaînage.
Les clés USB hibernées dans cet exemple sont toutes indépendantes les unes des autres.
(sur une machine sous tension).

Un petit inconvénient de l'hibernation de la " C:\ "et de démarrer dans un autre système d'exploitation,
vous ne serez pas en mesure de monter la partition de démarrage en hibernation dans le nouveau système d'exploitation.
La partition es verrouillé avec l'hibernation.
Il sera corrompu s'il est édité dans cet état.

9voto

Tyrvian Points 959

Je peux confirmer le problème de perte de données avec une partition NTFS partagée. Je fais un double démarrage entre Lucid Lynx Ubuntu et Windows 7. Après avoir mis Windows 7 en hibernation et démarré sous Ubuntu, j'ai créé trois machines virtuelles VirtualBox (sur une période de 7 jours) et installé divers logiciels dans ces machines. Au redémarrage de Windows 7, les fichiers ont disparu. Disparus. ntfsundelete et autres n'ont pas été en mesure de les trouver.

J'ai donc effectué une série de tests pour vérifier si c'était bien la cause de la perte de données. Lors de l'arrêt de Windows 7, du démarrage d'Ubuntu, de l'écriture de quelques fichiers, du redémarrage dans Windows 7, les fichiers sont toujours conservés. Lors de l'hibernation de Windows 7, du redémarrage dans Ubuntu, de l'écriture de quelques fichiers, du redémarrage dans Windows 7, les nouveaux fichiers ont disparu.

Je ne sais pas si les MODIFICATIONS écrites dans un fichier sont conservées ou perdues, mais les nouveaux fichiers et dossiers ajoutés à une partition NTFS partagée seront très probablement perdus dans cette situation.

4voto

Breakthrough Points 33693

Il n'y a rien de mal dans ce que vous avez mentionné. Même si vous avez monté le système de fichiers en hibernation, le contenu de l'hibernation est sauvegardé dans un grand fichier sur le disque - tant que vous ne touchez pas à ce fichier, ni aux fichiers système importants (évidemment), rien ne se passera.

Si vous modifiez le contenu d'une partition d'un autre système d'exploitation après avoir éteint le système, la partition d'origine démarrera toujours sans problème. C'est la même chose en hibernation.

Assurez-vous simplement que lorsque vous montez/démontez la partition, vous n'endommagez pas les fichiers système ou les informations d'en-tête du lecteur (par exemple MBR, journaux de fichiers) - bien que ce point n'ait rien à voir avec l'hibernation, et qu'il s'agisse plutôt d'un avertissement commun que nous devons tous connaître.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X