summaryrefslogtreecommitdiffstats
path: root/sys-utils/pivot_root.8.adoc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 14:30:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 14:30:35 +0000
commit378c18e5f024ac5a8aef4cb40d7c9aa9633d144c (patch)
tree44dfb6ca500d32cabd450649b322a42e70a30683 /sys-utils/pivot_root.8.adoc
parentInitial commit. (diff)
downloadutil-linux-upstream.tar.xz
util-linux-upstream.zip
Adding upstream version 2.38.1.upstream/2.38.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sys-utils/pivot_root.8.adoc')
-rw-r--r--sys-utils/pivot_root.8.adoc77
1 files changed, 77 insertions, 0 deletions
diff --git a/sys-utils/pivot_root.8.adoc b/sys-utils/pivot_root.8.adoc
new file mode 100644
index 0000000..9eba290
--- /dev/null
+++ b/sys-utils/pivot_root.8.adoc
@@ -0,0 +1,77 @@
+//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 >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
+....
+
+== 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::[]