Jaka jest różnica między mount a mount -o loop


28

Mam plik ISO o nazwie ubuntu.iso.

Mogę mountgo za pomocą polecenia: mount ubuntu.iso /mnt. Po jej montażu, widzę go z outout polecenia df -h: /dev/loop0 825M 825M 0 100% /mnt.

Jeśli jednak wykonam polecenie mount -o loop ubuntu.iso /mnt, otrzymam ten sam wynik.

Jak wiem, urządzenie pętli pozwala nam odwiedzić plik ISO jako urządzenie, myślę, że dlatego dodaliśmy tę opcję -o loop. Ale mogę odwiedzić mój plik ISO, nawet jeśli wykonam tylko mount ubuntu.iso /mnt.

Więc nie widzę różnicy między mounti mount -o loop.


Ważną rzeczą jest także to, że czasami mount nie może skonfigurować urządzenia sprzężenia zwrotnego z odpowiednimi dodatkami. Na przykład: mount ubuntu.iso /mntnie konfiguruje urządzenia sprzężenia zwrotnego tylko do odczytu i mount /image.squashfs /mntnie konfiguruje urządzenia sprzężenia zwrotnego DIO( losetup --direct-io=on).
niepiśmienny

Odpowiedzi:


47

Obie wersje używają urządzeń pętlowych i dają ten sam rezultat; krótka wersja opiera się na „sprytności” dodanej mountw ostatnich latach. wyraźnie mount -o loopmówi, mountaby użyć urządzenia pętli; pozostawia samo urządzenie pętli mount, które będzie szukało dostępnego urządzenia, konfigurowało je i używało. (Możesz także określić urządzenie za pomocą np mount -o loop=/dev/loop1 .)

Sprytność polega na tym, że po otrzymaniu pliku do zamontowania mountautomatycznie użyje urządzenia pętli, aby zamontować go w razie potrzeby - tzn. System plików nie jest określony lub libblkidokreśla, że ​​system plików jest obsługiwany tylko na urządzeniach blokowych (a zatem urządzenie pętli jest potrzebne do przetłumaczenia pliku na urządzenie blokowe).

Sekcja urządzenia pętli na mountstronie podręcznika zawiera więcej szczegółów.


1
Nie * też * dawno temu w mount nie było też opcji „-o loop” i trzeba by było ręcznie utworzyć urządzenie pętli za pomocą polecenia losetup.
Edheldil

@Edheldil, który zależy od twojego pojęcia „dawno temu” ;-). util-linux2.11 mount -o loopuzyskało wsparcie w 2001 r. I myślę, że 2.10 miało to również co najmniej rok wcześniej.
Stephen Kitt,

Tak, ale czy powszechnie używane stabilne dystrybucje w 2001 roku używały już util-linux 2.11?
rackandboneman

2
@rackandboneman Zacząłem kopać trochę więcej i okazuje się, że wsparcie dla -o loopzostało dodane między util-linux2,4 a 2,5j; Debian 1.1 miał ten drugi i został wydany w czerwcu 1996 roku. Więc ta opcja jest dostępna w dystrybucji od ponad dwudziestu lat.
Stephen Kitt

Zaleta tej sprytności: jeśli / kiedy nowa funkcja „bezpośredniego montowania plików” deweloperów XFS (bez potrzeby używania urządzeń pętli) dotrze do jądra, mountbędzie mogła przełączyć się na ten mechanizm w sposób przezroczysty (przynajmniej przez pierwsze 15 minut, aż okazuje się, że złamał czyjś skrypt i wszyscy muszą wrócić do urządzeń pętlowych) , w przeciwieństwie do tego, mount -o loopktóry wciąż wyraźnie prosi o stary (obecny) mechanizm.
grawity

9

loopUrządzenie jest kontrolowany głównie z losteuppolecenia. Więc losetup -adaje przegląd o używanych urządzeń pętlowych i załączonych plików. mountPolecenia można zamontować tylko urządzenie blokowe . Urządzenie pętli może utworzyć wirtualne urządzenie blokowe z pliku (urządzenie znakowe).

W rzeczywistości istnieje ogromna różnica między tymi poleceniami, ponieważ w starszych systemach Linux mountnie mógł rozpoznać pliku jako poprawnego urządzenia do zamontowania, ale w czasie, gdy polecenie montowania zostało zakończone z dużą ilością funkcji, dlatego może teraz samodzielnie zdecydować spróbuj wywołać komendę losetup i zamontować wynik. Ale jeśli masz cały obraz dysku nie w formacie ISO, ale np. Z MBR na początku, polecenie mount nie mogło go rozpoznać i musisz znaleźć użyteczną partycję (np. Z parted disk_image.raw unit B printpoleceniem) yoursef, a następnie zamontować ją z pełną opcją mount comman tak jak :

mount disk_image.raw /mntpoint/ -o loop,offset=${OFFSET_of_PARTITION}

W tej składni urządzenie pętla nie została określona i zakłada się system wybrać pierwszy wolny ( /dev/loop0, /dev/loop1etc) Wśród innych nowych cech polecenie montowania jest to, że nie trzeba określić typ systemu plików zamontowanego urządzenia blokowego (w Twoim przypadku -t iso9660) jeśli zainstalowano obsługę systemu plików.


7

Nie ma różnicy między mount ubuntu.iso /mnti mount -o loop ubuntu.iso /mnt.

Pierwszy jest obsługiwany w sposób transparentny, jakbyś używał drugiego.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.