Journal Dual-boot avec Windows 8 et pertes de données

Posté par  .
Étiquettes :
47
8
nov.
2012

Bonjour,

Cela intéressera surtout les lecteurs qui ont un dual-boot avec Windows 8. En effet, la fonctionnalité de redémarrage rapide ne démonte pas entièrement la partition NTFS, ce qui fait que si vous écrivez dessus sous Linux avec ntfs-3g puis que vous redémarrez sous Windows, ce dernier risque d'ignorer les écritures que vous avez faites entraînant ainsi un risque de pertes de données.

De mon côté, j'ai remarqué le problème lorsque j'ai vu windows lancer fréquemment des chkdsk au redémarrage (ou en pleine utilisation du système, auquel cas le volume n'est accessible qu'en lecture seule) ; j'ai initialement pensé que la cause était le montage d'un fichier (sur partition NTFS) hébergeant un système de fichier ext2 crypté avec la possibilité que systemd ne démonte pas proprement tout ça (je serai curieux de savoir si systemd démonte bien tout dans l'ordre), mais même sans mettre en place tout ça j'ai rencontré le problème.

Le site de ntfs-3g parle de ce problème :
"When Windows 8 is restarted using its fast restarting feature, part of the metadata of all mounted partitions are restored to the state they were at the previous closing down. As a consequence, changes made on Linux may be lost. This can happen on any partition of an internal disk when leaving Windows 8 by selecting “Shut down” or “Hibernate”. Leaving Windows 8 by selecting “Restart” is apparently safe.

To avoid any loss of data, be sure the fast restarting of Windows 8 is disabled. This can be achieved by issuing as an administrator the command :

powercfg /h off

You can check the current setting on :
Control Panel > Hardware and Sound > Power Options > System Setting > Choose what the power buttons do
The box “Turn on fast startup” should either be disabled or missing."

La partie importante pouvant être traduite rapidement par :
"Lorsque Windows 8 est redémarré avec la fonctionnalité de redémarrage rapide, une partie des métadonnées de toutes les partitions montées est restaurée dans l'état dans lequel elles étaient lors de l'arrêt précédent. En conséquence, les changements effectués sous Linux pourraient être perdus. Cela peut arriver sur n'importe quelle partition d'un disque dur lors de l'arrêt de Windows 8 via le choix "Arrêt" ou "Mise en veille prolongée". Quitter Windows 8 en sélectionnant "Redémarrer" est apparemment sans risque.

Pour éviter des pertes de données, assurez vous d'avoir désactivé la fonctionnalité de redémarrage rapide. Cela peut être fait en exécutant la commande suivante en tant qu'administrateur :

powercfg /h off
"

Cela n'intéresse pas les gens qui ne font pas de dual-boot avec Windows 8, mais étant donné qu'on parle de pertes de données auxquelles on ne s'attend pas forcément lorsqu'on fait la mise à jour par curiosité je me suis dit qu'il était important d'avertir les gens.

Un commit a eu lieu sur le git de ntfs-3g pour empêcher le montage d'une partition Windows 8 si le redémarrage rapide est activé. Reste à attendre l'intégration par les distributions…

  • # Abus

    Posté par  (site web personnel) . Évalué à 10. Dernière modification le 08 novembre 2012 à 16:35.

    Cela n'intéresse pas les gens qui ne font pas de dual-boot avec Windows 8, mais étant donné qu'on parle de pertes de données auxquelles on ne s'attend pas forcément lorsqu'on fait la mise à jour par curiosité je me suis dit qu'il était important d'avertir les gens.

    Ok, ça va pour cette fois, mais la prochaine fois que te vient l'idée d'écrire un journal aussi exhaustif et informatif en rapport avec des technologies libres comme celui-ci, tu ferais mieux de bien réfléchir et te demander si linuxfr est bien le meilleur endroit pour ça ! Non mais !

  • # Mwai

    Posté par  (site web personnel) . Évalué à 10.

    /* Always reject cached metadata for now */

    Donc en gros, à terme, il va falloir que ntfs-3g soit capable de lire le contenu de hiberfil.sys pour faire le commit lui même… Bon courage aux devs…

    • [^] # Re: Mwai

      Posté par  . Évalué à 2.

      Bon courage aux devs…

      Oue, c'est pas gagne, voir quasi impossible si ils sauvent juste les pages memoire du kernel compressees.

      Cela dit, c'est tres exactement le meme probleme pour lire une partition linux apres avoir fait une hibernation (enfin pour les gens chez qui ca marche, hein :P). Et le jour ou Linux se met a faire la meme chose pour accelerer le boot, les 3 pequins en multi-boot et utilisateurs d'un driver ext sur un autre OS, il seront pas contents!

  • # Pas nouveau

    Posté par  . Évalué à 7.

    Ça fait longtemps qu'on peut voir des trucs comme ça.

    J'avais déjà la même chose avec Windows XP en hibernation et des partitions en FAT32 : les modifications faites depuis ma Red Hat n'était pas visibles au réveil de Windows.

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Pas nouveau

      Posté par  . Évalué à 10.

      Oui, la différence est que là le simple fait de cliquer sur "Arrêter" provoque le problème.
      Quelqu'un qui s'y connaît un minimum se doute qu'écrire sur la partition d'un windows en hibernation risque de causer pas mal de soucis, mais savoir à l'avance que cliquer sur "Arrêter" ne laisse pas le système de fichier dans un état convenable ça demande de bien se renseigner sur Windows 8 avant.

      • [^] # Re: Pas nouveau

        Posté par  . Évalué à 10.

        J'enregistre mon rapport que je présente demain matin. Je stoppe ma machine et vais au lit. La machine ne redémarre pas pour une raison ou une autre, pas grave je lis le disque à partir d'un autre Windows… et je n'ai pas mon rapport.

      • [^] # Re: Pas nouveau

        Posté par  . Évalué à 2.

        Sauf que ce n'était pas de la partition Windows qu'il s'agissait, mais d'une partition d'échange, donc en plus. En gros, Windows verrouille les partitions montées, donc potentiellement aussi les disques USB.

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Pas nouveau

          Posté par  . Évalué à 3.

          This can happen on any partition of an internal disk

          • [^] # Re: Pas nouveau

            Posté par  . Évalué à 2.

            Non, je parle du problème que j'ai rencontré avec Windows XP et son hibernation.

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

      • [^] # Re: Pas nouveau

        Posté par  . Évalué à 5.

        Oui, la différence est que là le simple fait de cliquer sur "Arrêter" provoque le problème.

        Ah les cons, ils ont copié sur Gnome en mettant un bouton d'hibernation par défaut au lieu de l'extinction du système !

        • [^] # Re: Pas nouveau

          Posté par  . Évalué à 2.

          Ah les cons, ils ont copié sur Gnome en mettant un bouton d'hibernation par défaut au lieu de l'extinction du système !

          Avant, pour savoir qui a copié sur qui, fallait observer où et quand les fonctionnalités intéressantes apparaissaient. Aujourd'hui suffit de regarder le sens de propagation des conneries :-D.

    • [^] # Re: Pas nouveau

      Posté par  (site web personnel) . Évalué à 2.

      Il y a quelques années, j'ai eu un problème similaire avec l'hibernation d'un Windows XP Pro + NTFS et une Debian en dual boot.

      Afin de sécuriser tout cela, la solution est de ne monter par défaut la partition NTFS qu'en "ro" / read-only (via le paramètre "ro" des options du /etc/fstab), et uniquement à la main. Quand à hiberner le Linux, il faut auparavant systématiquement démonter la partition Windows (démontage manuel, ou via les scripts d'hibernation).

  • # violent

    Posté par  . Évalué à 9.

    Un commit a eu lieu sur le git de ntfs-3g pour empêcher le montage d'une partition Windows 8 si le redémarrage rapide est activé. Reste à attendre l'intégration par les distributions…

    intuitivement j'aurais juste forcé le montage en read only, quitte à avoir des données potentiellement dépassés, plutôt que tout bloquer. Si j'ai mas musique sur la partoche ntfs, ce serait dommage de pas pouvoir y accéder, c'est pas comme si j'allais la modifier.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent

    • [^] # Re: violent

      Posté par  . Évalué à 0.

      Je crois que c'est déjà intégré dans Fedora 17.
      J'ai eu un message d'erreur qui semble bien être cela là.

  • # disques externes

    Posté par  . Évalué à 4.

    j'espère que les disques externes (disque usb, clés) sont traités différemment (pas lu l'article, je sais cé mal) parce que sinon ça promet des pleurs (et des divorces)…

    genre, je transfère les photos de la naissance du petit dernier sur un disque de sauvegarde en usb,
    je "fast"-éteint W8,
    je branche le disque dans la machine de la copine,
    chkdsk,
    perdu,
    try-again

    Envoyé depuis mon Archlinux

    • [^] # Re: disques externes

      Posté par  . Évalué à 4.

      Sur la page de ntfs-3g, ils spécifient "This can happen on any partition of an internal disk", donc, si j'ai bien lu, ça ne doit pas poser de problèmes pour ça.

  • # Flou sur le processus de boot

    Posté par  . Évalué à 2.

    Ce nouveau processus de démarrage du système propriétaire me paraît être entretenu d'un flou technique assez déstabilisant. C'est bien sympa de la part de Microsoft d'avoir cherché à accélerer les temps de démarrage, mais l'option par défaut "fast boot" qui pose ici problème repose sur des méthodes qui n'ont pas vraiment été clarifiées.
    Il a fallu que des utilisateurs du pilote ntfs-3g constatent une perte de données pour se rendre compte que Windows 8 démontait à moitié les systèmes de fichiers en s'arrêtant. Un processus aussi important que le démarrage du système, quand bien même propriétaire, devrait être mieux documenté pour relever ce genre de subtilités.

    • [^] # Re: Flou sur le processus de boot

      Posté par  . Évalué à 4.

      https://blogs.msdn.com/b/b8/archive/2011/09/08/delivering-fast-boot-times-in-windows-8.aspx?Redirected=true

      Ca date de 2011. Il y a meme les commandes qui expliquent comment faire un arret complet et un boot a froid.

      Il a fallu que des utilisateurs du pilote ntfs-3g constatent une perte de données pour se rendre compte que Windows 8 démontait à moitié les systèmes de fichiers en s'arrêtant

      Ou ils auraient pu lire un article sur le blog MS "Building Windows 8" avec le mot clef "hiberfil.sys".

      Si a la lecture de ce genre de chose, ca n'allume pas une guirlande dans la tete des devs de NTFS-3G, je sais pas ce qu'il leur faut:

      Now here’s the key difference for Windows 8: as in Windows 7, we close the user sessions, but instead of closing the kernel session, we hibernate it.

      Bon je suis mechant, en fait le probleme etait connu des devs depuis longtemps et il y a des bugs ouverts dessus depuis au moins Mai 2012 (avec en plus des infos techniques issues de tests sur la preview de Windows 8).

      J'ai pas suivi d'assez pret l'affaire pour savoir pourquoi il a fallu attendre septembre pour empecher le montage alors que les donnees semblent dispo depuis presque 5 mois.

      Au final, ca ne change pas grand chose. NTFS-3G ne gere pas une partition avec hibernation, Windows fait maintenant une "mini-hibernation" pour accelerer le demarrage et surprise, NTFS-3G ne gere pas une partition avec hibernation…

      • [^] # Re: Flou sur le processus de boot

        Posté par  . Évalué à 8.

        NTFS-3G ne gere pas une partition avec hibernation

        À mon avis, Windows non plus.
        Si ton disque hiberné est placé dans une autre machine Windows, je doute que les données soient intactes.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.