Editing Man/ploop.8

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 20: Line 20:
 
[<b>-t&nbsp;</b><i>fstype</i>]
 
[<b>-t&nbsp;</b><i>fstype</i>]
 
[<b>-b&nbsp;</b><i>blocksize</i>]
 
[<b>-b&nbsp;</b><i>blocksize</i>]
[<b>-B&nbsp;</b><i>fsblocksize</i>] [<b>--nolazy</b>]
+
[<b>-B&nbsp;</b><i>fsblocksize</i>] <i>delta_file</i></p></td></tr>
<i>delta_file</i></p> </td></tr>
 
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 64: Line 63:
 
<b>-m</b> <i>mount_point</i> | <i>DiskDescriptor.xml</i> |
 
<b>-m</b> <i>mount_point</i> | <i>DiskDescriptor.xml</i> |
 
<i>image_file</i> }</p></td></tr>
 
<i>image_file</i> }</p></td></tr>
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="20%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;replace</b></p></td>
 
<td width="69%">
 
 
<p style="margin-top: 1em">{ <b>-u</b> <i>uuid</i> |
 
<b>-l</b> <i>level</i> | <b>-o</b> <i>cur_image_file</i> }
 
[<b>--keep-name</b>] <b>-i</b> <i>image_file
 
DiskDescriptor.xml</i></p> </td></tr>
 
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 93: Line 81:
 
<p style="margin-top: 1em">{ <b>-f</b> <i>format</i> |
 
<p style="margin-top: 1em">{ <b>-f</b> <i>format</i> |
 
<b>-v</b> <i>version</i> } <i>DiskDescriptor.xml</i></p></td></tr>
 
<b>-v</b> <i>version</i> } <i>DiskDescriptor.xml</i></p></td></tr>
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="20%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;check</b></p></td>
 
<td width="69%">
 
</td></tr>
 
</table>
 
 
<p style="margin-left:11%;">[<b>-u&nbsp;</b><i>uuid</i>]
 
<i>DiskDescriptor.xml</i></p>
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;check</b></p></td>
 
<td width="72%">
 
 
<p style="margin-top: 1em">[<b>--force</b>]
 
[<b>--hard-force</b>] [<b>--check</b>] [<b>--ro</b>]
 
[<b>--silent</b>] [<b>--drop-inuse</b>] [<b>--raw</b>]
 
[<b>--blocksize&nbsp;</b><i>size</i>]
 
[<b>--repair-sparse</b>] <i>image_file</i></p></td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;info</b></p></td>
 
<td width="72%">
 
 
<p style="margin-top: 1em">[<b>-s</b>] [<b>-d</b>]
 
<i>DiskDescriptor.xml</i></p> </td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;list</b></p></td>
 
<td width="72%">
 
 
<p style="margin-top: 1em">[<b>-a</b>]</p></td></tr>
 
 
</table>
 
</table>
  
Line 158: Line 103:
  
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-merge</b></p> </td>
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-merge</b></p> </td>
<td width="57%">
+
<td width="43%">
  
<p style="margin-top: 1em">[<b>-u&nbsp;</b><i>uuid&nbsp;</i>[<b>-U&nbsp;</b><i>uuid2</i>]&nbsp;|&nbsp;<b>-A</b>]
+
<p style="margin-top: 1em">[<b>-u&nbsp;</b><i>uuid</i>]
[<b>-n&nbsp;</b><i>new_delta</i>]
+
<i>DiskDescriptor.xml</i></p> </td>
<i>DiskDescriptor.xml</i></p> </td></tr>
+
<td width="14%">
 +
</td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 168: Line 114:
  
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-switch</b></p> </td>
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-switch</b></p> </td>
<td width="57%">
+
<td width="43%">
  
 
<p style="margin-top: 1em"><b>-u</b> <i>uuid
 
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td></tr>
+
DiskDescriptor.xml</i></p> </td>
 +
<td width="14%">
 +
</td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 177: Line 125:
  
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-delete</b></p> </td>
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-delete</b></p> </td>
<td width="57%">
+
<td width="43%">
  
 
<p style="margin-top: 1em"><b>-u</b> <i>uuid
 
<p style="margin-top: 1em"><b>-u</b> <i>uuid
DiskDescriptor.xml</i></p> </td></tr>
+
DiskDescriptor.xml</i></p> </td>
 +
<td width="14%">
 +
</td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 186: Line 136:
  
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-list</b></p> </td>
 
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot-list</b></p> </td>
<td width="57%">
+
<td width="43%"></td>
 +
<td width="14%">
 
</td></tr>
 
</td></tr>
 
</table>
 
</table>
  
 
<p style="margin-left:11%;">[<b>-H</b>]
 
<p style="margin-left:11%;">[<b>-H</b>]
[<b>-u&nbsp;</b><i>uuid</i>] [<b>-s</b>]
+
[<b>-u&nbsp;</b><i>uuid</i>]
 
[<b>-o&nbsp;</b><i>field</i>[,<i>field</i>...]]
 
[<b>-o&nbsp;</b><i>field</i>[,<i>field</i>...]]
 
<i>DiskDescriptor.xml</i></p>
 
<i>DiskDescriptor.xml</i></p>
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="15%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;copy</b></p></td>
 
<td width="2%"></td>
 
<td width="72%">
 
 
<p style="margin-top: 1em"><b>-s</b> <i>device</i>
 
[<b>-F&nbsp;</b><i>stop_command</i>] {
 
[<b>-d&nbsp;</b><i>file</i>] |
 
[<b>-o&nbsp;</b><i>output_fd</i>]
 
[<b>-f&nbsp;</b><i>feedback_fd</i>] }</p></td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="15%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;copy</b></p></td>
 
<td width="2%"></td>
 
<td width="72%">
 
 
<p style="margin-top: 1em"><b>-d</b> <i>file</i>
 
[<b>-i&nbsp;</b><i>input_fd</i>]
 
[<b>-f&nbsp;</b><i>feedback_fd</i>]</p> </td></tr>
 
</table>
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;balloon&nbsp;discard</b></p> <td width="45%"></td>
 
<td width="50%">
 
 
<p style="margin-top: 1em">[<b>--automount</b>]
 
