From Linux Man Pages
losetup - set up and control loop devices
SYNOPSIS
losetup [ -e encryption ] [options] loop_device file
losetup -F [options] loop_device [file]
losetup [ -d ] loop_device
losetup -a
DESCRIPTION
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 loop_device argument is given, the status of the corresponding
loop device is shown.
OPTIONS
-a Show status of all loop devices.
-C itercountk
Runs hashed password through itercountk thousand iterations of AES-256 before using it for loop encryp-
tion. This consumes lots of CPU cycles at loop setup/mount time but not thereafter. In combination with
password seed this slows down dictionary attacks. Iteration is not done in multi-key mode.
-d Detach the file or device associated with the specified loop device.
-e encryption
Enable data encryption. Following encryption types are recognized:
NONE Use no encryption (default).
XOR Use a simple XOR encryption.
AES128 AES
Use 128 bit AES encryption. Password is hashed with SHA-256 by default.
AES192 Use 192 bit AES encryption. Password is hashed with SHA-384 by default.
AES256 Use 256 bit AES encryption. Password is hashed with SHA-512 by default.
twofish128 twofish160 twofish192 twofish256
blowfish128 blowfish160 blowfish192 blowfish256
serpent128 serpent192 serpent256 mars128 mars192
mars256 rc6-128 rc6-192 rc6-256 tripleDES
These encryption types are available if they are enabled in kernel configuration or corresponding
modules have been loaded to kernel.
-F Reads and uses mount options from /etc/fstab that match specified loop device, including offset= size-
limit= encryption= pseed= phash= loinit= gpgkey= gpghome= itercountk= and looped to device/file name.
loop= option in /etc/fstab must match specified loop device name. Command line options take precedence in
case of conflict.
-G gpghome
Set gpg home directory to gpghome, so that gpg uses public/private keys on gpghome directory. This is only
used when gpgkey file needs to be decrypted using public/private keys. If gpgkey file is encrypted with
symmetric cipher only, public/private keys are not required and this option has no effect.
-H phash
Uses phash function to hash password. Available hash functions are sha256, sha384, sha512 and rmd160.
unhashed1, unhashed2 and unhashed3 functions also exist for compatibility with some obsolete implementa-
tions.
Hash function random does not ask for password but sets up random keys and attempts to put loop to multi-
key mode. When random/1777 hash type is used as mount option for mount program, mount program will create
new file system on the loop device and construct initial permissions of file system root directory from
octal digits that follow the slash character.
WARNING! DO NOT USE RANDOM HASH TYPE ON PARTITION WITH EXISTING IMPORTANT DATA ON IT. RANDOM HASH TYPE
WILL DESTROY YOUR DATA.
-I loinit
Passes a numeric value of loinit as a parameter to cipher transfer function. Cipher transfer functions are
free to interpret value as they want.
-K gpgkey
Password is piped to gpg so that gpg can decrypt file gpgkey which contains the real keys that are used to
encrypt loop device. If decryption requires public/private keys and gpghome is not specified, all users
use their own gpg public/private keys to decrypt gpgkey. Decrypted gpgkey should contain 1 or 64 or 65
keys, each key at least 20 characters and separated by newline. If decrypted gpgkey contains 64 or 65
keys, then loop device is put to multi-key mode. In multi-key mode first key is used for first sector,
second key for second sector, and so on. 65th key, if present, is used as additional input to MD5 IV com-
putation.
-o offset
The data start is moved offset bytes into the specified file or device. Normally offset is included in IV
(initialization vector) computations. If offset is prefixed with @ character, then offset is not included
in IV computations. @ prefix functionality may not be supported on some older kernels and/or loop drivers.
-p passwdfd
Read the passphrase from file descriptor passwdfd instead of the terminal. If -K option is not being used
(no gpg key file), then losetup attempts to read 65 keys from passwdfd, each key at least 20 characters
and separated by newline. If losetup successfully reads 64 or 65 keys, then loop device is put to multi-
key mode. If losetup encounters end-of-file before 64 keys are read, then only first key is used in sin-
gle-key mode.
-r Read-only mode.
-s sizelimit
Size of loop device is limited to sizelimit bytes. If unspecified or set to zero, loop device size is set
to maximum available (file size minus offset). This option may not be supported on some older kernels
and/or loop drivers.
-S pseed
Sets encryption password seed pseed which is appended to user supplied password before hashing. Using dif-
ferent seeds for different partitions makes dictionary attacks slower but does not prevent them if user
supplied password is guessable. Seed is not used in multi-key mode.
-t timeout
make the password prompt time out after timeout seconds have passed by.
-T Asks password twice.
-v Verbose mode.
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.
FILES
/dev/loop0,/dev/loop1,... loop devices (major=7)
EXAMPLE
The following commands can be used as an example of using the loop device.
dd if=/dev/zero of=/file bs=1k count=500
head -c 2925 /dev/random | uuencode -m - | head -n 66 \
| tail -n 65 | gpg --symmetric -a >/etc/fskey9.gpg
losetup -e AES128 -K /etc/fskey9.gpg /dev/loop0 /file
mkfs -t ext2 /dev/loop0
mount -t ext2 /dev/loop0 /mnt
...
umount /dev/loop0
losetup -d /dev/loop0
RESTRICTION
XOR encryption is terribly weak.
CATEGORY