Losetup: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „= Umgebungsvariablen =“ durch „= Umgebung =“
 
(47 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''losetup''' Loop-Geräte einrichten und steuern
{{DISPLAYTITLE:losetup}}


== Übersicht ==
'''losetup''' ('''lo'''op device '''setup''') ermöglicht den Zugriff auf Dateisysteme in Dateien


=== Informationen erhalten===
== Loop-Devices ==
* Um auf ein Dateisystem zugreifen zu können, muss dieses auf einem [[Hardware:Blockgerät Blockgerät]] verfügbar sein
* Ein '''loop device''' ist ein virtuelles Geräte, das als zugrundeliegenden Speicher eine Datei nutzt  <!-- FIXME: Fuse -->
* Damit können Dateisystem-Abbilder in das [[Linux/Dateisystem]] eingebunden werden, die als Datei vorliegen.
 
== Beispiele ==
=== Einhängen eines Festplattenabbilds ===
# Die Datei, die das Festplattenabbild enthält, wird mit einer Gerätedatei (device node) in /dev verknüpft
# Dieses loop device kann mit [[Linux/Befehl:mount|mount]] in den Dateibaum eingehängt werden
 
Diese beiden Schritte können entweder getrennt erfolgen oder durch Angabe entsprechender Optionen mit einem einzigen Aufruf des Dienstprogrammes [[Linux/Befehl:mount]] gemeinsam durchgeführt werden.
 
Der erste Schritt kann mit dem Kommando '''losetup'''ausgeführt werden.
 
Wenn <code>beispiel.img</code> eine normale Datei ist, die ein Abbild mit einem Dateisystem enthält, und <code>/mnt/verzeichnis</code> ein Verzeichnis auf einem Linux-Computer ist, kann der Systemverwalter ([[Root-Konto|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 <code>/dev/loop0</code> mit der normalen Datei <code>beispiel.img</code>. Das zweite Kommando hängt dieses Pseudogerät an der Stelle <code>/mnt/verzeichnis</code> in den Dateibaum ein, so als wäre <code>/dev/loop0</code> eine ganz normale Festplatte oder ein Festplattenabschnitt ([[Partition (Informatik)|Partition]]).
 
Das Dienstprogramm <code>mount</code> 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
 
== Anwendung ==
 
=== Informationen erhalten ===
* Ohne Optionen werden alle Loop-Geräte angezeigt.
* Wird nur <u>Loop-Gerät</u> als Argument angegeben, wird dessen Status angezeigt.
  '''losetup''' [<u>Loop-Gerät</u>]
  '''losetup''' [<u>Loop-Gerät</u>]
  '''losetup''' '''-l''' ['''-a''']
  '''losetup''' '''-l''' ['''-a''']
Zeile 11: Zeile 41:
  '''losetup''' '''-d''' <u>Loop-Gerät</u> …
  '''losetup''' '''-d''' <u>Loop-Gerät</u> …


=== Alle zugehörigen Loop-Geräte abhängen ===
=== Alle zugehörigen Loop-Geräte aushängen ===
  '''losetup''' '''-D'''
  '''losetup''' '''-D'''


=== Ein Loop-Gerät einrichten ===
=== Ein Loop-Gerät einrichten ===
  '''losetup''' ['''-o''' <u>Versatz</u>] ['''--sizelimit''' <u>Größe</u>] ['''--sector-size''' <u>Größe</u>] ['''-Pr'''] ['''--show'''] '''-f'''|<u>Loop-Gerät</u> <u>Datei</u>
  '''losetup''' ['''-o''' <u>Versatz</u>] ['''--sizelimit''' <u>Größe</u>] ['''--sector-size''' <u>Größe</u>] ['''-Pr'''] ['''--show'''] '''-f'''|<u>Loop-Gerät</u> <u>Datei</u>
* Es ist möglich, mehrere unabhängige Loop-Geräte für die gleiche zugrunde liegende Datei anzulegen. '''Diese''' '''Art''' '''der''' '''Einrichtung''' '''kann''' '''gefährlich''' '''sein,''' '''kann''' '''Datenverlust,''' '''Beschädigungen''' '''und''' '''Überschreibungen''' '''verursachen.''' Verwenden Sie während der Einrichtung '''--nooverlap''' mit '''--find''', um dieses Problem zu vermeiden.


=== Größe eines Loop-Geräts ändern ===
=== Größe eines Loop-Geräts ändern ===
  '''losetup''' '''-c''' <u>Loop-Gerät</u>
  '''losetup''' '''-c''' <u>Loop-Gerät</u>


== Beschreibung ==
=== Nutzung eines Loop-Geräts ===
'''losetup'''  wird  zum  Zuweisen  von Loop-Geräten zu regulären Dateien oder blockorientierten Geräten, zum Abhängen von Loop-Geräten und zum  Abfragen  des  Status  eines  Loop-Gerätes verwendet.   Wenn nur das  Argument  <u>Loop-Gerät</u> angegeben  ist,  wird  der  Status  des korrespondierenden Loop-Geräts angezeigt. Falls keine Option angegeben  ist,  werden  alle Loop-Geräte angezeigt.
# '''dd if=/dev/zero of=[../../~/file.img ~/file.img] bs=1024k count=10'''
  # '''losetup --find --show [../../~/file.img ~/file.img]'''
  /dev/loop0
  # '''mkfs -t ext2 /dev/loop0'''
  # '''mount /dev/loop0 [../../mnt /mnt]'''


Beachten Sie,  dass das alte Ausgabeformat (d.h. '''losetup''' '''-a''') mit durch Kommata getrennten Zeichenketten als veraltet markiert wurde und nun das Ausgabeformat mit '''--list''' bevorzugt wird.
=== Feigabe eines Loop-Geräts ===
  # '''umount /dev/loop0'''
  # '''losetup --detach /dev/loop0'''


Es ist möglich,  mehrere unabhängige Loop-Geräte für die gleiche zugrunde liegende Datei anzulegen.  '''Diese'''  '''Art'''  '''der'''  '''Einrichtung'''  '''kann'''  '''gefährlich'''  '''sein,'''  '''kann'''  '''Datenverlust,''' '''Beschädigungen'''  '''und'''  '''Überschreibungen'''  '''verursachen.'''  Verwenden Sie während der Einrichtung '''--nooverlap''' mit '''--find''', um dieses Problem zu vermeiden.
=== Image verwenden ===
Imagedatei auf das Gerät loop0 legen
  losetup /dev/loop0 Imagedatei
Dateisystem einbinden
  mount /dev/loop0 Mountpunkt


== OPTIONEN ==
== Umgebung ==
Den Argumenten <u>Größe</u> und <u>Versatz</u> können  die  multiplikativen  Suffixe  KiB  (=1024),  MiB (=1024*1024)  und  so  weiter  für  GiB,  TiB,  PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000),  MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB.
LOOPDEV_DEBUG=all
 
* Debug-Ausgabe aktivieren
'''-a''', '''--all'''
zeigt  den  Status  aller  Loop-Geräte  an. Beachten Sie, dass gewöhnliche Benutzer
nicht auf alle Informationen zugreifen  können.  Siehe  auch  '''--list'''.  Das  frühere
Format (wie es ohne '''--list''' ausgegeben wird) ist veraltet.
 
'''-d''', '''--detach''' <u>Loop-Gerät</u> …
hängt  die  Datei  oder  das Gerät aus, das dem oder den angegebenen Loop-Gerät(en)
zugeordnet ist. Beachten Sie, dass der Kernel seit  Linux  v3.7  die  »lazy  device
destruction«  (lockere  Gerätezerstörung) verwendet. Der Abhängevorgang gibt keinen
EBUSY-Fehler mehr zurück, falls das Gerät aktiv vom System verwendet wird, aber  es
wird mit einer »autoclear«-Markierung versehen und später zerstört.
 
'''-D''', '''--detach-all'''
hängt alle zugehörigen Loop-Geräte ab.
 
'''-f''', '''--find''' [<u>Datei</u>]
sucht  nach  dem  ersten  ungenutzten Loop-Gerät. Wenn ein <u>Datei</u>-Argument vorhanden
ist, wird das gefundene Gerät als Loop-Gerät verwendet. Anderenfalls  wird  einfach
dessen Name ausgegeben.
 
'''--show''' zeigt den Namen des zugehörigen Loop-Geräts an, wenn die Option '''-f''' und das Argument
<u>Datei</u> vorhanden sind.
 
'''-L''', '''--nooverlap'''
prüft auf Konflikte zwischen Loop-Geräten, um die Situation zu vermeiden,  bei  der
die  gleiche  zugrunde liegende Datei von mehreren Loop-Geräten gemeinsam verwendet
wird. Wenn die Datei bereits von einem anderen Gerät verwendet wird, dann wird  das
Gerät  erneut  verwendet,  anstatt  ein neues zu einzurichten. Diese Option ist nur
zusammen mit '''--find''' sinnvoll.
 
'''-j''', '''--associated''' <u>Datei</u> ['''-o''' <u>Versatz</u>]
zeigt den Status aller Loop-Geräte an, die der angegebenen <u>Datei</u> zugeordnet sind.
 
'''-o''', '''--offset''' <u>Versatz</u>
verschiebt den Start der Daten um den angegebenen <u>Versatz</u> in Byte in der Datei oder
dem  angegebenen  Gerät.  Dem  <u>Versatz</u> dürfen multiplikative Suffixe folgen; siehe
oben.
 
'''--sizelimit''' <u>Größe</u>
setzt das Ende der Daten auf nicht mehr als die angegebene <u>Größe</u> in Byte  nach  dem
Anfang der Daten. Dem <u>Versatz</u> dürfen multiplikative Suffixe folgen; siehe oben.


'''-b''', '''--sector-size''' <u>Größe</u>
== Optionen ==
legt die logische Sektorengröße des Loop-Geräts in Bytes fest (seit Linux 4.14).
{|class="wikitable"
Die Option darf sowohl beim Erstellen neuer Loop-Geräte als auch als einzelner
|-
Befehl zum Ändern der Sektorengröße eines bereits existierenden Loop-Geräts
|'''-a''', '''--all''' || zeigt den Status aller Loop-Geräte an. Beachten Sie, dass gewöhnliche Benutzer nicht auf alle Informationen zugreifen können. Siehe auch '''--list'''. Das frühere Format (wie es ohne '''--list''' ausgegeben wird) ist veraltet.
verwendet werden.
|-
|'''-d''', '''--detach''' <u>Loop-Gerät</u> … || hängt die Datei oder das Gerät aus, das dem oder den angegebenen Loop-Gerät(en) zugeordnet ist. Beachten Sie, dass der Kernel seit Linux v3.7 die »lazy device destruction« (lockere Gerätezerstörung) verwendet. Der Abhängevorgang gibt keinen EBUSY-Fehler mehr zurück, falls das Gerät aktiv vom System verwendet wird, aber es wird mit einer »autoclear«-Markierung versehen und später zerstört.
|-
|'''-D''', '''--detach-all''' || hängt alle zugehörigen Loop-Geräte ab.
|-
|'''-f''', '''--find''' [<u>Datei</u>] || sucht nach dem ersten ungenutzten Loop-Gerät. Wenn ein <u>Datei</u>-Argument vorhanden ist, wird das gefundene Gerät als Loop-Gerät verwendet. Anderenfalls wird einfach dessen Name ausgegeben.
|-
|'''--show'''  || zeigt den Namen des zugehörigen Loop-Geräts an, wenn die Option '''-f''' und das Argument <u>Datei</u> vorhanden sind.
|-
|'''-L''', '''--nooverlap''' || prüft auf Konflikte zwischen Loop-Geräten, um die Situation zu vermeiden, bei der die gleiche zugrunde liegende Datei von mehreren Loop-Geräten gemeinsam verwendet wird. Wenn die Datei bereits von einem anderen Gerät verwendet wird, dann wird das Gerät erneut verwendet, anstatt ein neues zu einzurichten. Diese Option ist nur zusammen mit '''--find''' sinnvoll.
|-
|'''-j''', '''--associated''' <u>Datei</u> '''-o''' <u>Versatz</u> || zeigt den Status aller Loop-Geräte an, die der angegebenen <u>Datei</u> zugeordnet sind.
|-
|'''-o''', '''--offset''' <u>Versatz</u> || verschiebt den Start der Daten um den angegebenen <u>Versatz</u> in Byte in der Datei oder dem angegebenen Gerät. Dem <u>Versatz</u> dürfen multiplikative Suffixe folgen; siehe oben.
|-
|'''--sizelimit''' <u>Größe</u>  || setzt das Ende der Daten auf nicht mehr als die angegebene <u>Größe</u> in Byte nach dem Anfang der Daten. Dem <u>Versatz</u> dürfen multiplikative Suffixe folgen; siehe oben.
|-
|'''-b''', '''--sector-size''' <u>Größe</u> || legt die logische Sektorengröße des Loop-Geräts in Bytes fest (seit Linux 4.14). Die Option darf sowohl beim Erstellen neuer Loop-Geräte als auch als einzelner Befehl zum Ändern der Sektorengröße eines bereits existierenden Loop-Geräts verwendet werden.
|-
|'''-c''', '''--set-capacity''' <u>Loop-Gerät</u> || zwingt den Loop-Treiber, die Größe der Datei neu einzulesen, der das angegebene Loop-Gerät zugeordnet ist.
|-
|'''-P''', '''--partscan''' || zwingt den Kernel, die Partitionstabelle auf einem neu erstellten Loop-Gerät einzulesen. Beachten Sie, dass das Einlesen der Partitionstabelle von den Sektorengrößen abhängt. Die standardmäßige Sektorengröße ist 512 Byte, anderenfalls müssen Sie die Option '''--sector-size''' zusammen mit '''--partscan''' verwenden.
|-
|'''-r''', '''--read-only''' || richtet ein schreibgeschütztes Loop-Gerät ein.
|-
|'''--direct-io'''=on/off''' || aktiviert oder deaktiviert die direkten Ein-/Ausgaben für die zugrunde liegende Datei. Das optionale Argument kann entweder '''on''' oder '''off''' sein. Wird kein Argument angegeben, ist '''on''' die Vorgabe.
|-
|'''-v''', '''--verbose''' || aktiviert den ausführlichen Modus.
|-
|'''-l''', '''--list''' || Falls ein Loop-Gerät oder die Option '''-a''' angegeben ist, werden die Standardspalten für entweder das angegebene Loop-Gerät oder alle Loop-Geräte ausgegeben; die Vorgabe ist die Ausgabe von Informationen zu allen Geräten. Siehe auch '''--output''','''--noheadings''', '''--raw''' und '''--json'''.
|-
|'''-O''', '''--output''' <u>Spalte</u>[,<u>Spalte</u>] … || gibt an, welche Spalten mit '''--list''' ausgegeben werden sollen. Mit '''--help''' erhalten Sie eine Liste aller unterstützten Spalten.
|-
|'''--output-all''' || gibt alle verfügbaren Spalten aus.
|-
|'''-n''', '''--noheadings''' || zeigt bei der Ausgabe mit '''--list''' keine Überschriften an.
|-
|'''--raw''' || verwendet das Rohformat für die Ausgabe mit '''--list'''.
|-
|'''-J''', '''--json'''  || verwendet das JSON-Format für die Ausgabe mit '''--list'''.
|-
|'''-V''', '''--version''' || zeigt Versionsinformationen an und beendet das Programm.
|-
|'''-h''', '''--help''' || zeigt einen Hilfetext an und beendet das Programm.
|-
|}


