Urządzenie pętlowe - Loop device
W systemach operacyjnych typu Unix urządzenie pętlowe , vnd (dysk vnode) lub lofi (interfejs pliku pętli) jest pseudo-urządzeniem, które udostępnia plik komputerowy jako urządzenie blokowe .
Przed użyciem urządzenie pętli musi być podłączone do istniejącego pliku w systemie plików . Skojarzenie zapewnia użytkownikowi interfejs programowania aplikacji ( API ), który umożliwia użycie pliku zamiast blokowego pliku specjalnego (por. System plików urządzenia ). Tak więc, jeśli plik zawiera cały system plików, plik może zostać zamontowany tak, jakby był urządzeniem dyskowym.
Pliki tego rodzaju są często używane w przypadku obrazów CD ISO i obrazów dyskietek . Montowanie pliku zawierającego system plików za pośrednictwem takiego montowania w pętli sprawia, że pliki w tym systemie plików są dostępne. Pojawiają się w katalogu punktu podłączenia.
Urządzenie pętlowe może pozwolić na pewnego rodzaju przetwarzanie danych podczas tego przekierowania. Na przykład urządzenie może być niezaszyfrowaną wersją zaszyfrowanego pliku. W takim przypadku plik skojarzony z urządzeniem pętlowym może być innym pseudourządzeniem. Jest to szczególnie przydatne, gdy urządzenie zawiera zaszyfrowany system plików. Jeśli jest obsługiwane, urządzenie pętli jest w tym przypadku odszyfrowaną wersją oryginalnego zaszyfrowanego pliku i dlatego można je zamontować tak, jakby był normalnym systemem plików.
Zastosowania mocowania pętli
Po zamontowaniu pliku, który zawiera system plików, dostęp do plików w tym systemie można uzyskać za pośrednictwem zwykłego interfejsu systemu plików systemu operacyjnego, bez konieczności korzystania ze specjalnych funkcji, takich jak odczytywanie i zapisywanie obrazów ISO w aplikacjach.
Montaż pętli ma kilka zastosowań. Jest to wygodna metoda zarządzania i edycji w trybie offline obrazów systemu plików, które są później używane do normalnej pracy systemu. Obejmuje to obrazy dysków CD lub DVD oraz systemy instalacyjne. Można go użyć do zainstalowania systemu operacyjnego w systemie plików bez ponownego partycjonowania dysku. Zapewnia również trwałą segregację danych, na przykład podczas symulacji nośników wymiennych na szybszym i wygodniejszym dysku twardym lub enkapsulacji zaszyfrowanego systemu plików.
Dostępność
Różne systemy operacyjne typu Unix zapewniają funkcjonalność urządzenia pętlowego przy użyciu różnych nazw.
W systemie Linux nazwy urządzeń są kodowane we wpisach tablicy symboli odpowiednich sterowników urządzeń. Urządzenie jest nazywane urządzeniem "pętlowym", a węzły urządzeń są zwykle nazywane / dev / loop0 , / dev / loop1 , itd. Mogą być tworzone za pomocą makedev dla statycznego katalogu urządzeń, dynamicznie za pomocą funkcji systemu plików urządzenia ( udev ) lub bezpośrednio za pomocą mknod . Interfejs użytkownika do zarządzania urządzeniem pętlowym to losetup , który jest częścią pakietu util-linux .
Czasami urządzenie pętlowe jest błędnie nazywane urządzeniem sprzężenia zwrotnego , ale termin ten jest zarezerwowany dla urządzenia sieciowego w systemach operacyjnych. Koncepcja urządzenia pętlowego jest odmienna.
W systemach opartych na BSD, takich jak NetBSD i OpenBSD , urządzenie pętlowe nazywane jest „urządzeniem węzła wirtualnego” lub „vnd” i ogólnie znajduje się w / dev / vnd0 , / dev / rvnd0 lub / dev / svnd0 , itd. system plików. Do konfiguracji służy program vnconfig .
FreeBSD stosował te same konwencje, co inne systemy BSD aż do wydania wersji 5, w której urządzenie pętlowe zostało włączone do sterownika dysku pamięci ("md"). Konfiguracja jest teraz wykonywana za pomocą narzędzia mdconfig .
W systemie Solaris / OpenSolaris urządzenie pętlowe nosi nazwę „loopback file interface” lub lofi i znajduje się w / dev / lofi / 1 itd. SunOS ma program konfiguracyjny lofiadm . "lofi obsługuje kompresję tylko do odczytu i szyfrowanie do odczytu i zapisu. Dostępny jest również sterownik innej firmy fbk ( emuluje plik Blockdevice ) dla SunOS / Solaris od lata 1988.
UnixWare zawiera dynamicznie obciążana sterownik wyjść za (7), a narzędzie wyjść za (1M). Marry driver umożliwia traktowanie zwykłego pliku jako urządzenia. Dostęp do zwykłego pliku można uzyskać poprzez urządzenie blokowe, / dev / marry / regfile lub jako urządzenie znakowe, / dev / marry / rregfile . Polecenie marry obsługuje również szyfrowanie i odszyfrowywanie zwykłego pliku.
MacOS implementuje natywny mechanizm montowania obrazu jako część abstrakcji urządzenia dyskowego o dostępie swobodnym. Polecenie hdiutil attach -imagekey diskimage-class = CRawDiskImage -nomount <nazwa pliku> powoduje, że urządzenie blokowe pojawia się w / dev jako zwykłe urządzenie dyskowe i urządzenia podrzędne dla rozpoznanych partycji. Odczyty zi zapisy do tych urządzeń są wysyłane do procesu pomocniczego trybu użytkownika, który odczytuje dane z pliku lub zapisuje je w pliku. W interfejsie użytkownika jest aktywowany automatycznie po otwarciu obrazu dysku. MacOS obsługuje obrazy dysków (.dmg lub .iso), CD-ROM lub DVD w różnych formatach.
Montowanie w pętli nie było dostępne w systemach operacyjnych Microsoft Windows aż do Windows 7 , gdzie ta funkcja jest natywnie zaimplementowana i dostępna za pośrednictwem narzędzia diskpart . Jednak usługa jest często dodawana za pomocą aplikacji innych firm, takich jak Daemon Tools i Alcohol 120% . Do osiągnięcia podobnej funkcjonalności można również użyć bezpłatnych narzędzi VMware (Disk Mount Utility) i LTR Data (ImDisk) . W systemach Windows XP i Vista można również korzystać z funkcji wirtualnego dysku twardego, dodając jakiś składnik z Microsoft Virtual Server 2005 R2.
W A2 , dawniej AOS, a następnie Bluebottle, wirtualny dysk oparty na plikach jest tworzony za pomocą VirtualDisks.Create . System plików można zainstalować na takim „dysku” za pomocą programu VirtualDisks.Install .
Przykład
Montowanie pliku zawierającego obraz dysku w katalogu wymaga dwóch kroków:
- skojarzenie pliku z węzłem urządzenia pętlowego ,
- montowanie urządzenia pętlowego w katalogu punktu podłączenia
Te dwie operacje można wykonać za pomocą dwóch oddzielnych poleceń lub za pomocą specjalnych flag polecenia mount. Pierwszą operację mogą wykonać takie programy jak losetup w Linuksie czy lofiadm w SunOS. Na przykład, jeśli example.img jest to zwykły plik zawierający system plików i /home/you/dir katalog użytkownika Linuksa, superużytkownik (root) może zamontować plik w katalogu, wykonując następujące dwie komendy:
losetup /dev/loop0 example.img mount /dev/loop0 /home/you/dir
Drugie polecenie montuje urządzenie w katalogu /home/you/dir . Ogólnym efektem wykonania tych dwóch poleceń jest to, że zawartość pliku jest używana jako system plików zakorzeniony w punkcie podłączenia.
Aby zidentyfikować dostępne urządzenie pętlowe do użycia w powyższych poleceniach, administrator (root) może użyć:
losetup -f
Narzędzie do montowania jest zwykle w stanie obsłużyć całą procedurę:
mount -o loop example.img /home/you/dir
Urządzenie można następnie odmontować za pomocą następującego polecenia:
umount /home/you/dir # or, after finding the associated loop number by e.g. mount | grep "/home/you/dir" # or losetup -a | grep example.img umount /dev/loop<N>
W interfejsie programowania aplikacji ( API ) niższego poziomu skojarzenie i odłączenie pliku z urządzeniem pętlowym jest wykonywane za pomocą wywołania systemowego ioctl na urządzeniu pętlowym.
Zobacz też
Bibliografia
Zewnętrzne linki
- Montowanie obrazu dysku za pomocą urządzenia pętlowego z podręcznika użytkownika Bochs
- - Podręcznik administracji i poleceń uprzywilejowanych w systemie Linux