jeudi 8 octobre 2009

Sauvegarde Time Machine sur un disque réseau

Heureux utilisateurs de MacOS X 10.5 Leopard et 10.6 Snow Leopard, vous avez sous la main le plus simple et efficace logiciel de sauvegarde jamais réalisé! Le principe est simplissime autant qu'élégant: les fichiers et répertoires sont recopiés "à plat", sans aucune compression, pour la première sauvegarde; ensuite, lors des sauvegardes incrémentales horaires, seuls les fichiers modifiés sont copiés, les autres sont des sortes de liens symboliques, tout ceci en exploitant le nouveau système de gestion de fichiers très puissant de Leopard (voir cet article pour plus de détails). L'interface de récupération de fichiers est aussi très bien faite: elle simule un Finder qui vous balade dans les fichiers et le temps. Voir l'article d'Apple, et aussi celui-ci.

Cette technique a un avantage: pas de risque de perdre des données pendant une sauvegarde et possibilité de récupérer ses données même sans Time Machine (puisque les fichiers sont copiés tels quels). Et un inconvénient: cela prend de la place... et du débit; de gros volumes de données sont transférés à chaque fois; même sans rien faire, les fichiers systèmes font 1 ou 2 Go à sauvegarder chaque heure...

En outre, vous aurez sûrement remarqué l'impossibilité de sélectionner un disque réseau pour déposer vos sauvegardes... Seuls les disques locaux sont proposés, et c'est bien bête car une sauvegarde n'est sécurisée que si elle n'est pas physiquement au même endroit que l'original ! Apple incite à utiliser soit des disques amovibles connectés directement sur votre machine (par USB ou FireWire), soit la Time Capsule, seul disque réseau reconnu...

