76 lines
2.4 KiB
Groff
76 lines
2.4 KiB
Groff
.TH PIVOT_ROOT 8 "August 2011" "util-linux" "System Administration"
|
|
.SH NAME
|
|
pivot_root \- change the root filesystem
|
|
.SH SYNOPSIS
|
|
.B pivot_root
|
|
.I new_root put_old
|
|
.SH DESCRIPTION
|
|
\fBpivot_root\fP moves the root file system of the current process to the
|
|
directory \fIput_old\fP and makes \fInew_root\fP the new root file system.
|
|
Since \fBpivot_root\fP(8) simply calls \fBpivot_root\fP(2), we refer to
|
|
the man page of the latter for further details.
|
|
|
|
Note that, depending on the implementation of \fBpivot_root\fP, root and
|
|
cwd of the caller may or may not change. The following is a sequence for
|
|
invoking \fBpivot_root\fP that works in either case, assuming that
|
|
\fBpivot_root\fP and \fBchroot\fP are in the current \fBPATH\fP:
|
|
.sp
|
|
cd \fInew_root\fP
|
|
.br
|
|
pivot_root . \fIput_old\fP
|
|
.br
|
|
exec chroot . \fIcommand\fP
|
|
.sp
|
|
Note that \fBchroot\fP must be available under the old root and under the new
|
|
root, because \fBpivot_root\fP may or may not have implicitly changed the
|
|
root directory of the shell.
|
|
|
|
Note that \fBexec chroot\fP 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 \fBchroot\fP (see below; note the absence of
|
|
leading slashes to make it work whether \fBpivot_root\fP has changed the
|
|
shell's root or not).
|
|
.SH OPTIONS
|
|
.TP
|
|
\fB\-V\fR, \fB\-\-version\fR
|
|
Display version information and exit.
|
|
.TP
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
Display help text and exit.
|
|
.SH EXAMPLE
|
|
Change the root file system to /dev/hda1 from an interactive shell:
|
|
.sp
|
|
.nf
|
|
mount /dev/hda1 /new-root
|
|
cd /new-root
|
|
pivot_root . old-root
|
|
exec chroot . sh <dev/console >dev/console 2>&1
|
|
umount /old-root
|
|
.fi
|
|
.sp
|
|
Mount the new root file system over NFS from 10.0.0.1:/my_root and run
|
|
\fBinit\fP:
|
|
.sp
|
|
.nf
|
|
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
|
|
.fi
|
|
.SH SEE ALSO
|
|
.BR chroot (1),
|
|
.BR pivot_root (2),
|
|
.BR mount (8),
|
|
.BR switch_root (8),
|
|
.BR umount (8)
|
|
.SH AVAILABILITY
|
|
The pivot_root command is part of the util-linux package and is available from
|
|
https://www.kernel.org/pub/linux/utils/util-linux/.
|