Bash Cures Cancer
Learn the UNIX/Linux command line

Home     Man Pages     SpamDefeator


PIVOT_ROOT(8)		     Maintenance Commands		PIVOT_ROOT(8)



NAME
       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 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.

       Note  that exec chroot changes the running executable, which is neces-
       sary 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 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 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), mount(8), pivot_root(2), umount(8)



Linux				 Feb 23, 2000			PIVOT_ROOT(8)


UNIX/Linux commands referenced on this page:
  1. file
  2. refer
  3. man
  4. chroot
  5. which
  6. make
  7. mount
  8. sh
  9. umount
  10. ifconfig
  11. killall
  12. portmap