[<b>--to-free&nbsp;</b><i>size</i>]
 
[<b>--min-block&nbsp;</b><i>min_size</i>] [<b>--defrag</b>]
 
<i>DiskDescriptor.xml</i></p> </td>
 
<td width="5%">
 
</td></tr>
 
</table>
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;restore-descriptor</b></p> <td width="49%"></td>
 
<td width="51%">
 
 
<p style="margin-top: 1em"><b>-f</b> <i>format</i>
 
[<b>-b&nbsp;</b><i>blocksize</i>] <i>disk_dir
 
delta_file</i></p> </td></tr>
 
</table>
 
  
 
== DESCRIPTION ==
 
== DESCRIPTION ==
Line 272: Line 168:
 
the form with DiskDescriptor.xml.</p>
 
the form with DiskDescriptor.xml.</p>
  
== OPTIONS ==
+
=== BASIC COMMANDS ===
 
 
<p style="margin-left:11%; margin-top: 1em">Run
 
<b>ploop</b> without any options to show a short synopsys,
 
including a list of commands.</p>
 
 
 
<p style="margin-left:11%; margin-top: 1em">Run
 
<b>ploop</b> <i>command</i> to show synopsys and a short
 
description for a particular <i>command</i>.</p>
 
 
 
=== Basic commands ===
 
  
 
==== init ====
 
==== init ====
  
<p style="margin-top: 1em">Create and initalize a ploop
+
<p style="margin-left:11%; margin-top: 1em">Create and
image file and a corresponding <b>DiskDescriptor.xml</b>
+
initalize a ploop image file and a corresponding
file.</p>
+
<b>DiskDescriptor.xml</b> file.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 305: Line 191:
 
[<b>-t&nbsp;</b><i>fstype</i>]
 
[<b>-t&nbsp;</b><i>fstype</i>]
 
[<b>-b&nbsp;</b><i>blocksize</i>]
 
[<b>-b&nbsp;</b><i>blocksize</i>]
[<b>-B&nbsp;</b><i>fsblocksize</i>] [<b>--nolazy</b>]
+
[<b>-B&nbsp;</b><i>fsblocksize</i>] <i>delta_file</i></p></td></tr>
<i>delta_file</i></p> </td></tr>
 
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 328: Line 213:
 
<td width="72%">
 
<td width="72%">
  
<p>Image format. See <b>Image formats</b> below.</p></td></tr>
+
<p>Image format. See <b>IMAGE FORMATS</b> below.</p></td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 339: Line 224:
 
<p>Image version, can be <b>1</b> or <b>2</b>. Default is
 
<p>Image version, can be <b>1</b> or <b>2</b>. Default is
 
<b>2</b>, if supported by the kernel.</p></td></tr>
 
<b>2</b>, if supported by the kernel.</p></td></tr>
</table>
+
<tr valign="top" align="left">
 +
<td width="11%"></td>
 +
<td width="15%">
  
<p style="margin-left:11%;"><b>-t
+
<p><b>-t</b> <i>fstype</i></p></td>
none</b>|<b>ext3</b>|<b>ext4</b></p>
+
<td width="2%"></td>
 +
<td width="72%">
  
<p style="margin-left:28%;">File system type to create,
+
<p>File system type. If this parameter is specified, a
default is <b>ext4</b>. Unless <b>none</b> is specified, a
 
 
partition, a filesystem, and a balloon file will be created
 
partition, a filesystem, and a balloon file will be created
inside the image. Using <b>ext3</b> is not recommended.</p>
+
inside the image. Currently supported types are <b>ext3</b>
 +
and <b>ext4</b>. Using <b>ext3</b> is not recommended.</p></td></tr>
 +
</table>
  
 
<p style="margin-left:11%;"><b>-b</b> <i>blocksize</i></p>
 
<p style="margin-left:11%;"><b>-b</b> <i>blocksize</i></p>
Line 360: Line 249:
 
<p style="margin-left:28%;">Filesystem block size, in
 
<p style="margin-left:28%;">Filesystem block size, in
 
bytes. Default is 4096 bytes.</p>
 
bytes. Default is 4096 bytes.</p>
 
<p style="margin-left:11%;"><b>-n</b>, <b>--nolazy</b></p>
 
 
<p style="margin-left:28%;">Disable lazy mkfs
 
initialization (which is enabled by default). Currently that
 
means if this flag is set, <b>mkfs.ext4</b>(8) is called
 
with <b>-Elazy_itable_init=0,lazy_journal_init=0</b>
 
options.</p>
 
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 384: Line 265:
 
==== mount ====
 
==== mount ====
  
<p style="margin-top: 1em">Assemble a ploop device from one
+
<p style="margin-left:11%; margin-top: 1em">Assemble a
or more delta images, start it, and optionally mount the
+
ploop device from one or more delta images, start it, and
file system residing on the device.</p>
+
optionally mount the file system residing on the device.</p>
  
<p style="margin-top: 1em">Two forms of this command are
+
<p style="margin-left:11%; margin-top: 1em">Two forms of
provided. The first one accepts a list of delta images to be
+
this command are provided. The first one accepts a list of
used for assembling the ploop device, while the second one
+
delta images to be used for assembling the ploop device,
is using information from a DiskDescriptor.xml file. Please
+
while the second one is using information from a
note that not all mount options are applicable to both
+
DiskDescriptor.xml file. Please note that not all mount
forms.</p>
+
options are applicable to both forms.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 474: Line 355:
 
<td width="71%">
 
<td width="71%">
  
<p>Ploop device to use, e.g. <b>/dev/ploop0</b>. If not
+
<p>Ploop device to use, e.g.i, <b>/dev/ploop0</b>. If not
specified, a randomly numbered ploop device will be
+
specified, the first unused ploop device will be used.</p></td></tr>
used.</p> </td></tr>
 
 
</table>
 
</table>
  
Line 529: Line 409:
 
==== umount ====
 
==== umount ====
  
<p style="margin-top: 1em">Unmount a ploop device. Since a
+
<p style="margin-left:11%; margin-top: 1em">Unmount a ploop
mounted ploop device consists of an image (or multiple
+
device. Since a mounted ploop device consists of an image
images), a device, and (optionally) a file system mounted to
+
(or multiple images), a device, and a file system mounted to
 
