Profitez des offres Memoirevive.ch!
Retour sur Time Machine

Suite à l'article de François Cunéo à propos de Time Machine et de ses déboires, je me suis posé la question de savoir comment fonctionnait plus en détails cette application. Au travers de cet article je vous ferai donc part de mes recherches et des conclusions que l'on peut en tirer, permettant de connaître plus en profondeur Time Machine, sans pouvoir toutefois (malheureusement) amener une solution miracle pour François.

Les sauvegardes sont effectuées dans un dossier Backups.backupdb/nom_de_la_machine sur le disque dur. Il est tout à fait possible d'effectuer des sauvegardes provenant de plusieurs machines sur un même disque, pour autant que celles-ci aient un nom différent. Si Time Machine se base sur le nom de la machine et son adresse MAC, celle-ci n'est a priori utile que pour reconnaître le disque dur de copie en tant que disque Time Machine.

Première constatation, due à cette identification au travers de l'adresse MAC, si l'on change la carte ethernet de son ordinateur, Time Machine ne reconnaîtra plus les sauvegardes effectuées. De plus, il arrive que Time Machine bute au moment d'effectuer une sauvegarde et ne fasse rien du tout, sans que l'utilisateur ne s'en aperçoive. C'est peut-être ce qui est arrivé à François entre le 13 et le 28 avril dernier sur le disque de son domicile.

sauvegardes
La liste des sauvegardes de ma machine.

Chaque sauvegarde est un dossier dont le nom est construit de la sorte: année-mois-jour-heure_minutes_secondes. De plus, un dossier Latest pointe, grâce à un lien symbolique, sur la sauvegarde la plus récente.

Les fichiers ne sont évidemment pas à chaque fois tous copiés s'ils n'ont pas subi de modification depuis la dernière sauvegarde. La taille nécessaire aurait été énorme! Cependant, la hiérarchie complète est présente dans chaque sauvegarde, que les données aient été modifiées ou non. Un fichier modifié sera copié dans la nouvelle sauvegarde et un fichier non modifié par rapport à la sauvegarde précédente sera simplement affiché grâce à un lien physique: les données ne sont stockées qu'à un seul endroit sur le disque, et chaque fichier pointe sur la même zone mémoire.

Une question que l'on peut se poser est de savoir s'il est possible d'effacer une sauvegarde. La réponse est non, sans doute par sécurité. Il est donc impossible d'effacer les sauvegarde d'une tierce personne ni même la sienne! Pour comprendre cela, il est nécessaire de plonger dans le Terminal et de lister le contenu d'une sauvegarde (commande "ls -l"). On note alors l'affichage de la lettre 't' en face d'un dossier. Cette lettre n'est pas très courante et représente le sticky bit. Il s'agit d'une option qui empêche tout autre utilisateur que le propriétaire de supprimer un fichier.

Intéressons-nous maintenant à la manière de procéder lors d'une sauvegarde. Par défaut, Time Machine effectue une sauvegarde toutes les heures. Il est possible de modifier cette donnée dans le fichier /Système/Bibliothèque/LaunchDeamons/com.apple.backupd-auto.plist (valeur StartInterval, fixée à 3600 secondes). Une sauvegarde est réalisée par l'exécutable backupd qui se trouve dans /Système/Bibliothèque/Core Services/. Il est également possible de lancer une sauvegarde à la main, soit depuis l'interface graphique, soit par la commande "sudo /System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper".

Lors d'une sauvegarde, Time Machine conservera donc toutes les précédentes datant de moins de 24 heures et qu'une par jour au-delà. Les sauvegardes quotidiennes sont quant à elles gardées durant un mois, puis les sauvegardes hebdomadaires jusqu'à saturation du disque.

Une chose intéressante à faire pour en apprendre plus sur ce qu'il se passe sur sa machine est de consulter les fichiers de log (le journal), qui contiennent l'historique des événements survenus. La manière la plus simple de le faire est d'utiliser la Console. En consultant le fichier /private/var/log/system.log, on comprend plus exactement le travail effectué par Time Machine.

