//po4a: entry man manual = pivot_root(8) :doctype: manpage :man manual: System Administration :man source: util-linux {release-version} :page-layout: base :command: pivot_root == NAME pivot_root - change the root filesystem == SYNOPSIS *pivot_root* _new_root_ _put_old_ == DESCRIPTION *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 current working directory 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. Note that *exec chroot* changes the running executable, which is necessary if the old root directory should be unmounted afterwards. Also note that standard input, output, and error may still point to a device on the old root file system, keeping it busy. They can easily be changed when invoking *chroot* (see below; note the absence of leading slashes to make it work whether *pivot_root* has changed the shell's root or not). == OPTIONS include::man-common/help-version.adoc[] == EXAMPLE 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 dev/console 2>&1 umount /old-root .... Mount the new root file system over NFS from 10.0.0.1:/my_root and run *init*: .... ifconfig lo 127.0.0.1 up # for portmap # configure Ethernet or such portmap # for lockd (implicitly started by mount) mount -o ro 10.0.0.1:/my_root /mnt killall portmap # portmap keeps old root busy cd /mnt pivot_root . old_root exec chroot . sh -c 'umount /old_root; exec /sbin/init' \ dev/console 2>&1 .... == SEE ALSO *chroot*(1), *pivot_root*(2), *mount*(8), *switch_root*(8), *umount*(8) include::man-common/bugreports.adoc[] include::man-common/footer.adoc[] ifdef::translation[] include::man-common/translation.adoc[] endif::[]