a directory, one can refer to any of the above entities to
 
a directory, one can refer to any of the above entities to
 
specify what to unmount. The recommended way is to use
 
specify what to unmount. The recommended way is to use
Line 557: Line 437:
 
<td width="69%">
 
<td width="69%">
  
<p>Ploop device, e.g., <b>/dev/ploop0</b>.</p></td></tr>
+
<p>Ploop device, e.g., <b>/dev/ploop0</b>. If not
 +
specified, the first unused ploop device will be used.</p></td></tr>
 
</table>
 
</table>
  
Line 585: Line 466:
 
</td></tr>
 
</td></tr>
 
</table>
 
</table>
 
==== replace ====
 
 
<p style="margin-top: 1em">Replaces a ploop image by a
 
different (but identical) one, on a running ploop device.
 
Only a read-only image (e.g. a non-top one in a stacked
 
configuration) can be replaced. An image to be replaced is
 
specified by either one of level, UUID, or the current image
 
file.</p>
 
 
<p style="margin-top: 1em">If a new image is not identical
 
to the old one (i.e. its content differs) or not suitable
 
for ploop in any other way (e.g. it is sparse, or resides on
 
a file system not supported by ploop), the result is
 
undefined.</p>
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="20%">
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;replace</b></p></td>
 
<td width="1%"></td>
 
<td width="68%">
 
 
<p style="margin-top: 1em">{ <b>-u</b> <i>uuid</i> |
 
<b>-l</b> <i>level</i> | <b>-o</b> <i>cur_image_file</i> }
 
[<b>--keep-name</b>] <b>-i</b> <i>image_file
 
DiskDescriptor.xml</i></p> </td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="20%">
 
 
<p><b>-u</b> <i>uuid</i></p></td>
 
<td width="1%"></td>
 
<td width="68%">
 
 
<p>A <i>uuid</i> of an image to be replaced.</p></td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="20%">
 
 
<p><b>-l</b> <i>level</i></p></td>
 
<td width="1%"></td>
 
<td width="68%">
 
 
<p>A level of image to be replaced. A level is a distance
 
of an image from the base delta.</p></td></tr>
 
</table>
 
 
<p style="margin-left:11%;"><b>-o</b>
 
<i>cur_image_file</i></p>
 
 
<p style="margin-left:32%;">A current image file (the one
 
to replace).</p>
 
 
<p style="margin-left:11%;"><b>-k</b>,
 
<b>--keep-name</b></p>
 
 
<p style="margin-left:32%;">A flag to keep the same image
 
file name. If this flag is set, after the image is replaced,
 
a new <i>image_file</i> is renamed to the old one (removing
 
the old, now unused, image), so no modification to
 
DiskDescriptor.xml is required.</p>
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="20%">
 
 
<p><b>-i</b> <i>image_file</i></p></td>
 
<td width="1%"></td>
 
<td width="37%">
 
 
<p>A new replacement image.</p></td>
 
<td width="31%">
 
</td></tr>
 
</table>
 
 
<p style="margin-left:11%;"><i>DiskDescriptor.xml</i></p>
 
 
<p style="margin-left:32%;">Path to the DiskDescriptor.xml
 
file with information about images.</p>
 
  
 
==== resize ====
 
==== resize ====
  
<p style="margin-top: 1em">Resize a ploop image. Both
+
<p style="margin-left:11%; margin-top: 1em">Resize a ploop
online (i.e. when ploop is mounted and used) and offline
+
image. Online resize is supported, and the tool can either
resize is supported, and the tool can either grow or shrink
+
grow or shrink the ploop image and the underlying file
both the ploop image and the underlying file system.</p>
+
system.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 711: Line 507:
 
==== convert ====
 
==== convert ====
  
<p style="margin-top: 1em">Convert either ploop image
+
<p style="margin-left:11%; margin-top: 1em">Convert ploop
format or version (but not both at the same time).
+
image format or version.</p>
Conversion can only be performed offline (i.e. image should
 
not be in use).</p>
 
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 736: Line 530:
 
<td width="68%">
 
<td width="68%">
  
<p>Image format. See <b>Image formats</b> below.</p></td></tr>
+
<p>Image format. See <b>IMAGE FORMATS</b> below.</p></td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 745: Line 539:
 
<td width="68%">
 
<td width="68%">
  
<p>Image version, can be <b>1</b> or <b>2</b>.</p></td></tr>
+
<p>Image version, can be <b>1</b> or <b>2</b>. Only offline
</table>
+
image version conversion is supported.</p></td></tr>
 
 
==== check ====
 
 
 
<p style="margin-top: 1em">Check the internal consistency
 
of (and possibly repair) a ploop image (or images). Note
 
that image(s) to be tested should not be in use.</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;check</b></p></td>
 
<td width="1%"></td>
 
<td width="43%">
 
 
 
<p style="margin-top: 1em">[<b>-u&nbsp;</b><i>uuid</i>]
 
<i>DiskDescriptor.xml</i></p> </td>
 
<td width="28%">
 
</td></tr>
 
</table>
 
 
 
<p style="margin-top: 1em">Check all the images in
 
<i>DiskDescriptor.xml</i> up to the one denoted by the
 
<i>uuid</i> (or default top delta, if UUID is not
 
specified). Default built-in check options are used, and the
 
ones specified on the command line, if any, are ignored.</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;check</b></p></td>
 
<td width="1%"></td>
 
<td width="71%">
 
 
 
<p style="margin-top: 1em">[<b>--force</b>]
 
[<b>--hard-force</b>] [<b>--check</b>] [<b>--ro</b>]
 
[<b>--silent</b>] [<b>--drop-inuse</b>] [<b>--raw</b>]
 
[<b>--blocksize&nbsp;</b><i>size</i>]
 
[<b>--repair-sparse</b>] <i>DiskDescriptor.xml</i> |
 
<i>image_file</i></p> </td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
 
<p><b>-f</b>, <b>--force</b></p></td>
 
<td width="1%"></td>
 
<td width="71%">
 
 
 
<p>Force check even if image&rsquo;s dirty flag is not
 
set.</p> </td></tr>
 
</table>
 
 
 