'''-c''', '''--set-capacity''' <u>Loop-Gerät</u>
=== Multiplikatoren ===
zwingt den Loop-Treiber, die Größe der Datei neu  einzulesen,  der  das  angegebene
Den Argumenten <u>Größe</u> und <u>Versatz</u> können die multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB.
Loop-Gerät zugeordnet ist.
 
'''-P''', '''--partscan'''
zwingt  den  Kernel,  die  Partitionstabelle  auf  einem  neu erstellten Loop-Gerät
einzulesen.  Beachten  Sie,  dass  das  Einlesen  der  Partitionstabelle  von  den
Sektorengrößen abhängt. Die standardmäßige Sektorengröße ist 512 Byte, anderenfalls
müssen Sie die Option '''--sector-size''' zusammen mit '''--partscan''' verwenden.
 
'''-r''', '''--read-only'''
richtet ein schreibgeschütztes Loop-Gerät ein.
 
'''--direct-io'''['''<nowiki>=on</nowiki>'''|'''off''']
aktiviert oder deaktiviert die direkten Ein-/Ausgaben  für die  zugrunde  liegende
Datei.  Das  optionale  Argument kann entweder '''on''' oder '''off''' sein. Wird kein Argument
angegeben, ist '''on''' die Vorgabe.
 
