External bind mounts

From CRIU
Revision as of 12:52, 17 June 2014 by Xemul (talk | contribs) (Created page with "Typical external resource when dumping a container (especially LXC/Docker) -- is a mount point whose root sits outside of the container's root. This situation was intended to ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Typical external resource when dumping a container (especially LXC/Docker) -- is a mount point whose root sits outside of the container's root. This situation was intended to be resolved using plugins but turned out to be so frequent, that we introduced a non-plugin way of handling them.

What is external bind mount

The way to create such is simple as

mkdir /root
mount --bind /foo /root/bar
chroot /root

This is it. From now on, the /bar file is a mountpoint whose root (the source) is not accessible directly.

If you look at the /proc/$pid/mountinfo file of a task seeing such you would see smth like

11 23 8:3 /root / ... - ext4 /dev/sda1 ...
23 34 8:3 /foo /bar ... - ext4 /dev/sda1 ...

The columns 4 and 5 are root and mountpoint respectively. You can see, that the / is /root file from /dev/sda1 device and /bar file is a mountpoint with the root being /foo file from the same device.