<p style="margin-left:11%;"><b>-F</b>,
 
<b>--hard-force</b></p>
 
 
 
<p style="margin-left:29%;">Same as <b>-f</b>, plus try to
 
fix even fatal errors (can be dangerous).</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
 
<p><b>-c</b>, <b>--check</b></p></td>
 
<td width="1%"></td>
 
<td width="63%">
 
 
 
<p>Check for duplicated blocks and holes.</p></td>
 
<td width="8%">
 
</td></tr>
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="17%">
 
 
 
<p><b>-r</b>, <b>--ro</b></p></td>
 
<td width="1%"></td>
 
<td width="63%">
 
 
 
<p>Read-only access, do not modify image(s).</p></td>
 
<td width="8%">
 
</td></tr>
 
</table>
 
 
 
<p style="margin-left:11%;"><b>-s</b>, <b>--silent</b></p>
 
 
 
<p style="margin-left:29%;">Be more silent, only report
 
errors.</p>
 
 
 
<p style="margin-left:11%;"><b>-d</b>,
 
<b>--drop-inuse</b></p>
 
 
 
<p style="margin-left:29%;">Drop image &quot;in use&quot;
 
flag.</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="14%">
 
 
 
<p><b>-R</b>, <b>--raw</b></p></td>
 
<td width="4%"></td>
 
<td width="71%">
 
 
 
<p>Specifies that <i>image_file</i> is a raw ploop
 
image.</p> </td></tr>
 
</table>
 
 
 
<p style="margin-left:11%;"><b>-b</b>, <b>--blocksize</b>
 
<i>size</i></p>
 
 
 
<p style="margin-left:29%;">Image cluster block size, in
 
sectors (for raw images).</p>
 
 
 
<p style="margin-left:11%;"><b>-S</b>,
 
<b>--repair-sparse</b></p>
 
 
 
<p style="margin-left:29%;">Repair sparse image(s).</p>
 
 
 
=== Miscellaneous commands ===
 
 
 
==== info ====
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="15%">
 
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;info</b></p></td>
 
<td width="2%"></td>
 
<td width="27%">
 
 
 
<p style="margin-top: 1em"><i>DiskDescriptor.xml</i></p></td>
 
<td width="45%">
 
</td></tr>
 
</table>
 
 
 
<p>When run without any options, show information about
 
disk space and inodes usage and limits on the inner ploop
 
filesystem, somewhat similar to [[Man/vzquota.8|<b>vzquota</b>(8)]]
 
<b>stat</b> or <b>show</b> commands.</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="15%">
 
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;info</b></p></td>
 
<td width="2%"></td>
 
<td width="43%">
 
 
 
<p style="margin-top: 1em">[<b>-s</b>] [<b>-d</b>]
 
<i>DiskDescriptor.xml</i></p> </td>
 
<td width="29%">
 
</td></tr>
 
</table>
 
 
 
<p>Either one or both options can be used together. Option
 
<b>-s</b> is used to show information about ploop device
 
size, block size, and format version. Option <b>-d</b> is
 
used to show a corresponding ploop block device, it
 
available. file.</p>
 
 
 
==== list ====
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="15%">
 
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;list</b></p></td>
 
<td width="2%"></td>
 
<td width="6%">
 
 
 
<p style="margin-top: 1em">[<b>-a</b>]</p></td>
 
<td width="66%">
 
</td></tr>
 
</table>
 
 
 
<p style="margin-top: 1em">Shows a list of running ploop
 
devices (first column) and their corresponding base images.
 
With option <b>-a</b> it also shows a mount point (third
 
column).</p>
 
 
 
==== restore-descriptor ====
 
 
 
<p style="margin-top: 1em">Create DiskDescriptor.xml file
 
suitable for <i>delta_file</i> and put it into
 
<i>disk_dir</i>.</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="37%">
 
 
 
<p style="margin-top: 1em"><b>ploop&nbsp;restore-descriptor</b></p> </td>
 
<td width="1%"></td>
 
<td width="51%">
 
 
 
<p style="margin-top: 1em"><b>-f</b> <i>format</i>
 
[<b>-b&nbsp;</b><i>blocksize</i>] <i>disk_dir
 
delta_file</i></p> </td></tr>
 
 
</table>
 
</table>
 
<p style="margin-top: 1em">Read image header in case of
 
ploop1 format or check raw image size and generate proper
 
DiskDescriptor.xml file. You can specify blocksize for raw
 
images. If it&rsquo;s not specified it will be choosen
 
automatically - largest possible value between 32K and 1M.
 
Raw image size must be aligned to blocksize.</p>
 
 
<p style="margin-top: 1em">This command works only for base
 
images. Snapshots are not supported.</p>
 
 
=== Working with snapshots ===
 
 
<p style="margin-top: 1em">Ploop snapshots is a mechanism
 
for creating and managing instant states of a running file
 
system. Creating a snapshot leads to creating a new empty
 
ploop image which is layered on top of an old one, then all
 
writes are ending up in the top image, and reads are falling
 
through to a lower level. There can be up to 126) stacked
 
ploop images (or snapshots). Online snapshot merging is also
 
supported.</p>
 
 
<p style="margin-top: 1em">Snapshots are identified by a
 
unique UUID. A snapshot can be mounted using <b>ploop mount
 
-u</b> <i>uuid</i> command, see above.</p>
 
  
 
==== snapshot ====
 
==== snapshot ====
  
<p style="margin-top: 1em">Create a ploop snapshot.</p>
+
<p style="margin-left:11%; margin-top: 1em">Create a ploop
 +
snapshot.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,018: Line 576:
 
==== snapshot-merge ====
 
==== snapshot-merge ====
  
<p style="margin-top: 1em">Merge a snapshot with its
+
<p style="margin-left:11%; margin-top: 1em">Merge a
parent. That is, contents of the delta file corresponding to
+
snapshot with its parent.</p>
the snapshot is merged to a parent delta, then the file is
 
removed. Parent snapshot UUID is lost (as it is replaced
 
with the <i>uuid</i> specified). All snapshots having the
 
lost one as a parent are updated to have the <i>uuid</i> as
 
its parent.</p>
 
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,036: Line 589:
 
<td width="57%">
 