'''-v''', '''--verbose'''
aktiviert den ausführlichen Modus.
 
'''-l''', '''--list'''
Falls ein Loop-Gerät oder die Option '''-a''' angegeben ist, werden  die  Standardspalten
für  entweder  das  angegebene  Loop-Gerät  oder alle  Loop-Geräte ausgegeben; die
Vorgabe ist die Ausgabe von Informationen zu allen Geräten.  Siehe  auch  '''--output''',
'''--noheadings''', '''--raw''' und '''--json'''.
 
'''-O''', '''--output''' <u>Spalte</u>[,<u>Spalte</u>] …
gibt  an,  welche  Spalten mit '''--list''' ausgegeben werden sollen. Mit '''--help''' erhalten
Sie eine Liste aller unterstützten Spalten.
 
'''--output-all'''
gibt alle verfügbaren Spalten aus.
 
'''-n''', '''--noheadings'''
zeigt bei der Ausgabe mit '''--list''' keine Überschriften an.
 
'''--raw'''  verwendet das Rohformat für die Ausgabe mit '''--list'''.
 
'''-J''', '''--json'''
verwendet das JSON-Format für die Ausgabe mit '''--list'''.
 
'''-V''', '''--version'''
zeigt Versionsinformationen an und beendet das Programm.
 