Le disque de copie est d'abord recherché, puis les fichiers modifiés sont copiés. Si vous ouvrez le Finder à l'endroit de vos sauvegardes (comme sur la première image), vous verrez que la sauvegarde en cours est nommée année-mois-jour-heure_minutes_secondes.inProgress. Celle-ci sera ensuite renommée, sans le inProgress, et le dossier Latest pointera alors vers elle. En revenant au journal, on s'aperçoit que les sauvegardes "de trop" sont ensuite supprimées dans une phase nommée "post-back up". D'après mes recherches, Time Machine conserve, dans le cas des sauvegardes quotidiennes, la sauvegarde faite le plus tôt dans la journée.

console
Le contenu du fichier system.log relatif au processus backupd.

Puisque nous sommes dans les fichiers de log, voyons ce qui se trouve sur notre disque Time Machine, plus précisément dans le dossier Latest (la structure sera la même pour chaque sauvegarde), qui contient je le rappelle la dernière sauvegarde.

latest
Le contenu du dossier Latest.

Nous trouvons ici la copie du disque dur ainsi que trois autres fichiers cachés: .Backup.log, .com.apple.TMCheckpoint et .exclusions.plist. .com.apple.TMCheckpoint ne contient rien par défaut, et je dois dire que je ne connais pas son utilité .Backup.log contient quelques informations sur la dernière sauvegarde effectuée. Enfin, .exclusions.plist contient les fichiers exclus par l'utilisateur de la sauvegarde en question.

Intéressons-nous donc un instant à l'exclusion de fichiers. Nous venons de le voir, chaque sauvegarde contient un fichier .exclusions.plist listant les fichiers exclus lors de celle-ci. Mais étant donné qu'il est possible de choisir les éléments à ne pas sauvegarder, via les Préférences Systèmes, sans qu'aucun disque Time Machine ne soit branché, cela signifie que cette information est présente sur le disque principal de la machine. Effectivement, tous les fichiers exclus sont listés dans /Bibliothèque/Préférences/com.apple.TimeMachine.plist, ce qui signifie que l'exclusion est valable pour la machine et non utilisateur par utilisateur.

De plus, l'application Time Machine elle-même contient un fichier nommé StdExclusions.plist (/System/Library/CoreServices/backupd.bundle/Contents/Resources), qui liste les fichiers exclus par défaut. On trouve notamment parmi ces fichiers -la question avait été posée dans les commentaires de l'article de François- les dossiers /tmp (ainsi que /private/var/tmp), c'est-à-dire les données temporaires, ou encore le dossier /private/var/vm (contenant swapfile et sleepimage).

Au final, on remarque donc que pour effectuer une sauvegarde, Time Machine se réfère directement aux dossiers présents sur le disque de copie, contenant toutes les informations nécessaires (à savoir la date précise) dans leur nom. En toute logique, le fait d'utiliser plusieurs disques pour effectuer ses sauvegardes ne devrait donc pas être un problème!

Vu que le soucis de François venait de Mail, j'ai comparé le dossier Mail du dossier Bibliothèque de l'utilisateur à celui présent sur la copie Time Machine. On remarque alors que le fichier Envelope Index n'est pas présent dans la copie. Ceci est d'ailleurs confirmé en consultant le fichier StdExclusions.plist, puisque Envelope Index fait bien partie de cette liste et est donc exclu de la sauvegarde.

exclusions
La liste des fichiers exclus par défaut lors d'une sauvegarde.

Quelle est donc l'utilité de ce fichier? Celui-ci sert en fait à indexer tous les messages de Mail. Or ce fichier n'est pas des plus importants, puisqu'il est recréé automatiquement si Mail ne le trouve pas à l'ouverture. Il en va de même pour tout ce qui est indexation Spotlight par exemple. François s'était étonné de devoir réimporter ses mails; en fait, Mail reconstruit simplement l'index à partir des courriers qu'il contient, il ne s'agit donc pas réellement d'une importation à proprement parler, malgré le texte de la fenêtre affichée.

importation
La fenêtre d'importation des courriers, s'affichant aussi lors de la réindexation.

D'ailleurs, MacOsHints propose d'effacer ce fichier puis de reconstruire l'index (en relançant Mail) lorsqu'apparaissent des courriers doublons, lors d'un transfert de messages d'un compte à un autre par exemple .

