Linux losetup command

Updated: 03/13/2021 by Computer Hope
losetup command

On Linux operating systems, the losetup command sets up and controls loop devices.

Syntax

losetup loopdev
losetup -a
losetup -j file [-o offset]
losetup -d loopdev...
losetup -f
losetup [{-e|-E} encryption] [-o offset] [--sizelimit size] [-p pfd] 
        [-r] {-f[--show]|loopdev} file
losetup -c loopdev

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.

A loop device, also known as vnd (vnode disk) or lofi (loopback file interface), is a pseudo-device that makes a file accessible as a block device.

If only the loopdev argument is given, the status of the corresponding loop device is shown.

Options

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 may not.
-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
-r, --read-only Set up read-only loop device
--show 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.

Encryption

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 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 takes the name of an arbitrary encryption type and finds the module that knows how to perform that encryption.

Exit status

losetup returns an exit status of 0 on success, and 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 that prevented losetup from determining the status of the device.

Limitations

DES encryption is painfully slow. On the other hand, the simple XOR method is terribly weak. Both are considered insecure compared to newer algorithms. Additionally, some ciphers may require a license for you to be allowed to use them.

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

Examples

If you are using the loadable loop device module, you must have the module loaded first with the command:

modprobe loop

Encryption modules may also be needed.

modprobe des
modprobe cryptoloop

The following commands are an example of using the loop device:

dd if=/dev/zero of=/file bs=1k count=100
losetup -e des /dev/loop0 /file
Password:
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

dd — Copy and convert the encoding of files.
mkfs — Build a Linux file system, usually a hard disk partition.
mount — Mount a file system so that its data may be accessed.