'''-h''', '''--help'''
zeigt einen Hilfetext an und beendet das Programm.
 
== Verschlüsselung ==
'''Cryptoloop''' '''wird''' '''zugunsten''' '''von''' '''dm-crypt''' '''nicht''' '''mehr''' '''unterstützt.''' '''Für''' '''weitere'''  '''Details'''  '''siehe''' [http://manpages.ubuntu.com/manpages/focal/de/man8/cryptsetup.8.html cryptsetup](8).'''


== Rückgabewert ==
== Rückgabewert ==
'''losetup''' gibt 0 im Erfolgsfall und einen von 0 verschiedenen Wert bei einem Fehlschlag zurück. Wenn '''losetup''' den Status eines Loop-Geräts anzeigt, wird 1 zurückgegeben, falls das Gerät   nicht eingerichtet ist und 2, falls ein Fehler aufgetreten ist, der die Statusermittlung des Geräts verhindert hat.
* '''losetup''' gibt 0 im Erfolgsfall und einen von 0 verschiedenen Wert bei einem Fehlschlag zurück.  
* Zeigt '''losetup''' den Status eines Loop-Geräts an, wird
** 1 zurückgegeben, falls das Gerät nicht eingerichtet ist und  
** 2, falls ein Fehler aufgetreten ist, der die Statusermittlung des Geräts verhindert hat.


== Dateien ==
== Dateien ==
<u>/dev/loop[0..N]</u>
<u>/dev/loop[0..N]</u>: Loop-Blockgeräte
Loop-Blockgeräte
<u>/dev/loop-control</u>: Loop-Steuergerät


<u>/dev/loop-control</u>
== Links ==
Loop-Steuergerät
=== Interne Links ===
# TODO


== Beispiel ==
=== Weblinks ===
Die folgenden Befehle können als Beispiel für  die  Nutzung  eines  Loop-Geräts  verwendet werden.
# [http://bochs.sourceforge.net/doc/docbook/user/loop-device-usage.html Mounting a disk image using the loop device] aus dem Benutzerhandbuch zu [[Bochs]]
# dd if=/dev/zero of=[../../~/file.img ~/file.img] bs=1024k count=10
# [http://osforensics.com/tools/mount-disk-images.html OSFMount - Mount Raw Disk Images in Windows]
# losetup --find --show [../../~/file.img ~/file.img]
# [https://www.kernel.org/pub/linux/utils/util-linux/ util-linux]
/dev/loop0
# mkfs -t ext2 /dev/loop0
# mount /dev/loop0 [../../mnt /mnt]
# umount /dev/loop0
# losetup --detach /dev/loop0
 
== Umgebungsvariablen ==
LOOPDEV_DEBUG=all
*aktiviert die Debug-Ausgabe.
 
== AUTOREN ==
      Karel  Zak  <[mailto:kzak@redhat.com kzak@redhat.com]>,  basierend  auf  der  Originalversion  von  Theodore  Ts'o
      <[mailto:tytso@athena.mit.edu tytso@athena.mit.edu]>
 
== VERFÜGBARKEIT ==
      Der    Befehl    '''losetup'''    ist    Teil    des    Pakets    util-linux,    welches    auf https://www.kernel.org/pub/linux/utils/util-linux/ verfügbar ist.
 
== ÜBERSETZUNG ==
      Die    deutsche  Übersetzung  dieser  Handbuchseite  wurde  von  Mario  Blättermann <[mailto:mario.blaettermann@gmail.com mario.blaettermann@gmail.com]> erstellt.
 
      Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License Version  3  oder  neuer  bezüglich  der  Copyright-Bedingungen.  Es  wird  KEINE  HAFTUNG übernommen.
 
      Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <[mailto:debian-l10n-german@lists.debian.org debian-l10n-german@lists.debian.org]>.
 
---
 
Ein vorhandenes Image verwenden
losetup /dev/loop0 Imagedatei
wird die angegebene Imagedatei auf das Gerät loop0 gelegt. Mit
mount /dev/loop0 Mountpunkt
lässt sich das Dateisystem dann einbinden.


[[Kategorie:Netzwerkarchitektur]]
[[Kategorie:Linux/Storage]]
[[Kategorie:Dateisystem]]
[[Kategorie:Linux/Befehl]]
{{DEFAULTSORT:losetup}}

Aktuelle Version vom 8. September 2024, 10:28 Uhr


losetup (loop device setup) ermöglicht den Zugriff auf Dateisysteme in Dateien

Loop-Devices

  • Um auf ein Dateisystem zugreifen zu können, muss dieses auf einem Hardware:Blockgerät Blockgerät verfügbar sein
  • Ein loop device ist ein virtuelles Geräte, das als zugrundeliegenden Speicher eine Datei nutzt
  • Damit können Dateisystem-Abbilder in das Linux/Dateisystem eingebunden werden, die als Datei vorliegen.

Beispiele

Einhängen eines Festplattenabbilds

  1. Die Datei, die das Festplattenabbild enthält, wird mit einer Gerätedatei (device node) in /dev verknüpft
  2. Dieses loop device kann mit mount in den Dateibaum eingehängt werden

Diese beiden Schritte können entweder getrennt erfolgen oder durch Angabe entsprechender Optionen mit einem einzigen Aufruf des Dienstprogrammes Linux/Befehl:mount gemeinsam durchgeführt werden.

Der erste Schritt kann mit dem Kommando losetupausgefü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

Anwendung

Informationen erhalten

  • Ohne Optionen werden alle Loop-Geräte angezeigt.
  • Wird nur Loop-Gerät als Argument angegeben, wird dessen Status angezeigt.
losetup [Loop-Gerät]
losetup -l [-a]
losetup -j Datei [-o Versatz]

Ein Loop-Gerät abhängen

losetup -d Loop-Gerät

Alle zugehörigen Loop-Geräte aushängen

losetup -D

Ein Loop-Gerät einrichten

losetup [-o Versatz] [--sizelimit Größe] [--sector-size Größe] [-Pr] [--show] -f|Loop-Gerät Datei
  • Es ist möglich, mehrere unabhängige Loop-Geräte für die gleiche zugrunde liegende Datei anzulegen. Diese Art der Einrichtung kann gefährlich sein, kann Datenverlust, Beschädigungen und Überschreibungen verursachen. Verwenden Sie während der Einrichtung --nooverlap mit --find, um dieses Problem zu vermeiden.

Größe eines Loop-Geräts ändern

losetup -c Loop-Gerät

Nutzung eines Loop-Geräts

# dd if=/dev/zero of=[../../~/file.img ~/file.img] bs=1024k count=10
# losetup --find --show [../../~/file.img ~/file.img]
/dev/loop0
# mkfs -t ext2 /dev/loop0
# mount /dev/loop0 [../../mnt /mnt]

Feigabe eines Loop-Geräts

# umount /dev/loop0
# losetup --detach /dev/loop0

Image verwenden

Imagedatei auf das Gerät loop0 legen

losetup /dev/loop0 Imagedatei

Dateisystem einbinden

mount /dev/loop0 Mountpunkt

Umgebung

LOOPDEV_DEBUG=all

  • Debug-Ausgabe aktivieren

Optionen

-a, --all zeigt den Status aller Loop-Geräte an. Beachten Sie, dass gewöhnliche Benutzer nicht auf alle Informationen zugreifen können. Siehe auch --list. Das frühere Format (wie es ohne --list ausgegeben wird) ist veraltet.
-d, --detach Loop-Gerät hängt die Datei oder das Gerät aus, das dem oder den angegebenen Loop-Gerät(en) zugeordnet ist. Beachten Sie, dass der Kernel seit Linux v3.7 die »lazy device destruction« (lockere Gerätezerstörung) verwendet. Der Abhängevorgang gibt keinen EBUSY-Fehler mehr zurück, falls das Gerät aktiv vom System verwendet wird, aber es wird mit einer »autoclear«-Markierung versehen und später zerstört.
-D, --detach-all hängt alle zugehörigen Loop-Geräte ab.
-f, --find [Datei] sucht nach dem ersten ungenutzten Loop-Gerät. Wenn ein Datei-Argument vorhanden ist, wird das gefundene Gerät als Loop-Gerät verwendet. Anderenfalls wird einfach dessen Name ausgegeben.
--show zeigt den Namen des zugehörigen Loop-Geräts an, wenn die Option -f und das Argument Datei vorhanden sind.
-L, --nooverlap prüft auf Konflikte zwischen Loop-Geräten, um die Situation zu vermeiden, bei der die gleiche zugrunde liegende Datei von mehreren Loop-Geräten gemeinsam verwendet wird. Wenn die Datei bereits von einem anderen Gerät verwendet wird, dann wird das Gerät erneut verwendet, anstatt ein neues zu einzurichten. Diese Option ist nur zusammen mit --find sinnvoll.
-j, --associated Datei -o Versatz zeigt den Status aller Loop-Geräte an, die der angegebenen Datei zugeordnet sind.
-o, --offset Versatz verschiebt den Start der Daten um den angegebenen Versatz in Byte in der Datei oder dem angegebenen Gerät. Dem Versatz dürfen multiplikative Suffixe folgen; siehe oben.
--sizelimit Größe setzt das Ende der Daten auf nicht mehr als die angegebene Größe in Byte nach dem Anfang der Daten. Dem Versatz dürfen multiplikative Suffixe folgen; siehe oben.
-b, --sector-size Größe legt die logische Sektorengröße des Loop-Geräts in Bytes fest (seit Linux 4.14). Die Option darf sowohl beim Erstellen neuer Loop-Geräte als auch als einzelner Befehl zum Ändern der Sektorengröße eines bereits existierenden Loop-Geräts verwendet werden.
-c, --set-capacity Loop-Gerät zwingt den Loop-Treiber, die Größe der Datei neu einzulesen, der das angegebene Loop-Gerät zugeordnet ist.
-P, --partscan zwingt den Kernel, die Partitionstabelle auf einem neu erstellten Loop-Gerät einzulesen. Beachten Sie, dass das Einlesen der Partitionstabelle von den Sektorengrößen abhängt. Die standardmäßige Sektorengröße ist 512 Byte, anderenfalls müssen Sie die Option --sector-size zusammen mit --partscan verwenden.
-r, --read-only richtet ein schreibgeschütztes Loop-Gerät ein.
--direct-io=on/off aktiviert oder deaktiviert die direkten Ein-/Ausgaben für die zugrunde liegende Datei. Das optionale Argument kann entweder on oder off sein. Wird kein Argument angegeben, ist on die Vorgabe.
-v, --verbose aktiviert den ausführlichen Modus.
-l, --list Falls ein Loop-Gerät oder die Option -a angegeben ist, werden die Standardspalten für entweder das angegebene Loop-Gerät oder alle Loop-Geräte ausgegeben; die Vorgabe ist die Ausgabe von Informationen zu allen Geräten. Siehe auch --output,--noheadings, --raw und --json.
-O, --output Spalte[,Spalte] … gibt an, welche Spalten mit --list ausgegeben werden sollen. Mit --help erhalten Sie eine Liste aller unterstützten Spalten.
--output-all gibt alle verfügbaren Spalten aus.
-n, --noheadings zeigt bei der Ausgabe mit --list keine Überschriften an.
--raw verwendet das Rohformat für die Ausgabe mit --list.
-J, --json verwendet das JSON-Format für die Ausgabe mit --list.
-V, --version zeigt Versionsinformationen an und beendet das Programm.
-h, --help zeigt einen Hilfetext an und beendet das Programm.

Multiplikatoren

Den Argumenten Größe und Versatz können die multiplikativen Suffixe KiB (=1024), MiB (=1024*1024) und so weiter für GiB, TiB, PiB, EiB, ZiB und YiB folgen (das »iB« ist optional, zum Beispiel ist »K« gleichbedeutend mit »KiB«) oder die Suffixe KB (=1000), MB (=1000*1000) und so weiter für GB, TB, PB, EB, ZB und YB.

Rückgabewert

  • losetup gibt 0 im Erfolgsfall und einen von 0 verschiedenen Wert bei einem Fehlschlag zurück.
  • Zeigt losetup den Status eines Loop-Geräts an, wird
    • 1 zurückgegeben, falls das Gerät nicht eingerichtet ist und
    • 2, falls ein Fehler aufgetreten ist, der die Statusermittlung des Geräts verhindert hat.

Dateien

/dev/loop[0..N]: Loop-Blockgeräte
/dev/loop-control: Loop-Steuergerät

Links

Interne Links

  1. TODO

Weblinks

  1. Mounting a disk image using the loop device aus dem Benutzerhandbuch zu Bochs
  2. OSFMount - Mount Raw Disk Images in Windows
  3. util-linux