What is the difference between mount and mount -o loop

What is the difference between mount and mount -o loop



I have a iso file named ubuntu.iso.


ubuntu.iso



I can mount it with the command: mount ubuntu.iso /mnt. After mounting it, I can see it from the outout of the command df -h: /dev/loop0 825M 825M 0 100% /mnt.


mount


mount ubuntu.iso /mnt


df -h


/dev/loop0 825M 825M 0 100% /mnt



However, if I execute the command mount -o loop ubuntu.iso /mnt, I'll get the same result.


mount -o loop ubuntu.iso /mnt



As I know, loop device allows us to visit the iso file as a device, I think this is why we add the option -o loop. But I can visit my iso file even if I only execute mount ubuntu.iso /mnt.


-o loop


mount ubuntu.iso /mnt



So I can't see the difference between mount and mount -o loop.


mount


mount -o loop





Also a important thing is sometimes mount can't setup loopback device with appropriate arugments For example:mount ubuntu.iso /mnt it do not setup a read-only loopback device,and mount /image.squashfs /mnt it do not setup a DIO(losetup --direct-io=on)loopback device.
– illiterate
Sep 6 '18 at 7:39


mount ubuntu.iso /mnt


mount /image.squashfs /mnt


DIO


losetup --direct-io=on




3 Answers
3



Both versions use loop devices, and produce the same result; the short version relies on “cleverness” added to mount in recent years. mount -o loop tells mount explicitly to use a loop device; it leaves the loop device itself up to mount, which will look for an available device, set it up, and use that. (You can specify the device too with e.g. mount -o loop=/dev/loop1.)


mount


mount -o loop


mount


mount


mount -o loop=/dev/loop1



The cleverness is that, when given a file to mount, mount will automatically use a loop device to mount it when necessary — i.e., the file system isn’t specified, or libblkid determines that the file system is only supported on block devices (and therefore a loop device is needed to translate the file into a block device).


mount


libblkid



The loop device section of the mount man page has more details.


mount





Not *that * long ago there was no "-o loop" option in mount either and you would have to manually create the loop device with losetup command.
– Edheldil
Sep 6 '18 at 11:34





@Edheldil that depends on your notion of “long ago” ;-). util-linux 2.11 supported mount -o loop in 2001, and I think 2.10 had it too, at least a year earlier.
– Stephen Kitt
Sep 6 '18 at 11:56


util-linux


mount -o loop





Yeah, but did commonly used stable distributions in 2001 use util-linux 2.11 already?
– rackandboneman
Sep 6 '18 at 12:08





@rackandboneman I went digging a bit more, and it turns out that support for -o loop was added sometime between util-linux 2.4 and 2.5j; Debian 1.1 had the latter and was released in June 1996. So this option has been available in distributions for over twenty years.
– Stephen Kitt
Sep 6 '18 at 12:41



-o loop


util-linux





An advantage to this cleverness: if/when XFS developers' new "direct file mount" feature (without the need for loop devices) reaches the kernel, mount will be able to switch to that mechanism transparently (At least for the first 15 minutes until it turns out it broke somebody's shellscript and everyone has to go back to loop devices), unlike mount -o loop which still explicitly asks for the old (current) mechanism.
– grawity
Sep 7 '18 at 6:31



mount


mount -o loop



The loop device is primarily controlled with the losteup command. So losetup -a gives you overview about the used loop devices and attached files. The mount command can mount the block device only. The loop device can create the virtual block device from a file (character device).


loop


losteup


losetup -a


mount



In fact there is a great difference between those commands because on older Linux systems the mount could not recognise the file as the correct device to be mounted, but during the time the mount command was completed with lot of feature, hence it can now self decide to try to call the losetup command and mount the result. But if you got a whole disk image not iso format but e.g. with MBR at the beginning, the mount command could not recognise it and you have to find the usable partition (e.g. with the parted disk_image.raw unit B print command) yoursef and than mount it with full option mount comman as :


mount


parted disk_image.raw unit B print


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



In this syntax the loop device was not specified and it is assumed the system choose the first free (/dev/loop0, /dev/loop1 etc)
Among the other new features of mount command is that you need not specify the filesystem type of the mounted block device (in your case -t iso9660) if the filesystem support was installed.


/dev/loop0


/dev/loop1


-t iso9660



There is no difference between mount ubuntu.iso /mnt and mount -o loop ubuntu.iso /mnt.


mount ubuntu.iso /mnt


mount -o loop ubuntu.iso /mnt



The first is transparently handled as if you had used the second.



Thanks for contributing an answer to Unix & Linux Stack Exchange!



But avoid



To learn more, see our tips on writing great answers.



Some of your past answers have not been well-received, and you're in danger of being blocked from answering.



Please pay close attention to the following guidance:



But avoid



To learn more, see our tips on writing great answers.



Required, but never shown



Required, but never shown




By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

How do I collapse sections of code in Visual Studio Code for Windows?

ャフサォクコ ケウ,コ,ワ メ,ロスョノ゙,クネ,フムカヤヲニ,エコ゚ツ ウイオン゙ケワサネォキモュキォウイノンコチ゚メヌナイゥフュ,カヒウネェ ネ,ホノケ,ムュキ ッボーミュハ,チ ツス ィ メウイマヤ,゙ウチ ヅ ロ,ォジヌェ ャヌット ェ,マャ,チナエヒネソキツテ トホヲヲミーァ