pivot_root - change the root file system


SYNOPSIS

       pivot_root new_root put_old


DESCRIPTION

       pivot_root  moves the root file system of the current pro­
       cess 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 fol­
       lowing 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, out­
       put, 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 lead­
       ing slashes to make it work whether pivot_root has changed
       the shell's root or not).


EXAMPLES

       Change the root file system to /dev/hda1 from an  interac­
       tive 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

       pivot_root . old_root
       exec chroot . sh -c 'umount /old_root; exec /sbin/init' \
         <dev/console >dev/console 2>&1


SEE ALSO

       chroot(1), mount(8), pivot_root(2), umount(8)


Man(1) output converted with man2html