Difference between revisions of "Ploop/Mount helpers"

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search
(Marked this version for translation)
(rm translate tags)
 
Line 1: Line 1:
<translate>
 
<!--T:1-->
 
 
Despite the fact that ploop is not a file system, a trick exist
 
Despite the fact that ploop is not a file system, a trick exist
 
to make it look and feel like so — i.e. to use usual <code>mount</code>
 
to make it look and feel like so — i.e. to use usual <code>mount</code>
Line 6: Line 4:
 
This article describes how it works and can be used.
 
This article describes how it works and can be used.
  
== Introduction == <!--T:2-->
+
== Introduction ==
  
<!--T:3-->
 
 
ploop is not a filesystem per se, but a kernel [[w:loop device]] driver, providing a way
 
ploop is not a filesystem per se, but a kernel [[w:loop device]] driver, providing a way
 
to represent a ploop image (or a set of stacked images) as a
 
to represent a ploop image (or a set of stacked images) as a
Line 16: Line 13:
 
container.
 
container.
  
<!--T:4-->
 
 
Therefore a complete ploop mount consists of two steps:
 
Therefore a complete ploop mount consists of two steps:
 
# "mount" ploop image(s) to create a ploop device (/dev/ploopNNNNN)
 
# "mount" ploop image(s) to create a ploop device (/dev/ploopNNNNN)
 
# mount a filesystem residing on this ploop device to a mount point
 
# mount a filesystem residing on this ploop device to a mount point
  
<!--T:5-->
 
 
For simplicity, these two are usually wrapped to be done together in one step (say when you use ploop mount with -m option).
 
For simplicity, these two are usually wrapped to be done together in one step (say when you use ploop mount with -m option).
 
In reality, step 1 is kernel assembling a device out of image(s), and step 2 is the real mount.
 
In reality, step 1 is kernel assembling a device out of image(s), and step 2 is the real mount.
  
== Mounting == <!--T:6-->
+
== Mounting ==
  
<!--T:7-->
 
 
You can use the following syntax to mount a ploop device and the filesystem inside it:
 
You can use the following syntax to mount a ploop device and the filesystem inside it:
  
  <!--T:8-->
+
  mount -t ploop [option ...] /path/to/DiskDescriptor.xml /mount/point
mount -t ploop [option ...] /path/to/DiskDescriptor.xml /mount/point
 
  
<!--T:9-->
 
 
The following options are supported:
 
The following options are supported:
  
<!--T:10-->
 
 
<code>-r</code>, <code>-o ro</code>
 
<code>-r</code>, <code>-o ro</code>
 
: mount read-only
 
: mount read-only
  
<!--T:11-->
 
 
<code>-v</code>, <code>--verbose</code>
 
<code>-v</code>, <code>--verbose</code>
 
: be more verbose
 
: be more verbose
  
<!--T:12-->
 
 
<code>-f</code>, <code>--fake</code>
 
<code>-f</code>, <code>--fake</code>
 
: do everything except for the actual mount
 
: do everything except for the actual mount
  
<!--T:13-->
 
 
<code>-n</code>, <code>--no-mtab</code>, <code>-s</code>
 
<code>-n</code>, <code>--no-mtab</code>, <code>-s</code>
 
: these options are deliberately ignored
 
: these options are deliberately ignored
  
== Unmounting == <!--T:14-->
+
== Unmounting ==
  
<!--T:15-->
 
 
To unmount, DiskDescriptor can be specified:
 
To unmount, DiskDescriptor can be specified:
  
  <!--T:16-->
+
  umount /path/to/DiskDescriptor.xml
umount /path/to/DiskDescriptor.xml
 
  
<!--T:17-->
 
 
A mount point can be used as well:
 
A mount point can be used as well:
  
  <!--T:18-->
+
  umount /mount/point
umount /mount/point
 
  
== Limitations == <!--T:19-->
+
== Limitations ==
  
<!--T:20-->
 
 
Note that umount can only work if:
 
Note that umount can only work if:
 
# /etc/mtab is a separate file (not a symlink to /proc/mounts);
 
# /etc/mtab is a separate file (not a symlink to /proc/mounts);
 
# mounting was done using <code>mount</code> (not <code>ploop mount</code>).
 
# mounting was done using <code>mount</code> (not <code>ploop mount</code>).
  
<!--T:21-->
 
 
Otherwise, umount binary will not be able to find <code>ploop</code> as the "filesystem"
 
Otherwise, umount binary will not be able to find <code>ploop</code> as the "filesystem"
 
field in /etc/mtab, and will not call <code>umount.ploop</code> helper. As a result,
 
field in /etc/mtab, and will not call <code>umount.ploop</code> helper. As a result,
 
file system will be unmounted, but ploop device itself will stay mounted.
 
file system will be unmounted, but ploop device itself will stay mounted.
  
== Alternative == <!--T:22-->
+
== Alternative ==
  
<!--T:23-->
 
 
<code>ploop mount</code> and <code>ploop umount</code> commands,
 
<code>ploop mount</code> and <code>ploop umount</code> commands,
 
as described in {{Man|ploop|8}} man page.
 
as described in {{Man|ploop|8}} man page.
  
== See also == <!--T:24-->
+
== See also ==
  
<!--T:25-->
 
 
* [[Ploop]]
 
* [[Ploop]]
 
* {{Bug|2817}}
 
* {{Bug|2817}}
</translate>
 
  
 
[[Category: Storage]]
 
[[Category: Storage]]

Latest revision as of 15:25, 10 March 2021

Despite the fact that ploop is not a file system, a trick exist to make it look and feel like so — i.e. to use usual mount and umount commands rather than the ploop(8) tool. This article describes how it works and can be used.

Introduction[edit]

ploop is not a filesystem per se, but a kernel w:loop device driver, providing a way to represent a ploop image (or a set of stacked images) as a block device. On top of that block device provided by ploop, an ext4 file system is created and used, for example, for storing files of a specific container.

Therefore a complete ploop mount consists of two steps:

  1. "mount" ploop image(s) to create a ploop device (/dev/ploopNNNNN)
  2. mount a filesystem residing on this ploop device to a mount point

For simplicity, these two are usually wrapped to be done together in one step (say when you use ploop mount with -m option). In reality, step 1 is kernel assembling a device out of image(s), and step 2 is the real mount.

Mounting[edit]

You can use the following syntax to mount a ploop device and the filesystem inside it:

mount -t ploop [option ...] /path/to/DiskDescriptor.xml /mount/point

The following options are supported:

-r, -o ro

mount read-only

-v, --verbose

be more verbose

-f, --fake

do everything except for the actual mount

-n, --no-mtab, -s

these options are deliberately ignored

Unmounting[edit]

To unmount, DiskDescriptor can be specified:

umount /path/to/DiskDescriptor.xml

A mount point can be used as well:

umount /mount/point

Limitations[edit]

Note that umount can only work if:

  1. /etc/mtab is a separate file (not a symlink to /proc/mounts);
  2. mounting was done using mount (not ploop mount).

Otherwise, umount binary will not be able to find ploop as the "filesystem" field in /etc/mtab, and will not call umount.ploop helper. As a result, file system will be unmounted, but ploop device itself will stay mounted.

Alternative[edit]

ploop mount and ploop umount commands, as described in ploop(8) man page.

See also[edit]