losetup - konfiguruje i steruje urządzeniami pętli
(loop)
Pobieranie informacji:
losetup [urządzenie-pętli]
losetup -l [-a]
losetup -j plik [-o
przesunięcie]
Odłączenie urządzenia pętli:
losetup -d urządzenie-pętli
...
Odłączenie wszystkich przypisanych
urządzeń pętli:
losetup -D
Konfigurowanie urządzenia pętli:
losetup [-o przesunięcie]
[--sizelimit rozmiar] [--sector-size rozmiar]
[--loop-ref nazwa] [-Pr] [--show]
-f|urządzenie-pętli plik
Zmiana rozmiaru urządzenia pętli:
losetup -c urządzenie-pętli
losetup służy do kojarzenia
urządzeń pętli (loop) z plikami zwykłymi lub
urządzeniami blokowymi, do odłączania
urządzeń pętli i sprawdzania ich stanu. Jeżeli
podano tylko argument urządzenie-pętli, to pokazywany
jest stan odpowiedniego urządzenia pętli. Jeśli nie
podano żadnej opcji, to wyświetlane są wszystkie
urządzenia pętli.
Proszę zauważyć, że stary format
wyjściowy (tj. losetup -a), z łańcuchami
znaków oddzielonymi od siebie przecinkami, jest przestarzały.
Zamiast niego preferowanym formatem jest format --list.
Dla tego samego powiązanego pliku można
utworzyć więcej niezależnych urządzeń
pętli. Taka konfiguracja może być niebezpieczna,
spowodować utratę danych, ich uszkodzenie lub nadpisanie.
Aby uniknąć tego problemu, podczas konfiguracji należy
korzystać z opcji --nooverlap wraz z --find.
Konfiguracja urządzenia pętli nie jest
operacją niepodzielną, gdy korzysta się z opcji
--find, a losetup nie chroni tej operacji żadną
blokadą. Liczba prób jest wewnętrznie ograniczona do
16. Zaleca się korzystanie np. z flock(1), aby
uniknąć kolizji w przypadku intensywnego korzystania
równoległego.
Po argumentach rozmiar i przesunięcie
mogą występować przyrostki oznaczające
wielokrotność: KiB (=1024), MiB (=1024*1024), itd. dla GiB,
TiB, PiB, EiB, ZiB i YiB (cząstka "iB" jest opcjonalna,
tzn. np. "K" znaczy to samo co "KiB") lub przyrostki KB
(=1000), MB (=1000*1000), itd. dla GB, TB, PB, EB, ZB i YB.
-a, --all
Wyświetla stan wszystkich urządzeń
pętli. Proszę zauważyć, że nie wszystkie
informacje są dostępne dla użytkowników
niebędących administratorami. Patrz także --list.
Stary format wyjściowy (wypisywany, jeśli nie podano
--list) jest niezalecany.
-d, --detach
urządzenie-pętli...
Odłącza plik lub urządzenie
związane z podanym(i) urządzeniem(-ami) pętli.
Proszę zauważyć, że Linux od v3.7 korzysta z
"leniwego niszczenia urządzeń". Operacja
odłączenia nie zwróci obecnie błędu
EBUSY, gdy urządzenie jest aktywnie używane przez system,
lecz jest znakowane znacznikiem automatycznego wyczyszczenia i jest niszczone
później. Nawet jeśli urządzenie nie jest
używane, urządzenie pętli może zostać
zniszczone dopiero później. Jeśli konieczne jest
poczekanie na całkowite usunięcie urządzenia
pętli, po losetup należy wywołać udevadm
settle.
-D, --detach-all
Odłącza wszystkie przypisane
urządzenia pętli.
-f, --find [plik]
Szuka pierwszego nieużywanego urządzenia
pętli. Jeśli podano argument plik, to używa tego
znalezionego urządzenia jako urządzenia pętli. W
przeciwnym wypadku wyświetla jego nazwę.
--show
Wyświetla nazwę przypisanego
urządzenia pętli, jeśli podano opcję -f i
argument plik.
-L, --nooverlap
Sprawdza pod kątem konfliktów, aby
uniknąć sytuacji, gdy ten sam powiązany plik jest
dzielony pomiędzy większą liczbą
urządzeń pętli. Jeśli plik jest już
używany przez inne urządzenie, to zamiast użyć
nowego, program skorzysta ponownie z istniejącego urządzenia.
Opcja ma sens tylko w połączeniu z --find.
-j, --associated plik [-o
przesunięcie]
Wyświetla stan wszystkich urządzeń
pętli skojarzonych z podanych plikiem.
-o, --offset przesunięcie
Początek danych przesuwany jest o
przesunięcie bajtów podanego pliku lub urządzenia.
Po przesunięciu można podać przyrostki
oznaczające wielokrotność; zob. wyżej.
--loop-ref łańcuch
Ustawia łańcuch odniesienia.
Domyślnie, i zgodnie wstecznie, używa się nazwy
powiązanego pliku jako odniesienia w ioctl konfigurującym
pętlę (inaczej lo_file_name). Ta opcja może
przesłonić opisane zachowanie domyślne i ustawić
odniesienie na łańcuch. Odniesienie może
być użyte przez udevd w /dev/loop/by-ref. Jądro Linux nie
używa tego odniesienia, lecz mogą się nim
posłużyć pewne starsze narzędzia, które nie
potrafią odczytać powiązanego pliku z sysfs. Odniesienie
może odczytać tylko użytkownik root (zob. --output
+REF) i jest ograniczone do 64 bajtów.
--sizelimit rozmiar
Koniec danych jest ustawiany na nie więcej
niż rozmiar bajtów, licząc od początku
danych. Po rozmiarze można podać przyrostki
oznaczające wielokrotność; zob. wyżej.
-b, --sector-size rozmiar
Ustawia rozmiar sektora logicznego urządzenia
pętli w bajtach (od Linuksa 4.14). Opcję można
podać przy tworzeniu nowego urządzenia pętli, jak
również jako samodzielne polecenie, służące
do modyfikacji rozmiaru sektora istniejącego urządzenia
pętli.
-c, --set-capacity
urządzenie-pętli
Wymusza na sterowniku pętli ponowne odczytanie
rozmiaru pliku skojarzonego z podanym urządzeniem pętli.
-P, --partscan
Zmusza jądro do przeskanowania tablicy partycji na
tworzonym urządzeniu pętli. Proszę
zauważyć, że przetwarzanie tablicy partycji jest
zależne od rozmiarów sektora. Domyślnym rozmiarem sektora
są 512 bajty, w innych przypadkach konieczne jest użycie opcji
--sector-size łącznie z --partscan.
-r, --read-only
Konfiguruje urządzenie pętli jako tylko do
odczytu.
--direct-io[=on|off]
Włącza lub wyłącza
bezpośredni dostęp wejścia/wyjścia do
powiązanego pliku. Domyślnym ustawieniem jest
wyłączenie (off). Podanie --direct-io lub
--direct-io=on włączy tę opcję. Aby jawnie
ją wyłączyć, można podać
--direct-io=off.
-v, --verbose
Tryb szczegółowy.
-l, --list
Jeśli podano urządzenie loop lub
opcję -a, to wyświetla domyślne kolumny albo dla
podanego urządzenia, albo dla wszystkich urządzeń loop.
Domyślnie wyświetla informacje o wszystkich urządzeniach.
Patrz także --output, --noheadings --raw oraz
--json.
-O, --output kolumna[,kolumna]...
Określa kolumny, które będą
wypisane przez opcję --list. Opcja --help wypisze
listę wszystkich obsługiwanych kolumn.
--output-all
Wypisuje wszystkie dostępne kolumny.
-n, --noheadings
Nie wyświetla nagłówków w
wyjściu formatu opcji --list.
--raw
Używa surowego formatu wyjściowego w
--list.
-J, --json
Używa formatu JSON w wyjściu
--list.
Cryptoloop jest przestarzały, zamiast niego zalecany
jest dm-crypt. Szczegóły można
znaleźć w podręczniku cryptsetup(8).
losetup zwraca 0, jeśli zakończyło
się pomyślnie, a wartość niezerową w
przypadku błędu. Gdy losetup wyświetla stan
urządzenia pętli, to zwraca 1, jeśli urządzenie
nie jest skonfigurowane, lub 2, gdy wystąpił
błąd uniemożliwiający określenie stanu
urządzenia.
Od wersji 2.37, losetup korzysta z ioctl
LOOP_CONFIGURE do skonfigurowania nowego urządzenia
pętli, za pomocą pojedynczego wywołania ioctl. Starsze
wersje używały do tego samego celu ioctl: LOOP_SET_FD i
LOOP_SET_STATUS64.
ŚRODOWISKO
LOOPDEV_DEBUG=all
włącza wyjście debugowania.
/dev/loop[0..N]
urządzenia blokowe pętli
/dev/loop-control
urządzenie kontrolne pętli
Jako przykład użycia urządzenia loop
posłużą poniższe polecenia:
# dd if=/dev/zero of=~/plik.img bs=1024k count=10
# losetup --find --show ~/plik.img
/dev/loop0
# mkfs -t ext2 /dev/loop0
# mount /dev/loop0 /mnt
...
# umount /dev/loop0
# losetup --detach /dev/loop0
Karel Zak <kzak@redhat.com>, korzystając z
pierwotnej wersji Theodore’a Ts’o
<tytso@athena.mit.edu>.
Problemy należy zgłaszać w systemie
śledzenia błędów
<https://github.com/util-linux/util-linux/issues>.
Polecenie losetup jest częścią pakietu
util-linux, który można pobrać ze strony Archiwum
jądra Linux
<https://www.kernel.org/pub/linux/utils/util-linux/>.