.sp
.in +5
.B losetup
-.I loopdev
+[\fIloopdev\fP]
.sp
.B losetup -l
.RB [ \-a ]
.B "losetup \-D"
.sp
.in -5
-Print the name of the first unused loop device:
-.sp
-.in +5
-.B "losetup \-f"
-.sp
-.in -5
Set up a loop device:
.sp
.in +5
.IR offset ]
.RB [ \-\-sizelimit
.IR size ]
+.RB [ \-\-sector\-size
+.IR size ]
.in +8
.RB [ \-Pr ]
.RB [ \-\-show ] " \-f" | \fIloopdev\fP
\fIloopdev\fP argument is given, the status of the corresponding loop
device is shown. If no option is given, all loop devices are shown.
.sp
-Note that the old output format (i.e. \fBlosetup -a\fR) with comma-delimited
+Note that the old output format (i.e., \fBlosetup -a\fR) with comma-delimited
strings is deprecated in favour of the \fB--list\fR output format.
+.sp
+It's possible to create more independent loop devices for the same backing
+file.
+.B This setup may be dangerous, can cause data loss, corruption and overwrites.
+Use \fB\-\-nooverlap\fR with \fB\-\-find\fR during setup to avoid this problem.
.SH OPTIONS
The \fIsize\fR and \fIoffset\fR
for non-root users. See also \fB\-\-list\fR. The old output format (as printed
without \fB--list)\fR is deprecated.
.TP
+.BR \-d , " \-\-detach " \fIloopdev\fR...
+Detach the file or device associated with the specified loop device(s). Note
+that since Linux v3.7 kernel uses "lazy device destruction". The detach
+operation does not return EBUSY error anymore if device is actively used by
+system, but it is marked by autoclear flag and destroyed later.
+.TP
+.BR \-D , " \-\-detach\-all"
+Detach all associated loop devices.
+.TP
+.BR \-f , " \-\-find " "\fR[\fIfile\fR]"
+Find the first unused loop device. If a \fIfile\fR argument is present, use
+the found device as loop device. Otherwise, just print its name.
+.IP "\fB\-\-show\fP"
+Display the name of the assigned loop device if the \fB\-f\fP option and a
+\fIfile\fP argument are present.
+.TP
+.BR \-L , " \-\-nooverlap"
+Check for conflicts between loop devices to avoid situation when the same
+backing file is shared between more loop devices. If the file is already used
+by another device then re-use the device rather than a new one. The option
+makes sense only with \fB\-\-find\fP.
+.TP
+.BR \-j , " \-\-associated " \fIfile\fR " \fR[\fB\-o \fIoffset\fR]"
+Show the status of all loop devices associated with the given \fIfile\fR.
+.TP
+.BR \-o , " \-\-offset " \fIoffset
+The data start is moved \fIoffset\fP bytes into the specified file or device. The \fIoffset\fP
+may be followed by the multiplicative suffixes; see above.
+.IP "\fB\-\-sizelimit \fIsize\fP"
+The data end is set to no more than \fIsize\fP bytes after the data start. The \fIsize\fP
+may be followed by the multiplicative suffixes; see above.
+.TP
+.BR \-b , " \-\-sector-size " \fIsize
+Set the logical sector size of the loop device in bytes (since Linux 4.14). The
+option may be used when create a new loop device as well as stand-alone command
+to modify sector size of the already existing loop device.
+.TP
.BR \-c , " \-\-set\-capacity " \fIloopdev
Force the loop driver to reread the size of the file associated with the
specified loop device.
.TP
-.BR \-d , " \-\-detach " \fIloopdev\fR...
-Detach the file or device associated with the specified loop device(s).
+.BR \-P , " \-\-partscan"
+Force the kernel to scan the partition table on a newly created loop device.
.TP
-.BR \-D , " \-\-detach\-all"
-Detach all associated loop devices.
+.BR \-r , " \-\-read\-only"
+Set up a read-only loop device.
.TP
.BR \-\-direct\-io [ =on | off ]
Enable or disable direct I/O for the backing file. The optional argument
can be either \fBon\fR or \fBoff\fR. If the argument is omitted, it defaults
to \fBon\fR.
.TP
-.BR \-f , " \-\-find"
-Find the first unused loop device. If a
-.I file
-argument is present, use the found device as loop device.
-Otherwise, just print its name.
-.TP
-.BR \-j , " \-\-associated " \fIfile
-Show the status of all loop devices associated with the given
-.IR file .
-.TP
-.BR \-J , " \-\-json"
-Use JSON format for \fB\-\-list\fP output.
+.BR \-v , " \-\-verbose"
+Verbose mode.
.TP
.BR \-l , " \-\-list"
If a loop device or the \fB-a\fR option is specified, print the default columns
for either the specified loop device or all loop devices; the default is to
-print info about all devices. See also \fB\-\-output\fP, \fB\-\-noheadings\fP
-\fB\-\-json\fP and \fB\-\-raw\fP.
+print info about all devices. See also \fB\-\-output\fP, \fB\-\-noheadings\fP,
+\fB\-\-raw\fP, and \fB\-\-json\fP.
.TP
-.BR \-n , " \-\-noheadings"
-Don't print headings for \fB\-\-list\fP output format.
-.TP
-.BR \-o , " \-\-offset " \fIoffset
-The data start is moved \fIoffset\fP bytes into the specified file or device.
-.TP
-.BR \-O , " \-\-output " \fIcolumns
+.BR \-O , " \-\-output " \fIcolumn\fR[,\fIcolumn\fR]...
Specify the columns that are to be printed for the \fB\-\-list\fP output.
+Use \fB\-\-help\fR to get a list of all supported columns.
.TP
-.BR \-P , " \-\-partscan"
-Force the kernel to scan the partition table on a newly created loop device.
+.B \-\-output\-all
+Output all available columns.
+.TP
+.BR \-n , " \-\-noheadings"
+Don't print headings for \fB\-\-list\fP output format.
.IP "\fB\-\-raw\fP"
Use the raw \fB\-\-list\fP output format.
.TP
-.BR \-r , " \-\-read\-only"
-Set up a read-only loop device.
-.IP "\fB\-\-sizelimit \fIsize\fP"
-The data end is set to no more than \fIsize\fP bytes after the data start.
-.IP "\fB\-\-show\fP"
-Display the name of the assigned loop device if the
-.B \-f
-option and a
-.I file
-argument are present.
-.TP
-.BR \-v , " \-\-verbose"
-Verbose mode.
+.BR \-J , " \-\-json"
+Use JSON format for \fB\-\-list\fP output.
.TP
.BR \-V , " \-\-version"
Display version information and exit.
.SH ENCRYPTION
.B Cryptoloop is no longer supported in favor of dm-crypt.
-.B For more details see cryptsetup (8).
+.B For more details see cryptsetup(8).
.SH RETURN VALUE
.B losetup
The following commands can be used as an example of using the loop device.
.nf
.IP
-# dd if=/dev/zero of=~/file.img bs=1MiB count=10
+# dd if=/dev/zero of=~/file.img bs=1024k count=10
# losetup --find --show ~/file.img
/dev/loop0
# mkfs -t ext2 /dev/loop0
Theodore Ts'o <tytso@athena.mit.edu>
.SH AVAILABILITY
The losetup command is part of the util-linux package and is available from
-ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
+https://www.kernel.org/pub/linux/utils/util-linux/.