BEZEICHNUNG¶
losetup - Loop-Geräte einrichten und steuern
ÜBERSICHT¶
Ein Loop-Gerät einrichten:
losetup [Optionen] -f|Loop-Gerät
Datei
Informationen erhalten:
losetup [-l] [-a|Loop-Geät]
losetup -j Datei [-o
Versatz]
Größe eines Loop-Geräts neu kalibrieren:
losetup -c Loop-Gerät
Loop-Geräte abhängen:
losetup -d Loop-Gerät ...
losetup -D
Loop-Geräte aus der Auflistung ausblenden:
losetup --remove Loop-Gerät
…
BESCHREIBUNG¶
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
Loop-Gerät angegeben ist, wird der Status des
korrespondierenden Loop-Geräts angezeigt. Falls keine Option
angegeben ist, werden alle Loop-Geräte angezeigt.
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.
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.
Die Einrichtung des Loop−Geräts ist keine atomare
Aktion, wenn sie zusammen mit --find verwendet wird, und
losetup schützt diese Aktion nicht durch eine Sperre. Die
Anzahl der Versuche ist intern auf maximal 16 beschränkt. Es wird
empfohlen, beispielsweise flock(1) zu verwenden, um eine Kollision in
stark parallelisierten Anwendungsfällen zu verwenden.
OPTIONEN¶
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.
-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. Selbst wenn das Gerät nicht verwendet wird, kann das
Loop-Gerät später zerstört werden. Falls Sie auf eine
vollständige Entfernung des Loop-Geräts warten müssen,
rufen Sie udevadm settle nach losetup auf.
-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.
--loop-ref Zeichenkette
Legt die Referenzzeichenkette fest. Die
abwärtskompatible Standardeinstellung ist die Verwendung des
Dateinamens der Hintergrunddatei als Referenz im Loop-Setup-IOCTL (auch
bekannt als lo_file_name). Diese Option setzt dieses Standardverhalten
außer Kraft und setzt die Referenz auf die Zeichenkette. Die
Referenz kann von udevd in /dev/loop/by-ref verwendet werden. Der Linux-Kernel
verwendet die Referenz überhaupt nicht; sie kann jedoch von einigen
älteren Dienstprogrammen verwendet werden, die die Hintergrunddatei
nicht aus dem Sysfs lesen können. Die Referenz ist nur für den
Root-Benutzer lesbar (siehe --output +REF) und ist auf 64 Bytes
begrenzt.
--sizelimit Größe
setzt das Ende der Daten auf nicht mehr als die
angegebene Größe in Byte nach dem Anfang der Daten. Der
Größe 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 den direkten E/A für
die Sicherungsdatei. Die Standardeinstellung ist off.Mit
--direct-io oder --direct-io=on wird der direkte E/A aktiviert.
Mit --direct-io=off kann er jedoch explizit deaktiviert werden.
-l, --list
gibt, falls ein Loop−Gerät oder die Option
-a angegeben ist, die Standardspalten für entweder das
angegebene Loop-Gerät oder alle Loop-Geräte aus; 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.
--remove Loop-Gerät …
entfernt das oder die angegebene(n) Loop-Geräte.
Das Loop-Gerät darf nicht in Benutzung sein (d.h. keiner
Sicherungsdatei zugeordnet sein). Diese Option entfernt den
Geräteknoten aus dem System. In den meisten Fällen ist
--detach für den normalen Gebrauch ausreichend. Siehe den
Abschnitt LEBENSZYKLUS VON LOOP-GERÄTEN weiter unten.
-h, --help
zeigt einen Hilfetext an und beendet das Programm.
-V, --version
zeigt Versionsinformationen an und beendet das
Programm.
LEBENSZYKLKUS VON LOOP-GERÄTEN¶
Loop-Geräte durchlaufen während ihres Lebenszyklus
mehrere Status:
Erzeugung
Wenn losetup ein Loop-Gerät mit einer
zugrundeliegenden Datei verknüpft, wird der Geräteknoten (zum
Beispiel /dev/loop0) automatisch erstellt, falls er noch nicht
existiert. Dies geschieht bei Bedarf, wenn Sie Optionen wie -f
verwenden oder ein Loop-Gerät explizit angeben. Das Gerät wird
mithilfe des IOCTL-Befehls LOOP_CTL_ADD erstellt.
Abhängung
Die Option -d (--detach) trennt die
zugrundeliegende Datei vom Loop-Gerät mithilfe des IOCTL-Befehls
LOOP_CLR_FD. Nach der Trennung verbleibt der Loop-Geräteknoten
in /dev und kann für eine andere zugrundeliegende Datei
wiederverwendet werden. Verwenden Sie lsblk -a, um alle
Loop-Geräteknoten, einschließlich der ungenutzten,
anzuzeigen.
Entfernung
Die Option --remove entfernt den
Loop-Geräteknoten vollständig aus dem System mithilfe des
IOCTL-Befehls LOOP_CTL_REMOVE. Das Gerät muss zuvor getrennt
werden (das heißt, keiner Datei zugeordnet sein). Nach der Entfernung
verschwindet der Geräteknoten aus dem Verzeichnis /dev.
VERSCHLÜSSELUNG¶
Cryptoloop wird zugunsten von dm-crypt nicht mehr
unterstützt. Für weitere Details siehe
cryptsetup(8).
EXIT-STATUS¶
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.
ANMERKUNGEN¶
Seit Version 2.37 verwendet losetup das Ioctl
LOOP_CONFIGURE, um ein neues Loop-Gerät mit einem einzigen
Ioctl-Aufruf einzurichten. Die alten Versionen verwenden die Ioctls
LOOP_SET_FD und LOOP_SET_STATUS64, um das gleiche zu
erreichen.
UMGEBUNGSVARIABLEN¶
LOOPDEV_DEBUG=all
aktiviert die Debug-Ausgabe.
LIBSMARTCOLS_DEBUG=all
aktiviert die Debug-Ausgabe für
libsmartcols.
LIBSMARTCOLS_DEBUG_PADDING=on
verwendet sichtbare Auffüllzeichen.
DATEIEN¶
/dev/loop[0..N]
Loop-Blockgeräte
/dev/loop-control
Loop-Steuergerät
BEISPIEL¶
Die folgenden Befehle können als Beispiel für die
Nutzung eines Loop-Geräts verwendet werden.
# dd if=/dev/zero of=~/file.img bs=1024k count=10
# losetup --find --show ~/file.img
/dev/loop0
# mkfs -t ext2 /dev/loop0
# mount /dev/loop0 /mnt
...
# umount /dev/loop0
# losetup --detach /dev/loop0
AUTOREN¶
Karel Zak <kzak@redhat.com>, basierend auf der
Originalversion von Theodore Ts’o
<tytso@athena.mit.edu>.