Mount ve mount -o loop arasındaki fark nedir


28

Adında bir iso dosyası var ubuntu.iso.

Elimden mountkomutu ile: mount ubuntu.iso /mnt. Bunu monte sonra, komuta çıktılamak olarak görürsün df -h: /dev/loop0 825M 825M 0 100% /mnt.

Ancak, eğer komutu uygularsam mount -o loop ubuntu.iso /mntaynı sonucu alırım.

Bildiğim gibi, loop aygıtı iso dosyasını bir aygıt olarak ziyaret etmemize izin veriyor, bu yüzden seçeneği eklediğimizi düşünüyorum -o loop. Ancak sadece çalıştırsam bile iso dosyamı ziyaret edebilirim mount ubuntu.iso /mnt.

Bu yüzden mountve arasındaki farkı göremiyorum mount -o loop.


: Ayrıca bir önemli şey bazen Örneğin uygun arugments ile olamaz kurulum geridönüş cihaz monte edilir mount ubuntu.iso /mntbu kurulum salt okunur bir geri döngü cihaz yoktur ve mount /image.squashfs /mntbu bir kurulum yok DIO( losetup --direct-io=on) döngü cihazı.
cahil

Yanıtlar:


46

Her iki sürüm de döngü cihazları kullanır ve aynı sonucu verir; Kısa versiyon mountson yıllarda eklenen “zekâ” ya dayanmaktadır . açıkça bir döngü cihazı kullanmasını mount -o loopsöyler mount; mountkullanılabilir bir cihaz arayacak, ayarlayacak ve onu kullanacak şekilde döngü cihazının kendisini bırakır . (Cihazı da örn mount -o loop=/dev/loop1 . İle belirleyebilirsiniz .)

Akıllılık, monte edilmek üzere bir dosya verildiğinde, gerektiğinde monte etmek için mountotomatik olarak bir döngü cihazı kullanacağıdır - yani , dosya sistemi belirtilmemiş veya libblkiddosya sisteminin yalnızca blok cihazlarda desteklendiğini belirler (ve bu nedenle dosyayı bir blok cihaza çevirmek için bir döngü cihazı gerekir).

mountMan sayfasının döngü cihazı bölümü daha fazla ayrıntıya sahiptir.


1
Not * that * uzun zaman önce mount da "-o loop" seçeneği yoktu ve losetup komutuyla loop cihazını manuel olarak yaratmanız gerekirdi.
Edheldil

@Edheldil, “uzun zaman önce” ;-) hakkındaki fikrinize bağlıdır. util-linux2.11 mount -o loop, 2001'de desteklendi ve bence 2.10 da, en az bir yıl önce vardı.
Stephen Kitt

Evet, ancak 2001 yılında yaygın olarak kullanılan kararlı dağılımlar kullanılmış mı?
rackandboneman

2
@rackandboneman Biraz daha kazmaya başladım ve bir desteğin 2.4 ila 2.5j -o looparasında eklendiği ortaya çıktı util-linux; Debian 1.1 , ikincisine sahipti ve Haziran 1996'da piyasaya sürüldü. Bu nedenle, bu seçenek yirmi yıldan fazla bir süredir dağıtımlarda mevcuttur.
Stephen Kitt

Bu akıllılığın bir avantajı: XFS geliştiricilerin yeni "doğrudan dosya montajı" özelliği (döngü aygıtlarına ihtiyaç duymadan) çekirdeğe ulaşması durumunda, çekirdeğe ulaşırsa, mountbu mekanizmaya şeffaf bir şekilde geçebilir (en azından ilk 15 dakika kadar) ortaya çıktı ki birisinin kabuk komut dosyasını kırdı ve herkesmount -o loop hala eski (mevcut) mekanizma için açıkça soranın aksine döngü aygıtlarına geri dönmek zorunda kaldı .
Grawity

9

loopCihaz temel olarak kontrol edilir losteupkomutu. Böylece losetup -a, kullanılan döngü aygıtları ve ekli dosyalar hakkında size genel bir bakış sunar. mountKomut monte edebilirsiniz blok cihazı sadece . Döngü aygıtı sanal blok aygıtını bir dosyadan (karakter aygıtı) oluşturabilir.

Aslında bu komutlar arasında büyük bir fark vardır çünkü eski Linux sistemlerinde dosyayı monte edilecek doğru cihaz olarak mounttanıyamazdı , ancak mount komutu sırasında birçok özellikle tamamlandığı için, şimdi kendi kendine karar verebilir. losetup komutunu çağırmayı deneyin ve sonucu bağlayın. Ancak, bir disk görüntüsünün iso biçiminde değil, örneğin başında MBR olması durumunda, mount komutu bunu tanıyamadı ve kullandığınız bölümü (örneğin komutuyla) bulmanız ve tam seçenek mount komutuyla monte etmekten çok gibi :parted disk_image.raw unit B print

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

Bu sözdiziminde döngü aygıtı belirtilmedi ve sistemin ilk serbest ( /dev/loop0, /dev/loop1vb.) Seçtiği varsayıldı . Mount komutunun diğer yeni özellikleri arasında, takılı blok aygıtının dosya sistemi türünü belirtmeniz gerekmez (sizin durumunuzda -t iso9660) dosya sistemi desteği kuruluysa.


7

Arasında hiçbir fark yoktur mount ubuntu.iso /mntve mount -o loop ubuntu.iso /mnt.

Birincisi, ikinciyi kullanıyormuşsunuz gibi şeffaf bir şekilde kullanılır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.