Hdiutil
Mit dem Kommandozeilen-Tool hdiutil können Disk-Images erstellt, bearbeitet und verwendet werden. Für die grundlegenden Anwendungswzecke existiert als graphisches Frondend das Festplatten-Hilfsprogramm, für weitergehende und umfangreichere Operationen bietet sich der Weg über das Terminal an.
In Mac OS X Versionen vor 10.3 existierte für die Erstellung Nutzung von DiskImages noch das Hilfsprogramm "DiskCopy.app", dessen Funktionen jedoch mit Version 10.3 auf das Festplatten-Dienstprogramm (Disk Utility.app) und eine neue Hintergrundanwendung namens "DiskImageMounter.app" (zu finden unter /System/Library/CoreServices/") augfgeteilt wurden.
Weitere Informationen gibt es auch in der entsprechenden manpage von hdiutil.
Syntax[edit]
Die grundlegende Syntax von hdiutil ist
hdiutil <AKTION> [OPTIONEN]
wobei eine Aktion z.B. das Erstellen eines neuen oder das Vergrößern eines existierenden Images sein kann. Mit verschiedenen Optionen lässt sich dabei die Funktionsweise beeinflussen
Aktionen[edit]
Im Folgenden eine Liste aller möglichen Aktionen mit den zugehörigen Minimalangaben. Weitere Optionen zu den jeweiligen Kommandos sind über die Aktion help zu erreichen und stehen in der manpage.
Aktion | Funktion |
---|---|
help | Zeigt den Hilfetext von hdiutil an |
help AKTION -help | Zeigt den die zur angegebenen Aktion gültigen Optionen an |
attach image | Registriert das angegebene Image im System als Gerätedatei, z.B. "/dev/disk1" (Synonym: mount) |
detach devicename | Entfernt ein mit attach oder mount eingebundenes Disk Image (Synonym: eject) |
create groesse oder image | Erstellt ein Image mit der gegebenen Größe oder aus einer angegebenen Imagedatei |
convert image -format -o zielimage | Wandelt das Format einer gegeben Imagedatei in ein anderes um und speichert diese in einer Zieldatei (siehe dmg Images konvertieren). |
makehybrid -o quellimage | Ermöglicht mit Hilfe des DiscRecording Frameworks die Erstellung eines hybriden Dateisystems (Mac/PC) als schreibgeschütztes Disk-Image. Die zu verwendenden Dateisysteme (iso und/oder hfs) können als Optionen angegeben werden.
Angaben wie [yes|no] bedeuten dabei, dass entweder yes oder no angegeben werden kann. |
compact image | Entfernt nicht benutzte Bereiche aus einem sog. "SPARSE" Image (das sind Images, deren Größe sich dem Inhalt dynamisch anpasst. Sie wachsen also mit). |
info | Zeigt Informationen an über das DiskImages.framework, die verwendeten Treiber und alle aktuell eingebundenen (gemounteten) Images. |
load | Ermöglicht das manuelle Laden des Disk Image Treibers. Er wird benötigt, um Disk Images überhaupt benutzen zu können. Das erfolgt üblicherweise automatisch, seit 10.2 wird der Treiber auch wieder automatisch entladen, sobald das letzte eingebundene Image ausgeworfen wird. |
checksum image -type imagetyp | Überprüft die Prüfsumme (checksum) eines Images, um eventuelle Fehler zu erkennen (erfolgt standardmäßig immer beim Einbinden von Imagedateien, die sich auf dem lokalen System befinden - also nicht auf Windows- oder AFS-Freigaben) |
unflatten image | (?) |
flatten image | (?) |
hfsanalyze | Gibt Informationen über ein vorhandenes HFS oder HFS+ Dateisystem einer Imagedatei aus. |
imageinfo | gibt verschiedenste Informationen über ein Disk Image aus |
mount | siehe attach |
mountvol devicename | Bindet ein Dateisystem (z.B. /dev/disk1) als Disk-Image ein, ähnlich dem Befehl "diskutil mount". |
unmount volume | entlädt ein mit mountvol eingebundenes Dateisystem. |
plugins | Gibt Informationen über die verschiedenen PlugIns des DiskImage Frameworks aus, über die selbiges funktionell erweitert werden kann. |
-no|-query] image | (De)Aktivierung des Postprocessing eines Images, z.B. nach dem Herunterladen aus dem Internet. Beim ersten Aktivieren des Images wird dadurch der Inhalt des Images in einen gleichnamigen Ordner im selben Verzeichnis kopiert und die Imagedatei wandert in den Papierkorb. |
resize groesse image | Ermöglicht es, die Größe eines Images zu verändern, um sie beispielsweise anschließend mit "hdiutil burn" auf CD oder DVD schreiben zu können. |
segment | Teilt ein Disk Image in mehrere Teile auf, um beispielsweise große Imagedateien zum Download bereitzustellen. |
pmap quellimage | Zeigt die Partitionstabelle eines Disk Images an |
burn image | Disk Images mit Hilfe des DiscRecording Frameworks auf CD/DVD brennen |
Das Ausgabeformat vieler Aktionen lässt sich mit Hilfe folgender Parameter entsprechend verändern, beispielsweise werden bei folgendem Kommando die Informationen als XML-Plist ausgegeben, was besonders für Mac-/iOS-Entwickler sehr praktisch ist:
hdiutil imageinfo ./MyDiskImage.dmg -plist
Optionen[edit]
Eine vollständige Liste aller möglichen Optionen würden den Rahmen des Artikels hier sprengen, deswegen sei an dieser Stelle auf die manpage von hdiutil verwiesen.
Beispiele[edit]
erstellen[edit]
.dmg Image (HFS+)[edit]
hdiutil create -volname MeinBackup -srcfolder ./meineWichtigenDaten/ ./backup.dmg
Falls im Volumenamen Leerzeichen vorkommen, muss der Name in doppelte Hochkommata (") eingeschlossen werden.
ISO-Image[edit]
hdiutil create -format UDTO -srcfolder ./meineWichtigenDaten/ ./backup.dmg
für Windows lesbares Image[edit]
Dazu wird erst - wie oben beschrieben - ein ganz normales .dmg Image erstellt, das anschließend konvertiert wird:
hdiutil makehybrid -iso -joliet -o ~/Desktop/file.iso ~/Desktop/file.dmg hdiutil makehybrid -iso -joliet -o ~/Desktop/file.iso /Volumes/Disc
mit den folgenden Optionen können noch Volume-Namen festgelegt werden:
-joliet-volume-name MeineDaten -iso-volume-name MeineDaten
Video-DVD-Image aus VIDEO_TS-Verzeichnis erzeugen[edit]
Um aus einem VIDEO_TS Verzeichnis ein .ISO Image für das Brennen auf eine DVD zu erstellen, ist folgendes zu tun:
- VIDEO_TS Verzeichnis in ein Unterverzeichnis (z.B. MY_DVD) verschieben
- im Terminal in dieses Verzeichnis wechseln und folgendes Kommando eingeben:
hdiutil makehybrid -udf -udf-volume-name "<DVD-NAME>" -o <FILENAME>.iso ./
<DVD_NAME> und <FILENAME> sind entsprechend zu ersetzen
Allgemein[edit]
hdiutil create -type <UDIF|SPARSE> -fs <HFS+|HFS+J|HFSX|HFS|MS-DOS|UFS> -format <UDZO|UDRO|UDRW|UDTO|UDSP|...> -srcfolder<quelle> -volname <name> <image>
Hybrid-Image[edit]
hdiutil makehybrid ...
bearbeiten[edit]
- resize
- flatten/unflatten
- segment
- compact (für sparse images)
- chpass
überprüfen[edit]
- verify
- imageinfo
- hfsanalyze
- checksum
- info
- pmap
Freien Speicher freigeben[edit]
Um bei mitwachsenden Images (sog. "Sparse Images", Dateiendung ".sparseimage") freien Speicher wieder freizugeben und somit deren Größe zu reduzieren, ist im Terminal folgende Anweisung zu verwenden:
hdiutil compact image.sparsebundle
Wenn hdiutil die Anweisung mit der Meldung "... ist zeitweilig nicht verfügbar" quittiert, ist das Image höchstwahrscheinlich gerade gemountet.
Disk Images konvertieren[edit]
Mit Hilfe von hdiutil lassen sich Disk Images auch konvertieren, um sie beispielsweise auf einem PC weiterverwenden zu können, hier im Beispiel wird ein .ISO Image in ein .img Image konvertiert (z.B. zum Wiederherstellen auf einen USB-Stick):
hdiutil convert -format UDRW -o ziel.img quelle.iso
Mehr Informationen dazu gibt es im Artikel "dmg Images konvertieren".
Disk Images brennnen[edit]
Disk Images lassen sich ganz einfach mit dem folgenden Befehl brennen:
hdiutil burn DiskImage.dmg
Optionen[edit]
Die wichtigsten Optionen sind dabei:
Option | Funktion |
---|---|
-speed | Angabe der Brenngeschwindigkeit, z.B. 4, 16 oder max |
-device | Angabe einer Gerätedatei über den OpenFirmware Pfad, z.B. hd1: oder dvd: |
-list | Listet alle im System verfügbaren Brenner auf (für die Verwendung von -device) |
-testburn | Nur eine Simulation durchführen |
-sizequery | Nur den auf der CD/DVD benötigten Platz berechnen (kann durch ein anderes Dateisystem vom Platzbedarf auf der Festplatte variieren) |
-noeject | CD/DVD nach dem Brennen nicht auswerfen |
-noverifyburn | Medium nach dem Brennen nicht überprüfen |
-forceclose | Medium nach dem Brennen abschließen |
-optimizeimage | Disk Image für das brennen auf CD/DVD optimieren (bzw. für Zugriffe auf CD/DVD) |
-nounderrun | Buffer Underrun Schutz ausschalten |
Mehr Optionen erhält man durch die Eingabe von
hdiutil burn -help
DVD/CD-RW löschen[edit]
Wiederbeschreibbare Rohlinge lassen sich mit dem hdiutil auch wahlweise schnell oder volständig löschen, und zwar mit Hilfe von
hdiutil burn -erase
oder
hdiutil burn -fullerase
Images verwenden[edit]
- aktivieren (attach / mountvol)
- Deaktivieren (detach / unmount)
Hinweise[edit]
Gerätenamen von CD-/DVD-Laufwerken[edit]
Die Gerätenamen (/dev/xyz) von diesen Laufwerken werden dynamisch erzeugt, und zwar in der Reihenfolge, in der sie beim Systemstart eingebunden werden. Im Normalfall ist also das (erste) interne CD-/DVD-Laufwerk ...
/dev/rdisk0
und alle folgenden CD-/DVD-/BD-/Floppy-Laufwerke ...
/dev/rdisk1 /dev/rdisk2 ... /dev/rdiskN
Weitere Informationen[edit]
Früher (bis Mac OS 10.2) erfolgte der Zugriff auf HDI Disk Images über die beiden Tools hdid und disktool, die mittlerweile jedoch nur noch aus Kompatibilitätsgründen verwendet werden. Anstatt dessen wird nun von hdid nur noch das entsprechende Framework aufgerufen, für die übrigen Funktionen und den Zugriff durch den Benutzer ist das Programm hdiutil zu verwenden.
Manpages:
weitere Manpages:
- hdiutil für die Nutzung von .dmg Images
- drutil für die Verwendung von CD/DVD Brennern (verwendet das DiscRecording framework)
Kurztipps:
Sonstiges:
- dmgCreator - Open Source Programm zum Erzeugen von Disk Images, incl. Hintergrundbild, Lizenztexten uvm.
- Ubuntu: How to create a bootable USB stick on OS X