# 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



           **-h** , **--help**
               Display help text and exit.
    
           **-V** , **--version**
               Display version and exit.
    


## 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 >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 >dev/console 2>&1
    


## AVAILABILITY



           The **pivot_root** command is part of the util-linux package which can
           be downloaded from Linux Kernel Archive
           <https://www.kernel.org/pub/linux/utils/util-linux/>. This page is
           part of the _util-linux_ (a random collection of Linux utilities)
           project. Information about the project can be found at 
           ⟨https://www.kernel.org/pub/linux/utils/util-linux/⟩. If you have a
           bug report for this manual page, send it to
           util-linux@vger.kernel.org. This page was obtained from the
           project's upstream Git repository
           ⟨git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git⟩ on
           2025-08-11. (At that time, the date of the most recent commit that
           was found in the repository was 2025-08-05.) If you discover any
           rendering problems in this HTML version of the page, or you
           believe there is a better or more up-to-date source for the page,
           or you have corrections or improvements to the information in this
           COLOPHON (which is _not_ part of the original manual page), send a
           mail to man-pages@man7.org
    
    util-linux 2.42-start-521-ec46  2025-01-16                  _PIVOT_ROOT_(8)
    


* * *