<td width="57%">
  
<p style="margin-top: 1em">[<b>-u&nbsp;</b><i>uuid&nbsp;</i>[<b>-U&nbsp;</b><i>uuid2</i>]&nbsp;|&nbsp;<b>-A</b>]
+
<p style="margin-top: 1em">[<b>-u&nbsp;</b><i>uuid</i>]
[<b>-n&nbsp;</b><i>new_delta</i>]
 
 
<i>DiskDescriptor.xml</i></p> </td></tr>
 
<i>DiskDescriptor.xml</i></p> </td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
Line 1,047: Line 599:
 
<td width="57%">
 
<td width="57%">
  
<p>Specify a single snapshot <i>uuid</i> to merge. If this
+
<p>Specify a snapshot <i>uuid</i> to merge. If this option
option is not specified, the top delta will be used.</p></td></tr>
+
is not specified, the top delta will be used.</p></td></tr>
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="31%">
 
 
 
<p><b>-U</b> <i>uuid2</i></p></td>
 
<td width="1%"></td>
 
<td width="57%">
 
 
 
<p>Together with <b>-u</b> <i>uuid</i>, specify that all
 
snapshots in the range <i>uuid</i>...<i>uuid2</i> are to be
 
merged.</p> </td></tr>
 
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
Line 1,071: Line 612:
 
snapshots have more than a single child, they will be
 
snapshots have more than a single child, they will be
 
impossible to merge.</p></td></tr>
 
impossible to merge.</p></td></tr>
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="31%">
 
 
<p><b>-n</b> <i>new_delta</i></p></td>
 
<td width="1%"></td>
 
<td width="57%">
 
 
<p>If this option is set, instead of merging the child
 
delta into its parent, both the parent and the child deltas
 
are merged into a newly created file <i>new_delta</i>, which
 
replaces the parent delta. Both deltas are then removed.</p></td></tr>
 
 
</table>
 
</table>
  
 
==== snapshot-switch ====
 
==== snapshot-switch ====
  
<p style="margin-top: 1em">Switch to the specified
+
<p style="margin-left:11%; margin-top: 1em">Switch to the
snapshot. This operation can only be performed while ploop
+
specified snapshot. This operation can only be performed
is not running (i.e. is unmounted). The current top delta
+
while ploop is not running (i.e. is unmounted). The current
image will be removed.</p>
+
top delta image will be removed.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,117: Line 646:
 
==== snapshot-delete ====
 
==== snapshot-delete ====
  
<p style="margin-top: 1em">Delete the specifed snapshot.
+
<p style="margin-left:11%; margin-top: 1em">Delete the
This operation can only be performed if the specified
+
specifed snapshot. This operation can only be performed if
snapshot is not active. In case snapshot doesn&rsquo;t have
+
the specified snapshot is not active. In case snapshot
any children, it will simply be removed. In case snapshot
+
doesn&rsquo;t have any children, it will simply be removed.
has a single child, it will be merged to that child.
+
In case snapshot has a single child, it will be merged to
Deleting a snapshot that has multiple children is currently
+
that child. Deleting a snapshot that has multiple children
not supported (but can be performed manually in an iterative
+
is currently not supported (but can be performed manually in
fashion).</p>
+
an iterative fashion).</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,151: Line 680:
 
==== snapshot-list ====
 
==== snapshot-list ====
  
<p style="margin-top: 1em">List available snapshots.</p>
+
<p style="margin-left:11%; margin-top: 1em">List available
 +
snapshots.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,164: Line 694:
  
 
<p style="margin-top: 1em">[<b>-H</b>]
 
<p style="margin-top: 1em">[<b>-H</b>]
[<b>-u&nbsp;</b><i>uuid</i>] [<b>-s</b>]
+
[<b>-u&nbsp;</b><i>uuid</i>]
 
[<b>-o&nbsp;</b><i>field</i>[,<i>field</i>...]]
 
[<b>-o&nbsp;</b><i>field</i>[,<i>field</i>...]]
 
<i>DiskDescriptor.xml</i></p> </td></tr>
 
<i>DiskDescriptor.xml</i></p> </td></tr>
Line 1,184: Line 714:
 
<p style="margin-left:42%;">Filter the output to a
 
<p style="margin-left:42%;">Filter the output to a
 
specified <i>uuid</i>.</p>
 
specified <i>uuid</i>.</p>
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="21%">
 
 
<p><b>-s</b>, <b>--snapshot</b></p></td>
 
<td width="10%"></td>
 
<td width="58%">
 
 
<p>List in terms of snapshots. By default (i.e. without
 
this option) the command lists all deltas, and top delta is
 
marked as current. When this option is used, top delta is
 
not listed, and the snapshot which is the parent of top
 
delta is marked as current.</p></td></tr>
 
</table>
 
  
 
<p style="margin-left:11%;"><b>-o</b>, <b>--output</b>
 
<p style="margin-left:11%;"><b>-o</b>, <b>--output</b>
Line 1,214: Line 727:
 
&bull; <b>fname</b> - snapshot image file name.</p>
 
&bull; <b>fname</b> - snapshot image file name.</p>
  
=== Image copying ===
+
=== ADVANCED COMMANDS ===
 
 
<p style="margin-top: 1em"><b>ploop copy</b> is a mechanism
 
of effective copying of a top ploop image with the help of
 
build-in ploop kernel driver feature called write tracker.
 
Write tracker is a feature that lets <b>ploop copy</b> to
 
iteratively obtain a list of modified image blocks from the
 
kernel. Two <b>ploop copy</b> processes are required for
 
iterative top delta transfer. These are used by
 
<b>vzmigrate(8).</b></p>
 
  
==== copy (sending) ====
+
==== shapshot ====
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,231: Line 735:
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
<td width="15%">
+
<td width="21%">
  
<p style="margin-top: 1em"><b>ploop&nbsp;copy</b></p></td>
+
<p style="margin-top: 1em"><b>ploop&nbsp;snapshot</b></p></td>
 
<td width="2%"></td>
 
<td width="2%"></td>
<td width="72%">
+
<td width="66%">
  
