Avant-propos
Pour les utilisateurs venant du monde UNIX, il est indispensable de savoir manipuler en ligne de commande les images disques d'Apple. Il en existe de deux sortes : les traditionnelles (avec leur variations : chiffrées, compressées, etc) et les grossissantes.
Les images disques grossissantes sont des images disques ayant une taille maximale définie à la création. Toutefois, uniquement l'espace utilisé est écrit sur le disque, ce qui permet de limiter l'espace occupé.
Concrètement, une telle image se présente sous la forme d'un répertoire IMAGE.sparsebundle
contenant une collection de bandes, un index des données et un fichier de métadonnées sur l'image. Il va de soit qu'il est extrêmement déconseillé d'aller trifouiller au petit bonheur la chance à l'intérieur de ces fichiers.
Il est important de se pencher sur la façon dont les volumes et disques sont attachés sous MacOS. Sans entrer dans les détails, on admettra que les disques physiques sont directement (c'est à dire, sans tampon ou couche tierce) accessibles par les nœuds /dev/rdisk*
; ils ont leur contrepartie logique sous la forme /dev/disk*
.
Une image disque, étant un volume logique, sera attachée sous la forme /dev/diskXsY
, comme si elle était un disque dur. X
est alors un identifiant du disque, et chaque partition est associée à un identifiant Y
. Chaque partition du disque logique peut alors être montée; le point de montage par défaut étant /Volumes/
. Il est bien sur possible d'attacher une image disque sans la monter, afin d'utiliser par exemple des outils travaillant sur les blocs.
Également, MacOS associe à chaque image disque une somme de contrôle permettant de tester son intégrité. Par défaut, des tests (parfois longs) sont effectués. À vous de décider si vous voulez les valider ou bien les ignorer.
La syntaxe des exemples suivants est valable pour MacOS Léopard, et peut-être des versions ultérieures (Jaguar, Panthère et Tigre ont connu des évolutions dans la gestion des images disques; sans parler de Puma et Guépard).
Attacher une image disque
Attache le disque en un nœud /dev/disk*
et monte le volume dans /Volumes/
. Il est possible d'attacher une image disque sans monter son volume en utilisant l'option -nomount
. D'autres options comme -nobrowse
ou -private
marqueront le volume comme n'étant pas utilisable par les applications (ainsi, le Finder ne l'affichera pas) ou ne notifieront pas le système de l'ajout du disque (pas d'indexation SpotLight).
hdiutil attach IMAGE
Démonter une image disque
Démonte un système de fichiers d'une image disque sans libérer ce dernier. Le nœud /dev/disk*
est toujours présent mais le système de fichiers n'est plus monté.
hdiutil umount /Volumes/IMAGE
Démonter et détacher une image disque
Démonter le système de fichiers; le nœud du disque logique est supprimé de /dev/disk*
,
hdiutil detach /Volumes/IMAGE
Créer une image disque grossissante
Créer une image disque de taille maximale 500 Go, avec un système de fichier en HFS+ journalisé et sensible à la casse :
- -size 500G : taille maximale de l'image
- -fs HFSX : système de fichiers HFS+ sensible à la casse
- -J : utilisation d'un journal pour le système de fichiers
- -type SPARSEBUNDLE : le type d'image disque
- -volname "Sauvegardes" : le nom du volume de l'image disque; il sera utilisé comme nom de point de montage par défaut dans
/Volumes/
hdiutil create -size 500G -fs HFSX -fsargs -J -type SPARSEBUNDLE -volname "Sauvegardes" Sauvegardes.sparsebundle
Optimiser la taille de l'image disque
Pour une image disque grossissante, il est possible de demander la récupération de l'espace non-utilisé dans les bandes, pour faire ramener sa taille à celle du volume des données qu'elle contient.
hdiutil compact IMAGE
Formater un volume en HFS
Il est tout à fait possible de formater un volume d'une image disque existante. Il suffit d'attacher l'image disque, et de travailler sur les partitions. On peut utiliser les options suivantes :
- -J : utilisation d'un journal pour le système de fichiers
- -s : le système de fichier sera sensible à la casse
- -v Données" : le nom du volume
newfs_hfs -J -s -v "Données" /dev/diskXXXXX
Connaître les opérations possibles sur les images disques
La commande hdiutil
ne se limite pas aux simples opérations de montage et démontage de volumes. Elle permet également de convertir, graver, segmenter et d'une façon générale d'effectuer toutes les opérations possibles sur les images disques. La commande en elle-même intègre une documentation extensive, et son manuel contient des exemples concrets.
hdiutil help
et plus précisément hdiutil help COMMAND
.
Références
Commentaires récents