Linux Commands Examples

A great documentation place for Linux commands


set up and control loop devices


Get info:

losetup loopdev

losetup -a

losetup -j file [-o offset]

Delete loop:

losetup -d loopdev...

Print name of first unused loop device:

losetup -f

Setup loop device:

losetup [{-e|-E} encryption] [-o offset] [--sizelimit size]

[-p pfd] [-r] {-f[--show]|loopdev} file

Resize loop device:

losetup -c loopdev

add an example, a script, a trick and tips

: email address (won't be displayed)
: name

Step 2

Thanks for this example ! - It will be moderated and published shortly.

Feel free to post other examples
Oops ! There is a tiny cockup. A damn 404 cockup. Please contact the loosy team who maintains and develops this wonderful site by clicking in the mighty feedback button on the side of the page. Say what happened. Thanks!


losetup -d /dev/loop0
losetup /dev/loop0 /virtualfs
losetup -d /dev/loop1
losetup /dev/loop1 /virtualfs_sfat
umount /home/0loop0
losetup -d /dev/loop0


losetup is used to associate loop devices with regular files or block devices, to detach loop devices and to query the status of a loop device. If only the loopdev argument is given, the status of the corresponding loop device is shown.

It is possible to specify transfer functions (for encryption/decryption or other purposes) using one of the -E and -e options. There are two mechanisms to specify the desired encryption: by number and by name. If an encryption is specified by number then one has to make sure that the Linux kernel knows about the encryption with that number, probably by patching the kernel. Standard numbers that are always present are 0 (no encryption) and 1 (XOR encryption). When the cryptoloop module is loaded (or compiled in), it uses number 18. This cryptoloop module will take the name of an arbitrary encryption type and find the module that knows how to perform that encryption.


The size and offset arguments may be followed by binary (2^N) suffixes KiB, MiB, GiB, TiB, PiB and EiB (the "iB" is optional, e.g. "K" has the same meaning as "KiB") or decimal (10^N) suffixes KB, MB, GB, PB and EB.
-a, --all

show status of all loop devices

-c, --set-capacity loopdev

force loop driver to reread size of the file associated with the specified loop device

-d, --detach loopdev...

detach the file or device associated with the specified loop device(s)

-e, -E, --encryption encryption_type

enable data encryption with specified name or number

-f, --find

find the first unused loop device. If a file argument is present, use this device. Otherwise, print its name

-h, --help

print help

-j, --associated file

show status of all loop devices associated with given file

-k, --keybits num

set the number of bits to use in key to num.

-N, --nohashpass

Do not hash the password. By default, Debian systems run the password through a hash function, non-Debian systems tend not to.

-o, --offset offset

the data start is moved offset bytes into the specified file or device

--sizelimit size

the data end is set to no more than size bytes after the data start

-p, --pass-fd num

read the passphrase from file descriptor with number num instead of from the terminal

-r, --read-only

setup read-only loop device


print device name if the -f option and a file argument are present.

The short form of this option (-s) is deprecated. This short form could be in collision with Loop-AES implementation where the same option is used for --sizelimit.

-v, --verbose

verbose mode


The losetup command is part of the util-linux package and is available from


If you are using the loadable module you must have the module loaded first with the command

# modprobe loop

Maybe also encryption modules are needed.

# modprobe des # modprobe cryptoloop

The following commands can be used as an example of using the loop device.

# dd if=/dev/zero of=/file bs=1k count=100
# losetup -e des /dev/loop0 /file
Init (up to 16 hex digits):
# mkfs -t ext2 /dev/loop0 100
# mount -t ext2 /dev/loop0 /mnt
# umount /dev/loop0
# losetup -d /dev/loop0

If you are using the loadable module you may remove the module with the command

# rmmod loop


/dev/loop0, /dev/loop1, ... loop devices (major=7)


DES encryption is painfully slow. On the other hand, XOR is terribly weak. Both are insecure nowadays. Some ciphers may require a licence for you to be allowed to use them.

Cryptoloop is deprecated in favor of dm-crypt. For more details see cryptsetup(8).

return value

losetup returns 0 on success, nonzero on failure. When losetup displays the status of a loop device, it returns 1 if the device is not configured and 2 if an error occurred which prevented losetup from determining the status of the device.

How can this site be more helpful to YOU ?

give  feedback