<p style="margin-top: 1em"><b>-s</b> <i>device</i>
+
<p style="margin-top: 1em">[<b>-F</b>]
[<b>-F&nbsp;</b><i>stop_command</i>] {
+
[<b>-d&nbsp;</b><i>device</i>] <i>image_file</i></p></td></tr>
[<b>-d&nbsp;</b><i>file</i>] |
+
<tr valign="top" align="left">
[<b>-o&nbsp;</b><i>output_fd</i>]
+
<td width="11%"></td>
[<b>-f&nbsp;</b><i>feedback_fd</i>] }</p></td></tr>
+
<td width="21%">
</table>
 
  
<p style="margin-top: 1em">This command enables the
+
<p><b>-F</b></p></td>
in-kernel write tracker for the specified ploop
+
<td width="2%"></td>
<i>device,</i> then sends all the data blocks from the top
+
<td width="66%">
delta image to a pipe specified by the <i>output_fd</i>
 
argument (<b>stdout</b>, i.e. <b>1</b> by default),
 
supposedly read by destination <b>ploop copy</b>, or a
 
<i>file</i>. After that, it iteratively gets the list of the
 
modified data blocks from the kernel and sends those blocks
 
again. After a number of iterations (or when the list is
 
empty), it executes the <i>stop_command</i> (this could be
 
<b>vzctl stop</b> or <b>vzctl chkpnt</b>) and does the last
 
iteration of sending the modified data blocks. Finally, it
 
checks that the data were not modified, error is returned
 
otherwise.</p>
 
 
 
<p style="margin-top: 1em">If <i>feedback_fd</i> is
 
specified, it is used to read back from the ploop copy
 
receiving side. The feedback channel is currently used to
 
wait for <b>fdatasync</b>(2) completion.</p>
 
 
 
==== copy (receiving) ====
 
  
<table width="100%" border="0" rules="none" frame="void"
+
<p>Freeze filesystem before making a snapshot. If the
      cellspacing="0" cellpadding="0">
+
option is not given, the file system will not be frozen and
 +
snapshot will have an inconsistent file system. If you need
 +
a quick snapshot, do not use this option. Journal will be
 +
replayed when you mount the snapshot.</p></td></tr>
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
<td width="15%">
+
<td width="21%">
  
<p style="margin-top: 1em"><b>ploop&nbsp;copy</b></p></td>
+
<p><b>-d</b> <i>device</i></p></td>
 
<td width="2%"></td>
 
<td width="2%"></td>
<td width="58%">
+
<td width="66%">
  
<p style="margin-top: 1em"><b>-d</b> <i>file</i>
+
<p>Ploop device, e.g., <b>/dev/ploop0</b>.</p></td></tr>
[<b>-i&nbsp;</b><i>input_fd</i>]
 
[<b>-f&nbsp;</b><i>feedback_fd</i>]</p> </td>
 
<td width="14%">
 
</td></tr>
 
</table>
 
 
 
<p style="margin-top: 1em">Reads the data blocks (provided
 
by the source <b>ploop copy</b>) from the file descriptor
 
<i>input_fd</i> (<b>stdin</b>, i.e. <b>0</b> by default) and
 
writes them to the <i>file</i>.</p>
 
 
 
<p style="margin-top: 1em">If <i>feedback_fd</i> is
 
specified, it is used to send status back to the ploop copy
 
sending side.</p>
 
 
 
=== Ballooning ===
 
 
 
<p style="margin-top: 1em">Since there is no online shrink
 
support in <b>ext4</b> file system, ploop internally uses a
 
technique called &quot;ballooning&quot; as a work around to
 
shrink its images.</p>
 
 
 
<p style="margin-top: 1em">Ballooning operation consists of
 
inflating a special balloon file (invisible for ordinary
 
users), loading fiemap info of the inflated balloon to the
 
kernel, relocating blocks of the image file from the tail to
 
the space specified by fiemap info, and truncating the tail
 
of the image file. Result is the image file of a smaller
 
size.</p>
 
 
 
<p style="margin-top: 1em">However, it is quite possible
 
that inflated balloon file will only span blocks that were
 
never touched before. Those will look like &quot;not
 
allocated&quot; space from the kernel ploop point of view.
 
In this case nothing will be relocated and nothing
 
truncated.</p>
 
 
 
<p style="margin-top: 1em">So, if balloon operation
 
succeeded, it&rsquo;s only guaranteed that a user of ploop
 
device won&rsquo;t be able to consume more space than the
 
initial block device size minus the size of the inflated
 
balloon. On the other hand, if a user of block device used a
 
lot of space on it, then freed the significant part of used
 
space, balloon operation will result in significant truncate
 
of image file.</p>
 
 
 
<p style="margin-top: 1em">All the ploop ballooning logic
 
is hidden from the end user, so while a number of low-level
 
commands exist for working with ploop ballooning, those are
 
not needed and therefore are not documented here, except for
 
a single command.</p>
 
 
 
==== balloon discard ====
 
 
 
<p style="margin-top: 1em">In a situation when a lot of
 
disk space were freed on an in-ploop filesystem, use
 
<b>ploop balloon discard</b> to optimize the ploop image
 
size.</p>
 
 
 
<table width="100%" border="0" rules="none" frame="void"
 
      cellspacing="0" cellpadding="0">
 
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
<td width="32%">
+
<td width="21%">
  
<p style="margin-top: 1em"><b>ploop&nbsp;balloon&nbsp;discard</b></p> </td>
+
<p><i>image_file</i></p></td>
 
<td width="2%"></td>
 
<td width="2%"></td>
<td width="50%">
+
<td width="66%">
  
<p style="margin-top: 1em">[<b>--automount</b>]
+
<p>Path to a file to write a new snapshot to. If this file
[<b>--to-free&nbsp;</b><i>size</i>]
+
already exists, <b>ploop snapshot</b> will exit with an
[<b>--min-block&nbsp;</b><i>min_size</i>] [<b>--defrag</b>]
+
error.</p> </td></tr>
<i>DiskDescriptor.xml</i></p> </td>
 
<td width="5%">
 
</td></tr>
 
 
</table>
 
</table>
  
<p style="margin-top: 1em">Iteratively try to relocate and
+
== IMAGE FORMATS ==
discard unused blocks from a ploop image, reducing its
 