On trouve cependant une solution sur le Net; ici par exemple. Elle est assez simple (que ceux qui ne sont pas à l'aise avec la ligne de commande passent leur chemin), la voici en 4 étapes:
  1. lancer un Terminal
  2. Pour autoriser l'affichage des disques réseau dans Time Machine, tapez ceci:
    defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
  3. Cela ne suffit pas forcément, car Apple peut bloquer la création d'une image lors de la première sauvegarde. Il faut donc contourner le problème, en recopiant cette ligne de commande (remplacez "320g" par le nombre GigaOctets que vous réservez sur votre disque de sauvegarde), ce qui va créer un (tout petit) fichier image sur votre bureau:
    sudo hdiutil create -size 320g -type SPARSEBUNDLE -nospotlight -volname "Backup of myself" -fs "Case-sensitive Journaled HFS+" -verbose ~/Desktop/_.sparsebundle
  4. Recopiez ensuite ce fichier sur votre disque réseau (remplacez "mondisquereseau" par le nom du point de montage de votre disque):
    cp ~/Desktop/_.sparsebundle /Volumes/mondisquereseau/
Personnellement, j'utilise cette astuce pour sauvegarder sur un disque se trouvant sur une machine Linux, exporté par Samba, sans aucun problème depuis plusieurs mois (à part le soucis et sa solution décrits ci-dessous). Time Machine monte automatiquement le disque pour lancer une sauvegarde, ou pour récupérer des fichiers.


En cas d'erreur Time Machine...

Ce qui va suivre concerne aussi les sauvegardes sur disque local.

A. Disparition des sauvegardes anciennes

Il peut arriver que les sauvegardes anciennes disparaissent partiellement dans l'interface Time Machine: les dates sont affichées mais il n'est plus possible d'y accéder. Pas de panique, les fichiers sont bien là, et la solution est très simple:
  1. Ouvrir les préférences Time Machine;
  2. Cliquer sur "Choisir un disque...", sélectionner votre disque de sauvegarde (il l'est probablement déjà) et cliquer sur "Configurer Time Capsule";
  3. Time Machine va relancer une sauvegarde au bout de 2 minutes, et tout revient à la normale à la fin de l'opération.

B. Erreur de sauvegarde

Il arrive aussi que la sauvegarde plante avec un gentil message «à la Microsoft» : "Erreur de Time Machine. Impossible de terminer la copie de sauvegarde. Une erreur s'est produite lors de la copie des fichiers sur le volume de sauvegarde". Si l'erreur persiste à la sauvegarde suivante, c'est qu'il y a un vrai problème. Quand on regarde dans "system.log" avec la Console, on trouve toutes sortes de messages indigestes, et un dernier passage qui ressemble à ça:

/System/Library/CoreServices/backupd[]: Indexing a file failed. Returned -1134 for: /Applications/..., /Volumes/Image disque/Backups.backupdb/...
/System/Library/CoreServices/backupd[]: Aborting backup because indexing a file failed.
/System/Library/CoreServices/backupd[]: Stopping backup.
/System/Library/CoreServices/backupd[]: Copy stage failed with error:11
/System/Library/CoreServices/backupd[]: Backup failed with error: 11.


J'ai passé pas mal de temps sur les forums avant de trouver la solution. Le numéro d'erreur annoncé dans le log est variable (-1134 dans mon cas), et peut concerner n'importe quel fichier de n'importe quelle application... ce qui fait que les forums cafouillent souvent pour identifier le problème. L'origine de l'erreur semble être liée à une interruption brutale pendant la dernière sauvegarde (mise en veille du Mac, déconnexion du disque de sauvegarde, coupure réseau, ...), et Time Machine cherche à rattraper le coup ensuite... et ça ne semble pas très au point. Je ne félicite pas Apple sur ce coup-là.

La solution a été trouvée sur ce forum, et elle est ultra-simple: il suffit d'effacer la dernière sauvegarde qui pose problème, et Time Machine reprendra son travail tranquillement. Voici la procédure (qui a marché pour moi):
  1. s'assurer que le disque de sauvegarde est bien en route, connecté et alimenté;
  2. désactiver Time Machine (pour éviter qu'une sauvegarde ne se lance pendant la manip);
  3. aller sur le disque de sauvegarde avec Finder et montez l'image disque en double-cliquant sur le fichier "nom d'ordinateur_adresseMac.sparsebundle"; pendant la vérification des volumes, vous pouvez cliquer sur "Ignorer" si vous ne voulez pas attendre.
  4. aller dans "backups.backupd/nom d'ordinateur", et mettre à la corbeille les fichiers correspondant à la dernière sauvegarde: le dernier répertoire en date + celui se terminant par ".inProgress" + le fichier lien "Latest" (tout ça ce devrait être à la fin de la liste);
  5. démontez l'image disque;
  6. lancer une sauvegarde ("Sauvegarder maintenant").

11 commentaires:

Tom a dit…

Est-ce que tu as testé la restauration depuis le Disque réseau ?
Comment as-tu procédé ? As-tu réinstaller l'OS puis récupéré tes données et config une fois dans Mac OS, après avoir refais la manip que tu décris dans cet article ? Ca marche bien ?
Merci pour ton article qui m'a bien été utile :-)

F. de B. a dit…

Je n'ai testé que la restauration de fichiers ou répertoires, mais jamais de l'OS entier (si c'est bien ce que tu veux faire). Si ça arrivait je ferais comme tu dis: installer un OS et récupérer les données utilisateur.

juleswest a dit…

Salut,

Merci pour cet article qui m'a bien aidé.

Pour compléter l'article on peut préciser qu'il est possible de rallonger l'intervalle entre chaque sauvegarde de Time Machine... cela est bien utile quand on a 15Go à sauvegarder à chaque fois comme moi. Personnellement je l'ai réglé pour faire une sauvegarde toute les 4 heures.

Pour cela il faut simplement modifier le fichier System » Library » LaunchDaemons » com.apple.backupd-auto.plist en changeant 3600 par le nombre de seconde souhaitées (dans mon cas 14400 pour 4h).

Petite précision, il faut les droits root pour faire cela... la solution :
1 - Copiez ce fichier com.apple.backupd-auto.plist sur le bureau
2 - Modifiez-le et enregistrez-le
3 - Remettez le fichier dans le répertoire System » Library » LaunchDaemons et écrasez le fichier original (il vous faudra le mot de passe admin)

Voilà, en espérant que cela aide qqun.

A+

F. de B. a dit…

Merci pour ces infos précieuses.
Et pour ceux qui ne seraient pas à l'aise avec les manipulations de fichiers systèmes, il y a le petit programme TimeMachineEditor qui marche sous Leopard et SL. Il permet de choisir l'intervalle de temps entre sauvegardes et même de définir un calendrier précis sur la semaine ou le mois.

Tom a dit…

Merci pour ta réponse F de B. et aussi Juleswest pour ses précisions.

C'est sympa de voir qu'il y a des gens passionnés qui partages leurs infos ;-)

merci.

david f. a dit…

bonjour et merci pour cet article très intéressant car je rencontre exactement ce pb de sauvegarde actuellement.

seul pb je ne trouve nulle part le fichier "nom d'ordinateur_adresseMac.sparsebundle".

j'ai donc supprimé les fichiers en questions (relatifs à la dernière sauvergarde) et lancé une nouvelle opération ... là, je prie St Time Machine pour que cela fonctionne.

je vous tiendrai informé.

David

Unknown a dit…

Bonjour à tous, pouvez me dire si quelqu'un peut me donner la solution pour afficher un petit message sur le bureau lorsque la sauvegarde TimeMachine a terminé sa copie toutes les heures. merci d'avance

Géraldine a dit…

Bonjour,

je suis en train d'essayer de suivre la procédure expliquée pour faire une sauvegarde sur un disque partagé par windows.

Pour le début, pas de problème, ça marche super bien, le dossiers partagés sont visibles comme des disques,et je peux les sélectionner.

Le problème est que la commande "MacBook-Air-de-Geraldine:~ Geg$ cp ~/Desktop/_.sparsebundle /Volumes/SaveGeg/" me retourne "cp: /Users/Geg/Desktop/_.sparsebundle is a directory (not copies)."

J'ai essayé de le copier à la main (en faisant un copier-coller), ce qui marche, mais quand je lance TimeMachine, il me dit qu'il ne trouve pas le disque de sauvegarde : "le disque de sauvegarde ne prend pas en charge les fonctionnalités AFP requises"

Quelqu'un saurait comment je peux solutionner ce problème ?

Merci,

Géraldine

Ronparchita a dit…

Bonjour,
J'apprécie et remercie d'autant plus chaleureusement.
Ce n'est pas la reponse à mon probleme, je suis arrivé là en cherchant comment installer sur ma Time Capsule toute neuve les precedentes sauvegardes realisées avec Time Machine sous Lion et sur un Disque Dur Externe. Je ne parviens pas a trouver. Avez vous une idée s'il vous plait ? D'avance merci.

F. de B. a dit…

Bonjour,

J'aurais tenté la manip suivante, mais sans aucune assurance de succès...

Brancher le disque externe et la Time Capsule sur le Mac, puis copier le gros fichier "monordinateur.sparsbundle" de l'un sur l'autre (à la racine du répertoire partagé), et enfin lancer un Time Machine et sélectionner la Time Capsule et son disque...

Avec un peu de chances il pourrait reconnaître les précédentes sauvegardes...

nigloo a dit…

merci beaucoup pour ton tuto.
je viens de tester la manip sur mac osx lion fraichement installé, et mon NAS en réseau, en suivant tes conseils.
ca a marché.
je n'avais jamais testé time machine et je viens de perdre mon disque de 400 Go, maintenant je n'ai plus d'excuses si je perds des données.