NAMN¶
losetup - ställa in och styra loop-enheter
SYNOPSIS¶
Ställ in en loop-enhet:
losetup [flaggor] -f|loopenh fil
Hämta information:
losetup [-l] [-a|loopenh]
losetup -j fil [-o offset]
Kalibrera om en loop-enhets storlek:
losetup -c loopdev
Lösgör loop-enheter:
losetup -d loopdev ...
losetup -D
Förhindra att loop-enheter listas:
losetup --remove loopenh ...
BESKRIVNING¶
losetup används för att associera
loop-enheter med vanliga filer eller blockenheter, för att koppla
bort loop-enheter och för att fråga om status för en
loop-enhet. Om endast argumentet loopdev anges visas statusen
för motsvarande loop-enhet. Om ingen flagga anges visas alla
loop-enheter.
Observera att det gamla utmatningsformatet (dvs. losetup
-a) med kommaseparerade strängar inte längre
används till förmån för utmatningsformatet
--list.
Det går att skapa flera oberoende loop-enheter för
samma underliggande fil. Denna konfiguration kan vara farlig och orsaka
dataförlust, datakorruption och överskrivningar.
Använd --nooverlap med --find vid konfigurationen
för att undvika problemet.
Loop device setup är inte en atomär operation
när den används med --find, och losetup skyddar
inte denna operation med något lås. Antalet
försök är internt begränsat till maximalt 16. Vi
rekommenderar att du använder t.ex. flock(1) för att
undvika kollisioner i mycket parallella användningsfall.
FLAGGOR¶
Argumenten storlek och offset kan följas av
de multiplikativa suffixen KiB (=1024), MiB (=1024*1024), och så
vidare för GiB, TiB, PiB, EiB, ZiB och YiB (iB är valfritt,
t.ex. har "K" samma betydelse som "KiB") eller suffixen
KB (=1000), MB (=1000*1000), och så vidare för GB, TB, PB, EB,
ZB och YB.
-a, --all
Visa status för alla loop-enheter. Observera att
all information inte är tillgänglig för användare
som inte är root. Se även --list. Det gamla
utdataformatet (som skrivs ut utan --list) är
föråldrat.
-d, --detach loopdev...
Avlägsna filen eller enheten som är
associerad med den eller de angivna loop-enheterna. Observera att sedan Linux
v3.7 använder kärnan "lazy device destruction".
Detach-operationen returnerar inte EBUSY-felet längre om enheten
används aktivt av systemet, men den är markerad med
autoclear-flaggan och förstörs senare. Även om enheten
inte används kan loop-enheten förstöras senare. Om du
behöver vänta på att loopenheten ska tas bort helt och
hållet, anropar du udevadm settle efter losetup.
-D, --detach-all
Koppla bort alla tillhörande loop-enheter.
-f, --find [fil]
Hitta den första oanvända loop-enheten. Om
ett fil-argument finns, använd den funna enheten som loop-enhet.
Annars skrivs bara dess namn ut.
--show
Visa namnet på den tilldelade loop-enheten om
flaggan -f och ett fil-argument finns.
-L, --nooverlap
Kontrollera om det finns konflikter mellan loop-enheter
för att undvika situationer där samma backingfil delas av flera
loop-enheter. Om filen redan används av en annan enhet,
återanvänd då enheten i stället för att
skapa en ny. Flaggan är endast meningsfullt med --find.
-j, --associated fil [-o
offset]
Visar status för alla loop-enheter som är
kopplade till den angivna filen.
-o, --offset offset
Datastarten flyttas offset byte in i den angivna
filen eller enheten. offset kan följas av de multiplikativa
suffixen, se ovan.
--loop-ref sträng
Ange referenssträngen. Den bakåtkompatibla
standardinställningen är att använda namnet på den
underliggande filen som referens i ioctl-anropet för loop-konfiguration
(även kallat lo_file_name). Flaggan åsidosätter
standardbeteendet och sätter referensen till sträng.
Referensen kan användas av udevd i /dev/loop/by-ref. Linuxkärnan
använder inte referensen alls, men vissa äldre verktyg som inte
kan läsa den underliggande filen från sysfs kan använda
den. Endast root-användaren kan läsa referensen (se
--output +REF) och den är begränsad till 64 byte.
--sizelimit storlek
Dataslutet sätts till högst storlek
bytes efter datastarten. storlek kan följas av de multiplikativa
suffixen, se ovan.
-b, --sector-size storlek
Ange den logiska sektorstorleken för loop-enheten
i byte (sedan Linux 4.14). Flaggan kan användas när du skapar en
ny loop-enhet samt som ett fristående kommando för att
ändra sektorstorleken på en redan befintlig loop-enhet.
-c, --set-capacity loopdev
Tvinga loopdrivrutinen att läsa om storleken
på filen som är associerad med den angivna loopenheten.
-P, --partscan
Tvinga kärnan att skanna partitionstabellen
på en nyskapad loop-enhet. Observera att tolkningen av
partitionstabellen beror på sektorstorleken. Standard är att
sektorstorleken är 512 byte, annars måste du använda
flaggan --sector-size tillsammans med --partscan.
-r, --read-only
Ställ in en skrivskyddad loop-enhet.
--direct-io[=on|off]
Aktivera eller inaktivera direkt I/O för
stödfilen. Standardinställningen är off. Om du
anger antingen --direct-io eller --direct-io=on aktiveras det.
Men --direct-io=off kan anges för att uttryckligen stänga
av det.
-l, --list
Om en slingenhet eller flaggan -a anges, skriv ut
standardkolumnerna för antingen den angivna slingenheten eller alla
slingenheter; standard är att skriva ut information om alla enheter. Se
även --output, --noheadings, --raw och
--json.
-O, --output column[,column]...
Ange de kolumner som ska skrivas ut för
--list-utdata. Använd --help för att få en
lista över alla kolumner som stöds.
--output-all
Skriv ut alla tillgängliga kolumner.
-n, --noheadings
Skriv inte ut rubriker för utdataformatet
--list.
--raw
Använd det råa utdataformatet
--list.
-J, --json
Använd JSON-format för
--list-utdata.
--remove loopenh...
Ta bort angivna loop-enheter. Loop-enheten måste
vara oanvänd (inte kopplad till någon underliggande fil).
Flaggan tar bort enhetsnoden från systemet. I de flesta fall
räcker --detach för normal användning. Se
avsnittet LOOP-ENHETENS LIVSCYKEL nedan.
-h, --help
Visa hjälptext och avsluta.
-V, --version
Visa version och avsluta.
LOOP-ENHETENS LIVSCYKEL¶
Loop-enheter genomgår flera tillstånd under sin
livscykel:
Skapande
När losetup kopplar en loop-enhet till en
underliggande fil skapas enhetsnoden (t.ex. /dev/loop0) automatiskt om
den inte redan finns. Detta sker vid behov när du använder
flaggor som -f eller anger en loop-enhet explicit. Enheten skapas med
ioctl-anropet LOOP_CTL_ADD.
Lösgöring
Flaggan -d (--detach) kopplar loss den
underliggande filen från loop-enheten med ioctl-anropet
LOOP_CLR_FD. Därefter finns loop-enhetsnoden kvar i /dev
och kan återanvändas för en annan underliggande fil.
Använd lsblk -a för att se alla loop-enhetsnoder,
även oanvända.
Borttagning
Flaggan --remove tar bort loop-enhetsnoden helt
från systemet med ioctl-anropet LOOP_CTL_REMOVE. Enheten
måste först lösgöras (så att ingen
underliggande fil är kopplad till den). Efter borttagningen
försvinner enhetsnoden från /dev.
ENCRYPTION¶
Cryptoloop stöds inte längre till
förmån för dm-crypt. För mer information se
cryptsetup(8).
AVSLUTSSTATUS¶
losetup returnerar 0 vid framgång, icke-noll vid
misslyckande. När losetup visar status för en
loop-enhet returnerar den 1 om enheten inte är konfigurerad och 2 om
ett fel inträffade som gjorde det omöjligt att
fastställa enhetens status.
ANMÄRKNINGAR¶
Sedan version 2.37 använder losetup
LOOP_CONFIGURE ioctl för att konfigurera en ny loop-enhet med
ett ioctl-anrop. De gamla versionerna använder LOOP_SET_FD och
LOOP_SET_STATUS64 ioctls för att göra samma sak.
MILJÖ¶
LOOPDEV_DEBUG=all
aktiverar felsökningsutmatning.
LIBSMARTCOLS_DEBUG=all
aktiverar libsmartcols felsökningsutdata.
LIBSMARTCOLS_DEBUG_PADDING=on
använda synliga utfyllnadstecken.
FILER¶
/dev/loop[0..N] /dev/loop[0..N]
enheter för slingblock
/dev/loop-kontroll
kontrollenhet för slinga
EXEMPEL¶
Följande kommandon kan användas som exempel
på hur loop-enheten används.
# 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
UPPHOVSPERSONER¶
Karel Zak <kzak@redhat.com>, baserad på
originalversionen från Theodore Ts’o
<tytso@athena.mit.edu>.