size.</p>
 
 
 
<p style="margin-top: 1em">Note that ploop device and its
 
inner file system should be mounted. If not, one can use
 
<b>--automount</b> option to automatically mount ploop for
 
the duration of the operation.</p>
 
 
 
<p style="margin-top: 1em">Option <b>--defrag</b> can be
 
used to run a filesystem defragmentation utility (currently
 
e4defrag2 on ext4 only) before the main operation.</p>
 
 
 
<p style="margin-top: 1em">Option <b>--to-free</b> can be
 
used to specify a maximum disk space to be freed. In other
 
words, stop the process once freed space exceeded requested
 
<i>size</i>. Default is 0, meaning to try to free as much
 
space as possible.</p>
 
 
 
<p style="margin-top: 1em">Option <b>--min-block</b> can be
 
used to specify a minimum size of an extent to free. The
 
smallest possible extent is 1 cluster (currently 1 MB), one
 
can specify higher value to speed up the whole discarding
 
operation.</p>
 
 
 
<p style="margin-top: 1em">Note that the same functionality
 
is available by means of <b>vzctl compact</b> command.</p>
 
  
=== Image formats ===
+
<p style="margin-left:11%; margin-top: 1em">The following
following image formats are currently supported.</p>
+
image formats are currently supported.</p>
  
 
<table width="100%" border="0" rules="none" frame="void"
 
<table width="100%" border="0" rules="none" frame="void"
Line 1,389: Line 787:
 
<tr valign="top" align="left">
 
<tr valign="top" align="left">
 
<td width="11%"></td>
 
<td width="11%"></td>
<td width="24%">
+
<td width="4%">
  
<p><b>raw</b></p></td>
+
<p style="margin-top: 1em"><b>raw</b></p></td>
<td width="10%"></td>
+
<td width="7%"></td>
<td width="55%">
+
<td width="78%">
  
<p>Raw format, with 1:1 mapping between the image file and
+
<p style="margin-top: 1em">Raw format, with 1:1 mapping
the ploop device.</p></td></tr>
+
between the image file and the ploop device.</p></td></tr>
<tr valign="top" align="left">
+
</table>
<td width="11%"></td>
 
<td width="24%">
 
  
<p><b>ploop1</b>,&nbsp;<b>expanded</b></p></td>
+
<p style="margin-left:11%;"><b>ploop1</b>,&nbsp;<b>expanded</b></p>
<td width="10%"></td>
 
<td width="55%">
 
  
<p>Expanded format. The image will grow according to the
+
<p style="margin-left:22%;">Expanded format. The image will
needs of the underlying file system. This format is the
+
grow according to the needs of the underlying file system.
default. Names &rsquo;<b>ploop1</b>&rsquo; and
+
This format is the default. Names
&rsquo;<b>expanded</b>&rsquo; are aliases.</p></td></tr>
+
&rsquo;<b>ploop1</b>&rsquo; and
<tr valign="top" align="left">
+
&rsquo;<b>expanded</b>&rsquo; are aliases.</p>
<td width="11%"></td>
 
<td width="24%">
 
  
<p><b>preallocated</b></p></td>
+
<p style="margin-left:11%;"><b>preallocated</b></p>
<td width="10%"></td>
 
<td width="55%">
 
  
<p>This is the same as &rsquo;<b>ploop1</b>&rsquo; or
+
<p style="margin-left:22%;">This is the same as
 +
&rsquo;<b>ploop1</b>&rsquo; or
 
&rsquo;<b>expanded</b>&rsquo;, the only difference is all
 
&rsquo;<b>expanded</b>&rsquo;, the only difference is all
the file blocks are allocated during creation.</p></td></tr>
+
the file blocks are allocated during creation.</p>
</table>
 
 
 
== EXIT STATUS ==
 
 
 
<p style="margin-left:11%; margin-top: 1em"><b>ploop</b>
 
exits with status 0 in case of successful execution. Any
 
status greater than 0 signifies an error. <b><br>
 
1</b>,&nbsp;<b>SYSEXIT_CREAT</b></p>
 
 
 
<p style="margin-left:22%;">Error creating a file.</p>
 
 
 
<p style="margin-left:11%;"><b>2</b>,&nbsp;<b>SYSEXIT_DEVICE</b></p>
 
 
 
<p style="margin-left:22%;">Error getting or opening a
 
ploop device.</p>
 
 
 
<p style="margin-left:11%;"><b>3</b>,&nbsp;<b>SYSEXIT_DEVIOC</b></p>
 
 
 
<p style="margin-left:22%;">Error doing <b>ioctl</b>(2) on
 
ploop device.</p>
 
 
 
<p style="margin-left:11%;"><b>4</b>,&nbsp;<b>SYSEXIT_OPEN</b></p>
 
 
 
<p style="margin-left:22%;">Error opening a file.</p>
 
 
 
<p style="margin-left:11%;"><b>5</b>,&nbsp;<b>SYSEXIT_MALLOC</b></p>
 
 
 
<p style="margin-left:22%;">Not enough memory (error from
 
<b>malloc</b>(3), <b>realloc</b>(3), <b>calloc</b>(3), or
 
<b>posix_memalign</b>(3)).</p>
 
 
 
<p style="margin-left:11%;"><b>6</b>,&nbsp;<b>SYSEXIT_READ</b></p>
 
 
 
<p style="margin-left:22%;">Error during read.</p>
 
 
 
<p style="margin-left:11%;"><b>7</b>,&nbsp;<b>SYSEXIT_WRITE</b></p>
 
 
 
<p style="margin-left:22%;">Error during write.</p>
 
 
 
<p style="margin-left:11%;"><b>9</b>,&nbsp;<b>SYSEXIT_SYSFS</b></p>
 
 
 
<p style="margin-left:22%;">Error reading from a sysfs file
 
(usually under <b>/sys/block/ploop...</b>).</p>
 
 
 
<p style="margin-left:11%;"><b>11</b>,&nbsp;<b>SYSEXIT_PLOOPFMT</b></p>
 
 
 
<p style="margin-left:22%;">Corrupted ploop image
 
detected.</p>
 
 
 
<p style="margin-left:11%;"><b>12</b>,&nbsp;<b>SYSEXIT_SYS</b></p>
 
 
 
