Loop device
Unter unixoiden Systemen ist ein loop device (oder auch englisch loopback device ‚Schleifenschaltungsgerät‘)[1] ein virtuelles Blockgerät, das keinem physischen Gerät entspricht, sondern als zugrundeliegendes Volume eine Datei nutzt. Da der Betriebssystemkernel nur Dateisysteme einhängen (mounten) kann, die sich auf Blockgeräten befinden, werden Loop-Geräte in der Regel genutzt, um Dateisysteme aus Speicherabbildern einzubinden.
Nützlich ist dieses Verfahren überall dort, wo echte Datenträger simuliert werden sollen, z. B. weil die Benutzung physischer Geräte zu teuer, zu umständlich, zu langsam oder aus anderen Gründen nicht erwünscht ist.
Mithilfe von Loop-Geräten und spezieller Treiber können auch Dateisysteme transparent komprimiert oder verschlüsselt werden, z. B. mit cloop oder dm-crypt, wobei ein virtuelles Gerät, wie ein loop device, gem. dem Unix-Grundsatz „Alles ist eine Datei“ auch auf ein physisches Gerät abgestützt sein kann.
Beispiele
[Bearbeiten | Quelltext bearbeiten]Das Einhängen eines Festplattenabbilds in den Dateibaum erfordert im Prinzip zwei Schritte:
- Die Datei, die das Festplattenabbild enthält, wird mit einem Geräteknoten (device node) im Spezialverzeichnis /dev verknüpft (Kommando
losetup
). - Dieses spezielle Gerät (loop device) wird unterhalb eines Verzeichnisses in den Dateibaum eingehängt (Kommando
mount
).
Diese beiden Schritte können entweder getrennt erfolgen oder durch Angabe entsprechender Optionen mit einem einzigen Aufruf des Dienstprogrammes mount
gemeinsam durchgeführt werden. Der erste Schritt kann mit dem Kommando losetup
[2] unter Linux oder lofiadm
[3] unter SunOS ausgeführt werden. Wenn beispiel.img
eine normale Datei ist, die ein Abbild mit einem Dateisystem enthält, und /mnt/verzeichnis
ein Verzeichnis auf einem Linux-Computer ist, kann der Systemverwalter (Super user) folgende Kommandos ausführen:
losetup /dev/loop0 beispiel.img mount /dev/loop0 /mnt/verzeichnis
Das erste Kommando verknüpft den Loop-Geräteknoten /dev/loop0
mit der normalen Datei beispiel.img
. Das zweite Kommando hängt dieses Pseudogerät an der Stelle /mnt/verzeichnis
in den Dateibaum ein, so als wäre /dev/loop0
eine ganz normale Festplatte oder ein Festplattenabschnitt (Partition).
Das Dienstprogramm mount
ist in der Lage, die gesamte Prozedur in einem einzigen Schritt ausführen:
mount -o loop beispiel.img /mnt/verzeichnis
Ausgehängt werden kann das Gerät in beiden Fällen über den Befehl
umount /mnt/verzeichnis
Festplattenimages
[Bearbeiten | Quelltext bearbeiten]Bei Festplattenimages im Rohformat (raw format) handelt es sich in der Regel um eine Partitionierung nach dem MBR- oder GPT-Schema. D. h. vor der eigentlichen Partition, die man mounten möchte, befindet sich der Master boot record oder die GUID partition table. Um eine Partition innerhalb des Festplattenimages dennoch mounten zu können, muss somit dem Mount-Befehl ein Offset übergeben werden, an dem die Partition beginnt. Dieser Offset kann, sofern die Festplattengeometrie des Festplattenimages bekannt ist, mit der Formel Offset = Bytes pro Block · Blöcke pro Zylinder berechnet werden oder mit folgendem Befehl ausgegeben werden („hd.raw“ steht hierbei für die Festplattenimagedatei im Rohformat):
parted hd.raw unit B print
Dieser Offset wird dann für die entsprechende Partition unter der Spalte „Start“ in Bytes aufgelistet und kann nun dem Mount-Befehl übergeben werden.
Beispiel für einen Offset von 32256 Bytes:
mount -o loop,offset=32256 hd.raw /mnt/verzeichnis
Microsoft Windows
[Bearbeiten | Quelltext bearbeiten]Für Windows existieren z. B. das quelloffene WinCDEmu oder die proprietäre Freeware Daemon Tools. Diese emulieren ausschließlich CD- bzw. DVD- bzw. Blu-ray-Laufwerke und somit – anders als das loop device – keine beliebigen Massenspeicher, wie Festplatten oder USB-Sticks. Die Daten können allerdings in verschiedenen Image-Formaten vorliegen, etwa wie sie von verschiedenen Windows-Brennprogrammen erzeugt werden. Ab Windows 8 sind ISO-Dateien ohne zusätzliche Programme direkt einbindbar.
Die Freeware OSFMount kann auch Festplatten-Images (z. B. von Unix-dd) einbinden.[4] Ab Windows 7 kann Festplattenabbildern im Virtual-Hard-Disk-Format über die Datenträgerverwaltung ein Laufwerksbuchstabe zugewiesen werden. U. a. mit dem Hilfsprogramm VHD tool[5] können Rohdatenabbilder in das VHD-Format konvertiert werden.
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Weblinks
[Bearbeiten | Quelltext bearbeiten]- Mounting a disk image using the loop device aus dem Benutzerhandbuch zu Bochs
- OSFMount - Mount Raw Disk Images in Windows
Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Joachim Schröder, Tilo Gockel, Rüdiger Dillmann: Embedded Linux. Das Praxisbuch. 2009, ISBN 978-3-540-78619-1, S. 380.
- ↑ losetup manual page
- ↑ lofiadm, Sun System Administration Command manual ( des vom 31. Juli 2009 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ http://osforensics.com/tools/mount-disk-images.html
- ↑ http://code.msdn.microsoft.com/vhdtool