Sachant cela, il n'aurait pas été étonnant de retrouver moins de messages qu'escompté sur les copies de sauvegarde. Après avoir récupéré les données Mail depuis Time Machine, l'index est recréé, ce qui aurait quelque peu fait le ménage dans la liste des courriers. Ce qui est intriguant ici, c'est le fait qu'une copie, relativement récente, reconstruise un index avec 71'000 courriers alors qu'une autre copie, apparemment bloquée au 13 avril, donc plus ancienne, affiche 76'000 messages!

J'avoue avoir de la peine à comprendre. Il serait intéressant de récupérer sur le disque avec la copie récente le dossier Mail datant du 13 avril (ou aux alentours), afin de comparer. Il serait alors possible de voir si, pour une même date, les données sauvegardées sont les mêmes. Si oui, cela signifierait que des courriers ont été supprimés depuis cette sauvegarde.

En conclusion, je suis désolé François de ne pouvoir te dire exactement ce qui s'est passé et comment l'éviter pour la suite, mais je ne serais pas aussi catégorique en disant que Time Machine fait des siennes. Apparemment, rien n'empêche l'utilisation de plusieurs disques de copie. Bien entendu, une copie n'est jamais à 100% fiable, dans le sens où il se peut qu'elle ne soit tout simplement pas effectuée, pour diverses raisons, qui plus est avec une connexion sans fil, et ce de manière transparente pour l'utilisateur.

La chose à retenir est peut-être qu'il est toujours plus prudent de contrôler de temps à autre sur le disque Time Machine que la dernière sauvegarde ne remonte pas à plusieurs jours ou semaines, afin d'éviter toute mauvaise surprise.

22 commentaires
1)
chrisb63
, le 17.05.2008 à 00:30

Merci beaucoup pour cet article détaillé.

Mais toujours une question qui me travaille : quelle la situation de TM avec Lightroom ? Faut-il toujours éviter de faire tourner TM en même temps que LR ou le problème est réglé. J’ai lu qu’Apple avait solutionné le problème avec Aperture en excluant la base de donnée du backup. Quid de LR ? Pour l’instant j’évite faire tourner les deux en même temps donc TM est en manuel et le catalogue lrcat est exclus, donc pas terrible !

2)
GG
, le 17.05.2008 à 00:59

“Une question que l’on peut se poser est de savoir s’il est possible d’effacer une sauvegarde. La réponse est non, sans doute par sécurité.”

On peut supprimer des données de sauvegarde d’un dossier, en accédant à l’interface de Time Machine dans ledit dossier et en cliquant sur l’icône d’engrenage dans la fenêtre.

3)
XXé
, le 17.05.2008 à 02:27

Une remarque aussi : si on lance TM depuis mail en ayant sélectionné “Boîte de réception”, TM propose de récupérer l’intégralité de cette boîte. Si on lance TM en ayant sélectionné une seule BàL, l’appli propose de ne récupérer que cette dernière. Et si on choisi un mail unique, TM va récupérer ce mail.

Là où ça se corse, c’est que si je sélectionne “Boîte de réception”, mes derniers messages ne s’affichent pas (un peu comme le souci de François ?) alors que si je choisis une BàL précise, là j’aurais tous les messages de cette BàL, y compris ceux qui ne s’affichaient pas en choisissant “Boîte de réception”…

Surprenant.

Didier

4)
François Cuneo
, le 17.05.2008 à 08:04

Merci pour ces explications dans le cambouis.

Très intéressant.

Je constate donc, si j’ai bien compris, que le fait que je fasse deux time machine du même ordinateur sur deux endroits différents (ce qui est la base de la sauvegarde sûre) ne serait pas en cause.

Merci aussi pour l’explication de “l’importation” qui n’est qu’une indexation. Ce pourrait être plus explicite, parce que le terme “importation” fait peur, et nous fait croire qu’on n’a pas bien fait qqch. Alors que réindiexation, c’est normal.

Ah, juste une chose encore…

Je trouve qu’il est bien, ce site…

5)
Roger Baudet
, le 17.05.2008 à 08:41

Bon travail, 6ix, tu n’as pas perdu ton temps. Les indications que tu donnes sont précieuses. Merci donc et vive CUK !

6)
Bigalo
, le 17.05.2008 à 09:43

Je trouve qu’il est bien, ce site…

;-))

