LOSETUP(8) Administracja systemem LOSETUP(8)

losetup - konfiguruje i steruje urządzeniami pętli (loop)

Konfigurowanie urządzenia pętli:

losetup [opcje] -f|urządzenie-pętli plik

Pobieranie informacji:

losetup [-l] [-a|urządzenie-pętli]

losetup -j plik [-o przesunięcie]

Ponowna kalibracja rozmiaru urządzenia pętli:

losetup -c urządzenie-pętli

Odłączenie urządzeń pętli:

losetup -d urządzenie-pętli ...

losetup -D

Zapobieganie wypisywaniu urządzeń pętli:

losetup --remove 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ć wiele 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 przesłania opisane zachowanie domyślne i ustawia 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.

-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.

--remove urządzenie-pętli...

Usuwa podane urządzenia pętli zwrotnej. Urządzenie pętli nie może być używane (nie może być powiązane z jakimś plikiem). Opcja usuwa węzeł urządzenia z systemu. W większości przypadków, wystarczające jest stosowanie --detach. Zob. poniższy rozdział CYKL ISTNIENIA URZĄDZENIA PĘTLI ZWROTNEJ.

-h, --help

Wyświetla ten tekst i wychodzi.

-V, --version

Wyświetla wersję i wychodzi.

Urządzenia pętli zwrotnej przechodzą przez kilka stanów w trakcie swego istnienia:

Tworzenie

Gdy losetup kojarzy urządzenie pętli z odpowiadającym mu plikiem, automatycznie tworzy węzeł urządzenia (np. /dev/loop0), jeśli taki jeszcze nie istnieje. Dzieje się to na żądanie, jeśli podało się opcję taką jak -f albo gdy podało się bezpośrednio urządzenie pętli. Urządzenie jest tworzone za pomocą kontrolki systemowej (ioctl) LOOP_CTL_ADD.

Odłączenie

Opcja -d (--detach) odłącza urządzenie pętli od odpowiadającego mu pliku za pomocą ioctl LOOP_CLR_FD. Po odłączeniu, węzeł urządzenia pętli pozostaje w /dev i może być użyty ponownie z innych plikiem. Polecenie lsblk -a pokaże wszystkie węzły urządzeń pętli, w tym nieużywane.

Usunięcie

Opcja --remove całkowicie usuwa węzeł urządzenia pętli z systemu za pomocą ioctl LOOP_CTL_REMOVE. Urządzenie musi być uprzednio rozłączone (nie może być powiązane z żadnym plikiem). Po usunięciu, węzeł urządzenia znika z /dev.

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.

LIBSMARTCOLS_DEBUG=all

włącza wyjście debugowania libsmartcols.

LIBSMARTCOLS_DEBUG_PADDING=on

używa widocznych znaków wypełnienia.

/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/.

2026-09-02 util-linux 2.42.3