<p style="margin-left:22%;">Other system error.</p>
 
 
 
<p style="margin-left:11%;"><b>13</b>,&nbsp;<b>SYSEXIT_PROTOCOL</b></p>
 
 
 
<p style="margin-left:22%;">Broken protocol (unexpected
 
value received).</p>
 
 
 
<p style="margin-left:11%;"><b>14</b>,&nbsp;<b>SYSEXIT_LOOP</b></p>
 
 
 
<p style="margin-left:22%;"><b>pcopy</b> command
 
can&rsquo;t finalize copying (frozen filesystem is
 
changing).</p>
 
 
 
<p style="margin-left:11%;"><b>15</b>,&nbsp;<b>SYSEXIT_FSTAT</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>stat</b>(2),
 
<b>fstat</b>(2), or <b>statfs</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>16</b>,&nbsp;<b>SYSEXIT_FSYNC</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>fsync</b>(2) or
 
<b>syncfs</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>17</b>,&nbsp;<b>SYSEXIT_EBUSY</b></p>
 
 
 
<p style="margin-left:22%;">Can&rsquo;t continue, another
 
operation is in progress.</p>
 
 
 
<p style="margin-left:11%;"><b>18</b>,&nbsp;<b>SYSEXIT_FLOCK</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>flock</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>19</b>,&nbsp;<b>SYSEXIT_FTRUNCATE</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>ftruncate</b>(2)
 
or <b>truncate</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>20</b>,&nbsp;<b>SYSEXIT_FALLOCATE</b></p>
 
 
 
<p style="margin-left:22%;">Error from
 
<b>fallocate</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>21</b>,&nbsp;<b>SYSEXIT_MOUNT</b></p>
 
 
 
<p style="margin-left:22%;">Can&rsquo;t mount ploop image
 
or file system.</p>
 
 
 
<p style="margin-left:11%;"><b>22</b>,&nbsp;<b>SYSEXIT_UMOUNT</b></p>
 
 
 
<p style="margin-left:22%;">Can&rsquo;t unmount ploop image
 
or file system.</p>
 
 
 
<p style="margin-left:11%;"><b>23</b>,&nbsp;<b>SYSEXIT_LOCK</b></p>
 
 
 
<p style="margin-left:22%;">Locking failed (another
 
operation in progress?).</p>
 
 
 
<p style="margin-left:11%;"><b>24</b>,&nbsp;<b>SYSEXIT_MKFS</b></p>
 
 
 
<p style="margin-left:22%;">Can&rsquo;t create file
 
system.</p>
 
 
 
<p style="margin-left:11%;"><b>26</b>,&nbsp;<b>SYSEXIT_RESIZE_FS</b></p>
 
 
 
<p style="margin-left:22%;">Utility <b>resizefs</b>
 
failed.</p>
 
 
 
<p style="margin-left:11%;"><b>27</b>,&nbsp;<b>SYSEXIT_MKDIR</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>mkdir</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>28</b>,&nbsp;<b>SYSEXIT_RENAME</b></p>
 
 
 
<p style="margin-left:22%;">Error from
 
<b>rename</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>29</b>,&nbsp;<b>SYSEXIT_ABORT</b></p>
 
 
 
<p style="margin-left:22%;">Operation aborted.</p>
 
 
 
<p style="margin-left:11%;"><b>30</b>,&nbsp;<b>SYSEXIT_RELOC</b></p>
 
 
 
<p style="margin-left:22%;">Block relocation failed.</p>
 
 
 
<p style="margin-left:11%;"><b>33</b>,&nbsp;<b>SYSEXIT_CHANGE_GPT</b></p>
 
 
 
<p style="margin-left:22%;">Error resizing GPT partition
 
table.</p>
 
 
 
<p style="margin-left:11%;"><b>35</b>,&nbsp;<b>SYSEXIT_UNLINK</b></p>
 
 
 
<p style="margin-left:22%;">Error from
 
<b>unlink</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>36</b>,&nbsp;<b>SYSEXIT_MKNOD</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>mknod</b>(2).</p>
 
 
 
<p style="margin-left:11%;"><b>37</b>,&nbsp;<b>SYSEXIT_PLOOPINUSE</b></p>
 
 
 
<p style="margin-left:22%;">Image is already in use.</p>
 
 
 
<p style="margin-left:11%;"><b>38</b>,&nbsp;<b>SYSEXIT_PARAM</b></p>
 
 
 
<p style="margin-left:22%;">Invalid parameter.</p>
 
 
 
<p style="margin-left:11%;"><b>39</b>,&nbsp;<b>SYSEXIT_DISKDESCR</b></p>
 
 
 
<p style="margin-left:22%;">Problem with DiskDescriptor.xml
 
file.</p>
 
 
 
<p style="margin-left:11%;"><b>40</b>,&nbsp;<b>SYSEXIT_DEV_NOT_MOUNTED</b></p>
 
 
 
<p style="margin-left:22%;">Ploop image is not mounted.</p>
 
 
 
<p style="margin-left:11%;"><b>41</b>,&nbsp;<b>SYSEXIT_FSCK</b></p>
 
 
 
<p style="margin-left:22%;">Error from <b>fsck</b>(8).</p>
 
 
 
<p style="margin-left:11%;"><b>43</b>,&nbsp;<b>SYSEXIT_NOSNAP</b></p>
 
 
 
<p style="margin-left:22%;">Can&rsquo;t find specified
 
snapshot UUID.</p>
 
  
 
== SEE ALSO ==
 
== SEE ALSO ==
  
<p style="margin-left:11%; margin-top: 1em">[[Man/vzctl.8|<b>vzctl</b>(8)]],
+
<p style="margin-left:11%; margin-top: 1em">[[Man/vzctl.8|<b>vzctl</b>(8)]].</p>
[[Man/vzmigrate.8|<b>vzmigrate</b>(8)]], <b>http://openvz.org/Ploop</b>.</p>
 

Please note that all contributions to OpenVZ Virtuozzo Containers Wiki may be edited, altered, or removed by other contributors. If you don't want your writing to be edited mercilessly, then don't submit it here.
If you are going to add external links to an article, read the External links policy first!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)