Ceci dit, tu n’as probablement pas tort, et je crois qu’en plus, nous sommes nombreux à partager ton avis !

7)
kubernan
, le 17.05.2008 à 10:59

Bonjour,

J’ai également constaté un dysfonctionnement dans Time Machine. J’ai la particularité d’avoir mon compte sous FileVault. Dans ce cas, Time Machine sauvegarde le compte utilisateur lorsqu’on ferme sa session (donc si on supprime un fichier créé sur son compte utilisateur durant la même session, il est impossible de le récupérer).

Dans ce type de configuration, lors de la première sauvegarde, Time Machine sauve tout le disque sauf le compte utilisateur sous FileVault. Il faut éteindre l’ordi pour que ce compte soit également sauvegardé.

Bref, j’ai constaté (lors de l’installation de ma Time Capsule) que Time Machine avait “oublié” de sauvegarder mon compte utilisateur lorsque j’ai éteint mon ordi. J’ai dû refaire une sauvegarde complète.

Je terminerai par dire qu’il ne faut pas négliger de sauvegarder ses données ailleurs que chez soi. J’ai des années de travail sur mon ordi, si ma maison flambe Time Machine ne me sera pas d’une grande aide. J’utilise donc Backup et mon compte .Mac où je fais des sauvegardes quotidiennes de mes fichiers les plus sensibles.

8)
ToTheEnd
, le 17.05.2008 à 11:46

Pil poil avec un bémol néanmoins, je n’aime pas trop les phrases du genre peut-être qu’il est toujours plus prudent de contrôler de temps à autre sur le disque Time Machine ou il arrive que Time Machine bute au moment d’effectuer une sauvegarde et ne fasse rien du tout, sans que l’utilisateur ne s’en aperçoive… tout cela laisse planer un gros doute sur la qualité et l’intégrité des backups.

Un logiciel ne doit pas fonctionner de temps en temps ou la plupart du temps. Il doit toujours accomplir une tâche avec la même précision.

Bref, ces zones d’ombres ne sont pas pour rassurer l’utilisateur que ce logiciel répondra toujours à ses attentes et besoins et ça, dans ce domaine (la sauvegarde de précieuses données), c’est plutôt inquiétant.

T

9)
6ix
, le 17.05.2008 à 14:59

TTE: Je suis tout à fait d’accord avec toi, j’aimerais ne pas avoir à le dire, mais force est de constater que les sauvegardes ne sont pas toujours effectuées notamment avec le Wi-fi. J’ai la chance de n’avoir jamais eu ce problème, mais on m’en a parlé dans mon entourage.

Bien entendu c’est rare, et ce n’est pas si grave si une sauvegarde horaire est sautée parce que Time Machine n’a pas trouvé le disque, mais l’utilisateur se doit d’être conscient qu’un problème peut survenir, et qu’il ne suffit pas de faire une sauvegarde les yeux fermés pour être totalement à l’abri.

10)
jibu
, le 17.05.2008 à 16:13

L’arborescence de la sauvegarder est différente par wifi. Il créé une image disque. Juste comme ça. J’ai constaté également qu’une sauvegarde pouvait ne pas ce dérouler automatiquement en wifi. J’ai du la lancer en manuel et ensuite c’est repartis tranquille les jours suivant. ça fait pas sérieux effectivement…

11)
Claude Mouginé
, le 17.05.2008 à 18:23

Bonjour à tous,

Je voudrais apporter ma modeste contribution à cet échange très intéressant. Je ne connais pas Time Machine, et très peu le Mac. Ce pendant, j’ai pratiqué pas mal de système de sauvegarde, et à peu près tous ceux ci fonctionnaient peu ou prou de la même manière : ils déterminent si un fichier a été modifié depuis la dernière sauvegarde à l’aide d’un attribut qui est positionné lorsque le fichier est modifié, et enlevé lorsque la sauvegarde est effectuée. Ce système a provoqué, dans mon entreprise, le même genre de dysfonctionnement que celui rencontré par François (d’après ce que j’en ai compris). Un de mes utilisateurs sauvegardait ses données avec un disque externe au bureau, et avec un autre disque externe chez lui. Lorsqu’il a fallu recharger sa sauvegarde depuis son disque du bureau, bonjour les dégâts! Après une après midi de tremblement de tête, en comparant les deux disques externes (celui du bureau et son perso), on a constaté qu’il aurait fallu concaténer les sauvegardes de chacun des disques pour être à jour ce que bien sûr le logiciel de restauration est incapable de faire). Pour être plus clair disons que le fichier X, modifié Lundi à 17h15, n’était pas sur la sauvegarde de 17h faite au bureau. En revanche, il était sur celle de 21h faite à la maison. Mais il n’était plus non plus sur la sauvegarde du mardi au bureau, puisque l’attribut “archive” avait été enlevé la veille par la sauvegarde à domicile. La restauration ayant été effectuée avec le disque du bureau, l’utilisateur s’est retrouvé avec des versions de certains fichiers vieilles de plusieurs jours..

