Ploop/Mount helpers

From OpenVZ Virtuozzo Containers Wiki
< Ploop
Revision as of 02:07, 21 November 2013 by Kir (talk | contribs) (created)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

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 why and how, and lists caveats and limitation.

Introduction

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

Normally, ploop is mounted by ploop mount command.

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

Normally, ploop is unmounted by ploop umount command.

But if the following is true, usual umount can be used:

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

Any of the following can be used:

umount /path/to/DiskDescriptor.xml
umount /mount/point