Re: pivot_root depreciated?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,
The pivot_root() system call is also used by the LXC project (LinuX Containers);
This project is gaining very high popularity recently especially due
to the Docker container engine;

see:
https://github.com/lxc/lxc/blob/master/src/lxc/conf.c#L1067

http://linuxcontainers.org/

Regards,
Kevin

On Mon, Feb 3, 2014 at 12:31 PM, Michal Soltys <soltys@xxxxxxxx> wrote:
> On 2014-01-30 16:20, Phillip Susi wrote:
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> On 1/30/2014 9:50 AM, Thomas Bächler wrote:
>>>
>>> At least mkinitcpio now generates a fresh "initrd" to return to
>>> during system shutdown instead of keeping around the actual
>>> initrd.
>>
>>
>> I see, so at shutdown the initramfs is re-loaded into a tmpfs that is
>> then pivot_root()ed to?  And at boot time, pivot_root is not used?
>>
>
> Initially when initramfs prepares /run and stuff (and switchroot moves it to
> real root), workable "minisystem" is kept under /run/initramfs (or similar).
>
> On shutdown, /run/initramfs is bind-mounted to itself, which makes it
> pivotable, with old root say available at /oldroot. Now your aim is to
> cleanly unmount old root. In case of classic non-systemd, you would need:
>
> - telinit u (graceful re-exec of init)
> - mdmon --takeover (if you have non-native raid handled by md, to gracefully
> reexec the daemon)
> - etc.
>
> This allows to close all open files on real root (things are usually tried
> in loop, with attempts to stop stuff like lvm, md, ...) and finally unmount
> old root.
>
> Of course there is also a question - why bother doing all this, when simple
> ro remount before halt has been working fine for decades (and still works)
> ....
>
> Dracut (and others) /could/ be doing even more clever thing (hmm, maybe I
> should review certain old patches of mine) - during boot it could prepare
> mini-root on tmpfs before (some copying, some symlinks and/or PATH stuff)
> starting everything - then move actual tmpfs with living root to real root.
> The small advantage of that is, that you can at any moment chroot to such
> miniroot and do some maintenance on e.g. boot-critical storage daemon that
> lacks ability to reexecute itself gracefully.
>
> Another interesting use for pivot_root() call - when paired with mount
> namespaces - is ability to provide stronger chroot jails.
>
> So the call itself is still pretty useful. It hasn't beed used during boot
> anymore for years, but other possibilities emerged for it =)
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe util-linux" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe util-linux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux