pivot_root moves the root file system of the current process to the directory put_old and makes new_root the new root file system. Since __pivot_root(8)? simply calls pivot_root(2)__, we refer to the man page of the latter for further details.
Note that, depending on the implementation of pivot_root, root and cwd of the caller may or may not change. The following is a sequence for invoking pivot_root that works in either case, assuming that pivot_root and chroot are in the current PATH:
cd new_root pivot_root . put_old exec chroot . command
Note that chroot must be available under the old root and under the new root, because pivot_root may or may not have implicitly changed the root directory of the shell.
Change the root file system to /dev/hda1 from an interactive shell:
mount /dev/hda1 /new-root cd /new-root pivot_root . old-root exec chroot . sh Mount the new root file system over NFS from 10.0.0.1:/my_root and run init: