Logo Spiria

Utilisation d’une image Sparse Bundle sous Mac et son partage avec Dropbox

4 juillet 2016.

Cet article présente une façon de partager des informations sensibles sur internet. Nous allons utiliser une image cryptée sur un Mac et Dropbox, une solution courante de partage de fichiers sur internet.

Cet article présente une façon de partager des informations sensibles sur internet. Nous allons utiliser une image cryptée sur un Mac et Dropbox, une solution courante de partage de fichiers sur internet.

Une image disque sparse bundle fonctionne comme un volume virtuel qui se “monte” et se “démonte” et dans lequel on peut placer des fichiers. L’image disque adapte sa taille en fonction de l’espace nécessaire requis par les fichiers qu’elle contient. Sa taille est ainsi dynamique, ce qui peut être un atout quand on utilise des solutions de partage de fichiers comme Dropbox. Cette image peut aussi être cryptée, ce qui est aussi un avantage quand on utilise Dropbox. L’inconvénient, c’est que seul un Mac peut manipuler ce type d’image.

Créer une image sparse bundle

decorative

Il y a beaucoup de tutoriels sur internet qui montrent comment créer une image de ce type. Les étapes se résument ainsi :

  • Ouvrir l’application Disk Utility (Utilitaire de disque).
  • Créer une nouvelle image vide (voir capture d’écran ci-dessus)
  • Saisir les informations de l’image disque :
    • “Enregistrer sous” : c’est le nom de l’image disque cryptée, ici “spiria”. Le nom complet de l’image disque sera alors spiria.sparsebundle.
    • “Nom” : c’est le nom du volume contenu dans l’image disque, celui qui apparaitra dans les disques dans le Finder une fois “monté”. Dans l’exemple j’ai mis “myDisk”.
    • “Chiffrement” : on est paranoïaque, il faut donc choisir le plus sûr : AES 256 bits.
    • Choix du mot de passe : c’est celui qu’il faudra entrer à chaque fois que l’image disque sera montée. Il vaut mieux donc en choisir un qui, bien qu’assez sûr, ne sera pas trop laborieux à se rappeler ou taper.
    • Finalement, il faut choisir le format d’image : “image disque SparseBundle”.

À la fin de cette procédure, nous obtenons une image cryptée dans laquelle on peut stocker des fichiers dans la limite de 100 Mo. Cette image disque sera automatiquement montée. Avant de poursuivre, on s’assurera de pouvoir démonter l’image et la remonter.

Pour démonter le volume d’une image, il suffit de cliquer sur le bouton éjecter à la droite du nom du volume, dans la barre latérale d’une fenêtre du Finder :

decorative

Ou encore de taper dans un terminal  :

hdiutil eject /Volumes/myDisk/

Pour monter une image disque, il suffit de double-cliquer sur le fichier spiria.sparsebundle et d’entrer le mot de passe, ou de taper dans un terminal :

hdiutil mount spiria.sparsebundle

Gérer le manque d’espace disque dans une image sparse bundle

L’inévitable question qui va se poser au bout d’un certain temps est : mon disque est plein, comment j’agrandis sa taille ? Il y a au moins deux réponses à cette question. Pour cela, on va utiliser le terminal et apprendre à se servir de hdiutil qu’on a déjà brièvement introduit dans la section précédente.

Réclamer de l’espace libre dans un sparse bundle existant en recompactant les fichiers :

Avec le temps, l’image disque a tendance à se fragmenter. L’image disque est découpée en blocs et le remplissage de ces blocs n’est plus optimal au fur et à mesure de l’usage de l’image disque. Pour réclamer l’espace ainsi perdu, il faut démonter le volume du disque, puis utiliser la commande :

hdiutil compact spiria.sparsebundle

Agrandir la taille d’une image sparse bundle :

Si la première méthode n’est pas suffisante, il faut alors penser à agrandir la taille de l’image. Cette opération n’est pas destructive et est donc sans risque. La commande est :

hdiutil resize -size 300m spiria.sparsebundle

Après l’exécution, l’image disque fera 300 Mo, et non plus 100 Mo comme auparavant.

decorative

Partitionner son sparse bundle en plusieurs volumes

J’ai aussi eu le besoin d’organiser mon travail en différents volumes au sein d’une même image disque. Cela me permet un meilleur rangement, d’éviter d’effacer des fichiers par mégarde. Cette opération était très facile avant le passage à El Capitan (OS 10.11). Pour une raison inconnue, la fonction partition de l’utilitaire disque ne fonctionne plus correctement avec les images sparse bundle. Il faut donc avoir recours au terminal. Voici la commande et les explications :

diskutil partitionDisk /dev/disk4 GPT JHFS+  MyFirstClient 100m JHFS+ MySecondClient 0 b

Dans cet exemple, je réalise deux partitions de mon image disque spiria.sparsebundle :

  • “MyFirstClient” d’une taille de 100 Mb au format JHFS+.
  • “MySecondClient” avec tout l’espace restant (option 0 b) soit 214 Mb en JHFS+.
  • Pour trouver le numéro de disque, ici /dev/disk4, on peut par exemple se référer à la réponse donnée lors de l’exécution de la commande hdiutil mount :
    decorative

Il faut faire très attention, car la procédure de partitionnement de disque est destructive ! Toutes les données qui étaient contenues (s’il y en avait) dans l’image disque seront perdues.

decorative

Le partage de l’image disque sparse bundle sur Dropbox

La bonne pratique pour utiliser une image disque sur Dropbox est en général de monter le disque sur le Mac de travail, effectuer le travail, et finalement démonter le disque. Cela force une synchronisation Dropbox et assure que les autres Mac auront la version à jour avant de travailler. Si on sort de cet usage, on s’expose comme moi à des conflits de synchronisation Dropbox. Il faut alors parfois les résoudre.

Avant de commencer à résoudre les conflits, il faut regarder la structure de |'image. Pour voir le contenu d’un sparse bundle, il faut “afficher le contenu du paquet” (clic droit sur le fichier spiria.sparsebundle et sélectionner “Afficher le contenu du paquet”). On voit alors un répertoire “bands”, qui liste tous les morceaux cryptés de l’image disque. C’est dans ce dossier qu’on va retrouver des fichiers en conflit s’il y en a.

Créer volontairement un conflit de versionnage sur Dropbox

Pour créer un conflit, c’est simple, il suffit de ne pas respecter ce qui a été écrit précédemment. Voici un scénario qui générera de manière certaine un conflit :

  • Je crée un fichier de texte sur mon Mac “Colombo”, le sauve, et démonte les disques pour forcer Dropbox à faire une synchronisation. Le fichier texte contient la phrase : “Mon texte sur le Mac Colombo sur Dropbox.”
  • Je synchronise Dropbox sur mon second Mac “Wardell” et monte l’image disque. Je remonte également l’image disque sur Colombo.
  • Sur Colombo, j’édite le fichier de texte et il devient : “Mon texte sur le Mac Colombo sur Dropbox. (Édité).”
  • Sur Wardell, j’édite aussi le fichier de texte : “Mon texte sur le Mac Colombo sur Dropbox. Wardell.”
  • Dropbox détecte un conflit et le notifie.
  • Je démonte l’image disque sur Wardell.
  • Je démonte l’image disque sur Colombo.
  • Je laisse faire la synchronisation de Dropbox…
  • On remonte les deux images disque.
  • => La version qui est gardée sur les deux Mac est celle de Colombo.

decorative

Résoudre un conflit de versionnage d’une image sparse bundle sur Dropbox :

À ce stade, il vaut mieux faire une copie de l’image disque avant de tenter de résoudre le conflit. Pour résoudre le conflit, il faut démonter l’image disque et aller dans le répertoire bands (voir plus haut comment se rendre dans ce répertoire). La version qu’on veut récupérer est celle du Mac Wardell. Il faut donc remplacer les fichiers qui sont en conflit avec ceux de Wardell. Cela revient par exemple à supprimer le fichier “0” et le remplacer par “0 (Wardell’s conflicted copy…)”. Il faut remplacer tous les fichiers qui sont en conflit car on ne sait pas à quelle partie de l’image correspond un fichier du répertoire bands. Cette opération fastidieuse et un peu délicate permet de se sortir de situations désespérées. Après le remplacement, il suffit de monter l’image disque et de récupérer le fichier pour ensuite le copier dans la bonne image disque, celle qui est sur Dropbox.

 

Références