Voilà.. je ne sais pas si c’est la bonne explication.. J’ai juste tenté de donner une piste à explorer, faute de mieux..

Bonne fin de week end à tous…

12)
Sparhawk
, le 17.05.2008 à 23:56

J’ai aussi rencontré au début pas mal de problèmes avec TM. Ma config comporte 1 dd de 120 Gb, 1 de 250 Gb, 1 de 320 Gb et 2 de 500 Gb. J’ai acquis un disque de 1.5 To pour backuper le tout. La première sauvegard prend non seulement des plombes (on s’y attend) mais elle échouait toujours. J’ai dû procéder par étapes: exclusion de tous les disques sauf un, backup, puis j’ai enlevé un à un les disques de la liste d’exclusion. Pour les gros, contenant un dossier de 400 Gb, j’ai dû transférer la majeure partie du contenu du dossier dans un dossier exclu et j’ai retransféré les fichiers petit à petit, jusqu’à finalement avoir une sauvegarde TM complète. Depuis, tout roule pour les màj incrémentielles.

13)
felix-fi
, le 18.05.2008 à 00:27

Francois,

Si tu as toujours tes backup, peux tu aller faire une commande du style

ls -R | wc

dans les dossiers /Users/<login>/Library-Bibliotheque/Mail des differents backups que tu as utilises? voir si effectivement il y a moins de messages dans la version du 29 que dans la version du 13.

Merci,

14)
kubernan
, le 18.05.2008 à 09:42

Un logiciel ne doit pas fonctionner de temps en temps ou la plupart du temps. Il doit toujours accomplir une tâche avec la même précision.

Un logiciel n’a pas d’état d’âme (pas encore) ; il réalise les instructions dont il est constitué, toujours avec la même précision. Peut-être que le fonctionnement étrange de Time Machine relevé ici provient d’une méconnaissance du produit, d’un bug propre au logiciel, d’un bug extérieur au logiciel, d’un événement non prévu par le logiciel.

Mais je pense comprendre ce que tu as voulu dire. J’ajouterai qu’avec le Mac et OS X nous avons l’habitude que tout fonctionne relativement bien et qu’effectivement, la force de cet environnement c’est d’éviter de nous angoisser lorsqu’on accompli des tâches (on branche et ça marche).

Concernant Time Machine la question qu’on doit se poser est, à mon humble avis : à partir du moment où sa fiabilité est entaché de doutes, doit-on encore l’utiliser ?

Autre chose, j’ai eu un jour à restaurer entièrement mon mac en utilisant Time Machine. En effet ma machine avait un fonctionnement plutôt étrange (problème de synchro du son sur toutes mes vidéos). Sur le coup, je n’ai pas pensé qu’en faisant une restauration complète, je restaurai également le problème. Il a fallu que j’installe un système tout neuf et que je restaure seulement mon compte utilisateur.

Enfin, je me permets de suggérer à François d’émettre un bug auprès d’Apple (si ce n’est déjà fait). K.

15)
6ix
, le 18.05.2008 à 23:59

Claude Mouginé: L’idée du “bit archive”, initialisé (0) lorsque le fichier est archivé et mis à 1 lorsque le fichier est modifié, est une idée, mais une fausse piste ;-) En effet, ceci n’est valable que pour les fichiers DOS et n’existe pas sur Mac, avec le système de fichiers HFS+. Après quelques tests, TimeMachine se base sur la date de modification, probablement ctime, pour décidé de sauvegarder le fichier ou non.

16)
pilote.ka
, le 19.05.2008 à 08:21

mais l’utilisateur se doit d’être conscient qu’un problème peut survenir, et qu’il ne suffit pas de faire une sauvegarde les yeux fermés pour être totalement à l’abri.

À quoi sert TM si on ne peut pas sauvegarder les yeux fermés?

17)
6ix
, le 19.05.2008 à 08:46

À quoi sert TM si on ne peut pas sauvegarder les yeux fermés?

Si je voulais polémiquer, j’irais plus loin: dans ce cas, à quoi sert l’informatique? Une erreur peut survenir n’importe quand.

Alors bien sûr, le but ici est d’être le plus fiable possible, et Apple a sans doute encore des problèmes à résoudre avec Time Machine par Wi-fi.

Cela dit, personnellement je ne fais pas plus confiance à un autre logiciel. Si j’ai besoin de faire une copie clônée (par exemple avec CCC ou SuperDuper!) afin d’effacer mon disque pour une raison ou une autre, je teste toujours que la copie fonctionne. Se lancer droit en avant en pensant que tout est en ordre, et se retrouver sans rien après, bof bof.

Donc encore une fois, mieux vaut être deux fois sûr de son coup! Même si, pour aller dans le sens de ta remarque, il est évident qu’il vaut mieux avoir un logiciel qui fonctionnera dans le 99.99% des cas qu’un autre qui manque sa sauvegarde une fois sur dix!

18)
matsw
, le 19.05.2008 à 11:14

Quelques corrections: TM n’utilise pas le sticky bit pour empêcher la modification. En tout cas pas chez moi. L’article passe complètement sous silence le mécanisme qui est utilisé pour découvrir les modifications à sauvegarder: fsevents. Il s’agit d’un journal de toutes les modifications faites sur le disque. Si on utilise TM pour faire la sauvegarde à deux endroits, il y a la possibilité que certaines modifications de fsevents soient oubliées dans l’une ou l’autre des copies. Je ne dis pas que c’est le cas, mais que c’est une possibilité.

J’utilise TM depuis le début et je n’ai eu que des problèmes mineurs. Il est possible de vérifier la qualité d’une sauvegarde TM en appliquant la méthode décrite ici. J’encourage vivement une personne utilisant TM pour deux sauvegardes distinctes à essayer la méthode de comparaison, seul moyen de savoir si effectivement TM fonctionne dans ce mode ou non.

19)
6ix
, le 19.05.2008 à 13:17

TM n’utilise pas le sticky bit pour empêcher la modification. En tout cas pas chez moi.

C’est le cas chez moi et sur les autres sauvegardes que j’ai vues en tout cas!

le mécanisme qui est utilisé pour découvrir les modifications à sauvegarder: fsevents

Effectivement bonne remarque, il serait très intéressant de pouvoir comparer différentes sauvegardes!

20)
matsw
, le 19.05.2008 à 14:50

J’ai regardé encore une fois, pas de sticky bit dans mes sauvegardes TM. D’ailleurs il est impossible que le sticky bit soit utilisé pour protéger les sauvegardes car TM sauvegarde tout, y compris les attributs et autres métadonnées, donc y compris le sticky bit. C’est le noyau Leopard qui empêche d’effacer dans les backup TM malgré les permissions, essayez d’effacer avec sudo, ça ne marche pas non plus.

21)
infstop
, le 14.09.2008 à 18:07

En relisant cet article, quelque chose me vient à l’esprit, mais je n’ai pas de TimeCapsule pour vérifier. Les sauvegardes TimeMachine fonctionnent-elles correctement si on sauvegarde alternativement en Wifi et en liaison directe Ethernet ? L’adresse Mac varie.. y a t il un impact ?

Denis.

22)
XXé
, le 14.09.2008 à 20:50

Les sauvegardes TimeMachine fonctionnent-elles correctement si on sauvegarde alternativement en Wifi et en liaison directe Ethernet ? L’adresse Mac varie.. y a t il un impact ?

Bon, j’ai pas essayé mais je ne vois pas bien le rapport entre les Mac Address et TM… TM utilise des fichiers sur le disque d’origine et sur le disque de destination pour savoir quoi faire. À mon avis, il se fiche des adresses (Mac ou Ethernet) comme d’une guigne.

Didier