summaryrefslogtreecommitdiffstats
path: root/po/de/man2/pivot_root.2.po
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /po/de/man2/pivot_root.2.po
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'po/de/man2/pivot_root.2.po')
-rw-r--r--po/de/man2/pivot_root.2.po1213
1 files changed, 1213 insertions, 0 deletions
diff --git a/po/de/man2/pivot_root.2.po b/po/de/man2/pivot_root.2.po
new file mode 100644
index 00000000..20d86797
--- /dev/null
+++ b/po/de/man2/pivot_root.2.po
@@ -0,0 +1,1213 @@
+# German translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2019, 2020, 2021, 2022, 2023.
+# Helge Kreutzmann <debian@helgefjell.de>, 2019, 2021.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n 4.9.3\n"
+"POT-Creation-Date: 2024-03-01 17:03+0100\n"
+"PO-Revision-Date: 2023-08-28 20:46+0200\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
+"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Lokalize 23.04.3\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "pivot_root"
+msgstr "pivot_root"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr "31. Oktober 2023"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Linux man-pages 6.06"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr "BEZEICHNUNG"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "pivot_root - change the root mount"
+msgstr "pivot_root - die Wurzeleinhängung ändern"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr "BIBLIOTHEK"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr "Standard-C-Bibliothek (I<libc>, I<-lc>)"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "ÜBERSICHT"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"B<#include E<lt>sys/syscall.hE<gt>> /* Definition of B<SYS_*> constants */\n"
+"B<#include E<lt>unistd.hE<gt>>\n"
+msgstr ""
+"B<#include E<lt>sys/syscall.hE<gt>> /* Definition der B<SYS_*>-Konstanten */\n"
+"B<#include E<lt>unistd.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<int syscall(SYS_pivot_root, const char *>I<new_root>B<, const char *>I<put_old>B<);>\n"
+msgstr "B<int syscall(SYS_pivot_root, const char *>I<neue_Wurzel>B<, const char *>I<alte_Wurzel>B<);>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<Note>: glibc provides no wrapper for B<pivot_root>(), necessitating the "
+"use of B<syscall>(2)."
+msgstr ""
+"I<Hinweis>: Glibc stellt keinen Wrapper für B<pivot_root>() bereit; rufen "
+"Sie ihn mittels B<syscall>(2) auf."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "BESCHREIBUNG"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<pivot_root>() changes the root mount in the mount namespace of the "
+"calling process. More precisely, it moves the root mount to the directory "
+"I<put_old> and makes I<new_root> the new root mount. The calling process "
+"must have the B<CAP_SYS_ADMIN> capability in the user namespace that owns "
+"the caller's mount namespace."
+msgstr ""
+"B<pivot_root>() ändert die Einhängewurzel im Einhängenamensraum des "
+"aufrufenden Prozesses. Genauer ausgedrückt verschiebt es die Einhängewurzel "
+"in das Verzeichnis I<alte_Wurzel> und macht I<neue_Wurzel> zur neuen "
+"Einhängewurzel. Der aufrufende Prozess muss in dem Benutzer-Namensraum, zu "
+"dem der Einhängenamensraum des Aufrufenden gehört, über die B<CAP_SYS_ADMIN>-"
+"Capability verfügen."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<pivot_root>() changes the root directory and the current working "
+"directory of each process or thread in the same mount namespace to "
+"I<new_root> if they point to the old root directory. (See also NOTES.) On "
+"the other hand, B<pivot_root>() does not change the caller's current "
+"working directory (unless it is on the old root directory), and thus it "
+"should be followed by a B<chdir(\"/\")> call."
+msgstr ""
+"B<pivot_root>() ändert das Wurzelverzeichnis und das aktuelle "
+"Arbeitsverzeichnis jedes Prozesses oder Threads im gleichen Namensraum in "
+"I<neue_Wurzel>, falls diese auf das alte Verzeichnis zeigen (siehe auch "
+"ANMERKUNGEN). Andererseits ändert B<pivot_root>() das aktuelle "
+"Arbeitsverzeichnis des Aufrufenden nicht (es sei denn, es ist das alte "
+"Wurzelverzeichnis), daher sollte darauf ein Aufruf von B<chdir(\"/\")> "
+"folgen."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The following restrictions apply:"
+msgstr "Die folgenden Einschränkungen gelten:"
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "\\[bu]"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<new_root> and I<put_old> must be directories."
+msgstr "I<Neue_Wurzel> und I<alte_Wurzel> müssen Verzeichnisse sein."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<new_root> and I<put_old> must not be on the same mount as the current root."
+msgstr ""
+"Die I<neue_Wurzel> und die I<alte_Wurzel> dürfen sich nicht in der gleichen "
+"Einhängung wie die aktuelle Wurzel befinden."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<put_old> must be at or underneath I<new_root>; that is, adding some "
+"nonnegative number of \"I</..>\" suffixes to the pathname pointed to by "
+"I<put_old> must yield the same directory as I<new_root>."
+msgstr ""
+"Die I<alte_Wurzel> muss sich unterhalb der I<neuen_Wurzel> befinden, das "
+"heißt, Hinzufügen einer nicht-negativen Anzahl von I</..> zum Pfadnamen, der "
+"auf die I<alte_Wurzel> zeigt, muss das gleiche Verzeichnis wie die "
+"I<neue_Wurzel> ergeben."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<new_root> must be a path to a mount point, but can't be I<\"/\">. A path "
+"that is not already a mount point can be converted into one by bind mounting "
+"the path onto itself."
+msgstr ""
+"I<Neue_Wurzel> muss ein Pfad zu einem Einhängepunkt sein, aber darf nicht "
+"I<\"/\"> sein. Ein Pfad, der nicht bereits ein Einhängepunkt ist, kann "
+"umgewandelt werden, indem er auf sich selbst bind-eingehängt wird."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The propagation type of the parent mount of I<new_root> and the parent mount "
+"of the current root directory must not be B<MS_SHARED>; similarly, if "
+"I<put_old> is an existing mount point, its propagation type must not be "
+"B<MS_SHARED>. These restrictions ensure that B<pivot_root>() never "
+"propagates any changes to another mount namespace."
+msgstr ""
+"Der Ausbreitungstyp von I<neue_Wurzel> und seiner Elterneinhängung dürfen "
+"nicht B<MS_SHARED> sein; entsprechend falls I<alte_Wurzel> ein bestehender "
+"Einhängepunkt ist, darf sein Ausbreitungstyp nicht B<MS_SHARED> sein. Diese "
+"Einschränkungen stellen sicher, dass B<pivot_root>() niemals Änderungen in "
+"einen anderen Einhänge-Namensraum ausbreitet."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The current root directory must be a mount point."
+msgstr "Das aktuelle Wurzelverzeichnis muss ein Einhängepunkt sein."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "RÜCKGABEWERT"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On success, zero is returned. On error, -1 is returned, and I<errno> is set "
+"to indicate the error."
+msgstr ""
+"Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben "
+"und I<errno> gesetzt, um den Fehler anzuzeigen."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ERRORS"
+msgstr "FEHLER"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<pivot_root>() may fail with any of the same errors as B<stat>(2). "
+"Additionally, it may fail with the following errors:"
+msgstr ""
+"B<pivot_root>() kann jeden der von B<stat>(2) zurückgegebenen Fehler "
+"zurückgeben. Zusätzlich kann Folgendes zurückgegeben werden:"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EBUSY>"
+msgstr "B<EBUSY>"
+
+#. Reconfirmed that the following error occurs on Linux 5.0 by
+#. specifying 'new_root' as "/rootfs" and 'put_old' as
+#. "/rootfs/oldrootfs", and *not* bind mounting "/rootfs" on top of
+#. itself. Of course, this is an odd situation, since a later check
+#. in the kernel code will in any case yield EINVAL if 'new_root' is
+#. not a mount point. However, when the system call was first added,
+#. 'new_root' was not required to be a mount point. So, this
+#. error is nowadays probably just the result of crufty accumulation.
+#. This error can also occur if we bind mount "/" on top of itself
+#. and try to specify "/" as the 'new' (again, an odd situation). So,
+#. the EBUSY check in the kernel does still seem necessary to prevent
+#. that case. Furthermore, the "or put_old" piece is probably
+#. redundant text (although the check is in the kernel), since,
+#. in another check, 'put_old' is required to be under 'new_root'.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<new_root> or I<put_old> is on the current root mount. (This error covers "
+"the pathological case where I<new_root> is I<\"/\">.)"
+msgstr ""
+"Die I<neue_Wurzel> oder die I<alte_Wurzel> sind in der aktuellen "
+"Wurzeleinhängung. (Dieser Fehler deckt den pathologischen Fall ab, wenn die "
+"I<neue_Wurzel> I<\"/\"> ist.)"
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EINVAL>"
+msgstr "B<EINVAL>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<new_root> is not a mount point."
+msgstr "I<neue_Wurzel> ist kein Einhängepunkt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<put_old> is not at or underneath I<new_root>."
+msgstr "Die I<alte_Wurzel> ist nicht in oder unterhalb der I<neuen_Wurzel>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The current root directory is not a mount point (because of an earlier "
+"B<chroot>(2))."
+msgstr ""
+"Das aktuelle Wurzelverzeichnis ist kein Einhängepunkt (wegen eines früher "
+"ausgeführten B<chroot>(2))."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The current root is on the rootfs (initial ramfs) mount; see NOTES."
+msgstr ""
+"Die aktuelle Wurzel ist auf dem Rootfs (anfänglichen Ramfs-)Dateisystem; "
+"siehe ANMERKUNGEN."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Either the mount point at I<new_root>, or the parent mount of that mount "
+"point, has propagation type B<MS_SHARED>."
+msgstr ""
+"Entweder der Einhängepunkt unter I<neue_Wurzel> oder die Elterneinhängung "
+"dieses Einhängepunktes hat den Ausbreitungstyp B<MS_SHARED>."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<put_old> is a mount point and has the propagation type B<MS_SHARED>."
+msgstr ""
+"I<alte_Wurzel> ist ein Einhängepunkt und der Ausbreitungstyp ist "
+"B<MS_SHARED>."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<ENOTDIR>"
+msgstr "B<ENOTDIR>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "I<new_root> or I<put_old> is not a directory."
+msgstr "I<neue_Wurzel> oder I<alte_Wurzel> ist kein Verzeichnis."
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<EPERM>"
+msgstr "B<EPERM>"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The calling process does not have the B<CAP_SYS_ADMIN> capability."
+msgstr ""
+"Der aufrufende Prozess verfügt nicht über die B<CAP_SYS_ADMIN>-Capability."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDS"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux."
+msgstr "Linux."
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "GESCHICHTE"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Linux 2.3.41."
+msgstr "Linux 2.3.41."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NOTES"
+msgstr "ANMERKUNGEN"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A command-line interface for this system call is provided by "
+"B<pivot_root>(8)."
+msgstr ""
+"Eine Befehlszeilenschnittstelle für diesen Systemaufruf wird durch "
+"B<pivot_root>(8) bereitgestellt."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<pivot_root>() allows the caller to switch to a new root filesystem while "
+"at the same time placing the old root mount at a location under I<new_root> "
+"from where it can subsequently be unmounted. (The fact that it moves all "
+"processes that have a root directory or current working directory on the old "
+"root directory to the new root frees the old root directory of users, "
+"allowing the old root mount to be unmounted more easily.)"
+msgstr ""
+"B<pivot_root>() ermöglicht dem Aufrufenden, in eine neue Dateisystemwurzel "
+"zu wechseln, während gleichzeitig die alte Einhängewurzel an einem Ort "
+"unterhalb der I<neuen_Wurzel> platziert wird, wo sie anschließend ausgehängt "
+"werden kann. (Die Tatsache, dass alle Prozesse, die ein Wurzelverzeichnis "
+"oder ein aktuelles Arbeitsverzeichnis unterhalb des alten "
+"Wurzelverzeichnisses haben, zu der neuen Wurzel verschoben werden, befreit "
+"das alte Wurzelverzeichnis von Benutzern, wodurch das alte Wurzelverzeichnis "
+"leichter ausgehängt werden kann.)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"One use of B<pivot_root>() is during system startup, when the system mounts "
+"a temporary root filesystem (e.g., an B<initrd>(4)), then mounts the real "
+"root filesystem, and eventually turns the latter into the root directory of "
+"all relevant processes and threads. A modern use is to set up a root "
+"filesystem during the creation of a container."
+msgstr ""
+"Der typische Anwendungsfall von B<pivot_root>() ist während des "
+"Systemstarts, wenn das System ein temporäres Wurzeldateisystem einhängt, zum "
+"Beispiel ein B<initrd>(4). Danach wird das reale Wurzeldateisystem "
+"eingehängt und eventuell in die aktuelle Wurzel aller relevanten Prozesse "
+"und Threads verwandelt. Ein moderner Anwendungsfall ist die Einrichtung "
+"eines Wurzeldateisystems während der Erzeugung eines Containers."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The fact that B<pivot_root>() modifies process root and current working "
+"directories in the manner noted in DESCRIPTION is necessary in order to "
+"prevent kernel threads from keeping the old root mount busy with their root "
+"and current working directories, even if they never access the filesystem in "
+"any way."
+msgstr ""
+"B<pivot_root>() verändert die Wurzel und das aktuelle Arbeitsverzeichnis in "
+"der im Abschnitt BESCHREIBUNG angegebenen Weise. Dies ist nötig, um Kernel-"
+"Threads daran zu hindern, die alte Einhängewurzel mit ihren Wurzeln und "
+"aktuellen Arbeitsverzeichnissen belegt zu halten, selbst dann, wenn sie auf "
+"das Dateisystem niemals zugreifen."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The rootfs (initial ramfs) cannot be B<pivot_root>()ed. The recommended "
+"method of changing the root filesystem in this case is to delete everything "
+"in rootfs, overmount rootfs with the new root, attach I<stdin>/I<stdout>/"
+"I<stderr> to the new I</dev/console>, and exec the new B<init>(1). Helper "
+"programs for this process exist; see B<switch_root>(8)."
+msgstr ""
+"Das Rootfs (anfängliche Ramfs) kann nicht mittels B<pivot_root> erreicht "
+"werden. Die in diesem Fall empfohlene Methode zur Änderung des "
+"Wurzeldateisystems ist das Löschen sämtlicher Inhalte im Rootfs, das Rootfs "
+"mit der neuen Wurzel übereinzuhängen, I<stdin>/I<stdout>/I<stderr> an das "
+"neue I</dev/console> anzuhängen und das neue B<init>(1) auszuführen. "
+"Helferprogramme für diesen Prozess existieren: siehe B<switch_root>(8)."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "pivot_root(\\[dq].\\[dq], \\[dq].\\[dq])"
+msgstr "pivot_root(\\[dq].\\[dq], \\[dq].\\[dq])"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"I<new_root> and I<put_old> may be the same directory. In particular, the "
+"following sequence allows a pivot-root operation without needing to create "
+"and remove a temporary directory:"
+msgstr ""
+"I<Neue_Wurzel> und I<alte_Wurzel> können das gleiche Verzeichnis sein. Die "
+"folgende Sequenz erlaubt eine Pivot-Root-Aktion, ohne dass ein temporäres "
+"Verzeichnis angelegt und wieder entfernt werden muss:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"chdir(new_root);\n"
+"pivot_root(\".\", \".\");\n"
+"umount2(\".\", MNT_DETACH);\n"
+msgstr ""
+"chdir(neue_Wurzel);\n"
+"pivot_root(\".\", \".\");\n"
+"umount2(\".\", MNT_DETACH);\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This sequence succeeds because the B<pivot_root>() call stacks the old root "
+"mount point on top of the new root mount point at I</>. At that point, the "
+"calling process's root directory and current working directory refer to the "
+"new root mount point (I<new_root>). During the subsequent B<umount>() "
+"call, resolution of I<\".\"> starts with I<new_root> and then moves up the "
+"list of mounts stacked at I</>, with the result that old root mount point is "
+"unmounted."
+msgstr ""
+"Diese Sequenz ist erfolgreich, weil der Aufruf von B<pivot_root>() den alten "
+"Wurzeleinhängepunkt über den neuen Wurzeleinhängepunkt in I</> stapelt. An "
+"diesem Punkt beziehen sich das Wurzelverzeichnis und das aktuelle "
+"Arbeitsverzeichnis des aufrufenden Prozesses auf den neuen "
+"Wurzeleinhängepunkt (I<neue_Wurzel>). Während des darauf folgenden Aufrufs "
+"von B<umount>() beginnt die Auflösung von I<\".\"> mit der I<neue_Wurzel> "
+"und wandert dann die Liste der in I</> gestapelten Einhängungen hinauf, mit "
+"dem Ergebnis, dass der alte Einhängepunkt ausgehängt wird."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Historical notes"
+msgstr "Geschichtliche Anmerkungen"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "For many years, this manual page carried the following text:"
+msgstr "Viele Jahre lang enthielt diese Handbuchseite den folgenden Text:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<pivot_root>() may or may not change the current root and the current "
+"working directory of any processes or threads which use the old root "
+"directory. The caller of B<pivot_root>() must ensure that processes with "
+"root or current working directory at the old root operate correctly in "
+"either case. An easy way to ensure this is to change their root and current "
+"working directory to I<new_root> before invoking B<pivot_root>()."
+msgstr ""
+"B<pivot_root>() kann die aktuelle Wurzel und das aktuelle Arbeitsverzeichnis "
+"von Prozessen und Threads ändern, welche das alte Wurzelverzeichnis nutzen, "
+"muss dies aber nicht. Der Prozess, welcher B<pivot_root>() aufruft, muss "
+"sicherstellen, dass Prozesse mit Wurzel- oder aktuellem Arbeitsverzeichnis "
+"in jedem Fall korrekt arbeiten. Ein einfacher Weg hierzu ist die Änderung "
+"von Wurzel- und aktuellem Arbeitsverzeichnis auf die I<neue_Wurzel>, bevor "
+"B<pivot_root>() aufgerufen wird."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This text, written before the system call implementation was even finalized "
+"in the kernel, was probably intended to warn users at that time that the "
+"implementation might change before final release. However, the behavior "
+"stated in DESCRIPTION has remained consistent since this system call was "
+"first implemented and will not change now."
+msgstr ""
+"Dieser Text, der geschrieben wurde, bevor, die Implementierung des "
+"Systemaufrufs im Kernel überhaupt abgeschlossen war, beabsichtigte "
+"seinerzeit möglicherweise, die Benutzer zu warnen, dass sich die "
+"Implementation bis zur finalen Veröffentlichung ändern könnte. Jedoch ist "
+"das im Abschnitt BESCHREIBUNG angegebene Verhalten seit der "
+"Erstveröffentlichung dieses Systemaufrufs konsistent geblieben und wird sich "
+"nun nicht ändern."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "BEISPIELE"
+
+#. FIXME
+#. Would it be better, because simpler, to use unshare(2)
+#. rather than clone(2) in the example below?
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The program below demonstrates the use of B<pivot_root>() inside a mount "
+"namespace that is created using B<clone>(2). After pivoting to the root "
+"directory named in the program's first command-line argument, the child "
+"created by B<clone>(2) then executes the program named in the remaining "
+"command-line arguments."
+msgstr ""
+"Das untenstehende Programm beschreibt die Verwendung von B<pivot_root>() "
+"innerhalb eines Einhängenamensraums, der mit B<clone>(2) erstellt wurde. "
+"Nach dem Umschwenken zu dem im ersten Befehlszeilenargument des Programms "
+"benannten Wurzelverzeichnis führt der mit B<clone>(2) erzeugte Kindprozess "
+"das in den übrigen Befehlszeilenargumenten benannte Programm aus."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"We demonstrate the program by creating a directory that will serve as the "
+"new root filesystem and placing a copy of the (statically linked) "
+"B<busybox>(1) executable in that directory."
+msgstr ""
+"Wir demonstrieren das Programm durch Anlegen eines Verzeichnisses, das als "
+"das neue Wurzeldateisystem dient, und Setzen einer (statisch gelinkten) "
+"Kopie der ausführbaren Datei B<busybox>(1) in dieses Verzeichnis."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"$ B<mkdir /tmp/rootfs>\n"
+"$ B<ls -id /tmp/rootfs> # Show inode number of new root directory\n"
+"319459 /tmp/rootfs\n"
+"$ B<cp $(which busybox) /tmp/rootfs>\n"
+"$ B<PS1=\\[aq]bbsh$ \\[aq] sudo ./pivot_root_demo /tmp/rootfs /busybox sh>\n"
+"bbsh$ B<PATH=/>\n"
+"bbsh$ B<busybox ln busybox ln>\n"
+"bbsh$ B<ln busybox echo>\n"
+"bbsh$ B<ln busybox ls>\n"
+"bbsh$ B<ls>\n"
+"busybox echo ln ls\n"
+"bbsh$ B<ls -id /> # Compare with inode number above\n"
+"319459 /\n"
+"bbsh$ B<echo \\[aq]hello world\\[aq]>\n"
+"hello world\n"
+msgstr ""
+"$ B<mkdir /tmp/rootfs>\n"
+"$ B<ls -id /tmp/rootfs> # Inode-Anzahl des neuen Wurzelverzeichnisses zeigen\n"
+"319459 /tmp/rootfs\n"
+"$ B<cp $(which busybox) /tmp/rootfs>\n"
+"$ B<PS1=\\[aq]bbsh$ \\[aq] sudo ./pivot_root_demo /tmp/rootfs /busybox sh>\n"
+"bbsh$ B<PATH=/>\n"
+"bbsh$ B<busybox ln busybox ln>\n"
+"bbsh$ B<ln busybox echo>\n"
+"bbsh$ B<ln busybox ls>\n"
+"bbsh$ B<ls>\n"
+"busybox echo ln ls\n"
+"bbsh$ B<ls -id /> # Mit der Inode-Anzahl oben vergleichen\n"
+"319459 /\n"
+"bbsh$ B<echo \\[aq]Hallo Welt\\[aq]>\n"
+"Hallo Welt\n"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Program source"
+msgstr "Programmquelltext"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, no-wrap
+msgid ""
+"/* pivot_root_demo.c */\n"
+"\\&\n"
+"#define _GNU_SOURCE\n"
+"#include E<lt>err.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/mman.hE<gt>\n"
+"#include E<lt>sys/mount.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"static int\n"
+"pivot_root(const char *new_root, const char *put_old)\n"
+"{\n"
+" return syscall(SYS_pivot_root, new_root, put_old);\n"
+"}\n"
+"\\&\n"
+"#define STACK_SIZE (1024 * 1024)\n"
+"\\&\n"
+"static int /* Startup function for cloned child */\n"
+"child(void *arg)\n"
+"{\n"
+" char path[PATH_MAX];\n"
+" char **args = arg;\n"
+" char *new_root = args[0];\n"
+" const char *put_old = \"/oldrootfs\";\n"
+"\\&\n"
+" /* Ensure that \\[aq]new_root\\[aq] and its parent mount don\\[aq]t have\n"
+" shared propagation (which would cause pivot_root() to\n"
+" return an error), and prevent propagation of mount\n"
+" events to the initial mount namespace. */\n"
+"\\&\n"
+" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n"
+"\\&\n"
+" /* Ensure that \\[aq]new_root\\[aq] is a mount point. */\n"
+"\\&\n"
+" if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_BIND\");\n"
+"\\&\n"
+" /* Create directory to which old root will be pivoted. */\n"
+"\\&\n"
+" snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n"
+" if (mkdir(path, 0777) == -1)\n"
+" err(EXIT_FAILURE, \"mkdir\");\n"
+"\\&\n"
+" /* And pivot the root filesystem. */\n"
+"\\&\n"
+" if (pivot_root(new_root, path) == -1)\n"
+" err(EXIT_FAILURE, \"pivot_root\");\n"
+"\\&\n"
+" /* Switch the current working directory to \"/\". */\n"
+"\\&\n"
+" if (chdir(\"/\") == -1)\n"
+" err(EXIT_FAILURE, \"chdir\");\n"
+"\\&\n"
+" /* Unmount old root and remove mount point. */\n"
+"\\&\n"
+" if (umount2(put_old, MNT_DETACH) == -1)\n"
+" perror(\"umount2\");\n"
+" if (rmdir(put_old) == -1)\n"
+" perror(\"rmdir\");\n"
+"\\&\n"
+" /* Execute the command specified in argv[1]... */\n"
+"\\&\n"
+" execv(args[1], &args[1]);\n"
+" err(EXIT_FAILURE, \"execv\");\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *stack;\n"
+"\\&\n"
+" /* Create a child process in a new mount namespace. */\n"
+"\\&\n"
+" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n"
+" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n"
+" if (stack == MAP_FAILED)\n"
+" err(EXIT_FAILURE, \"mmap\");\n"
+"\\&\n"
+" if (clone(child, stack + STACK_SIZE,\n"
+" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n"
+" err(EXIT_FAILURE, \"clone\");\n"
+"\\&\n"
+" /* Parent falls through to here; wait for child. */\n"
+"\\&\n"
+" if (wait(NULL) == -1)\n"
+" err(EXIT_FAILURE, \"wait\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+"/* pivot_root_demo.c */\n"
+"\\&\n"
+"#define _GNU_SOURCE\n"
+"#include E<lt>err.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/mman.hE<gt>\n"
+"#include E<lt>sys/mount.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+"\\&\n"
+"static int\n"
+"pivot_root(const char *new_root, const char *put_old)\n"
+"{\n"
+" return syscall(SYS_pivot_root, new_root, put_old);\n"
+"}\n"
+"\\&\n"
+"#define STACK_SIZE (1024 * 1024)\n"
+"\\&\n"
+"static int /* Startfunktion für das geklonte Kind */\n"
+"child(void *arg)\n"
+"{\n"
+" char path[PATH_MAX];\n"
+" char **args = arg;\n"
+" char *new_root = args[0];\n"
+" const char *put_old = \"/oldrootfs\";\n"
+"\\&\n"
+" /* Sicherstellen, dass »neue_Wurzel« und dessen Elterneinhängung\n"
+" keine gemeinsame Ausbreitung haben (was pivot_root() dazu bringen\n"
+" würde, einen Fehler auszugeben) und die Ausbreitung von\n"
+" Einhängeereignissen in den anfänglichen Namensraum zu verhindern. */\n"
+"\\&\n"
+" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n"
+"\\&\n"
+" /* Sicherstellen, dass »neue_Wurzel« ein Einhängepunkt ist. */\n"
+"\\&\n"
+" if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_BIND\");\n"
+"\\&\n"
+" /* Ein Verzeichnis anlegen, zu dem die alte Wurzel hin umgeschwenkt wird. */\n"
+"\\&\n"
+" snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n"
+" if (mkdir(path, 0777) == -1)\n"
+" err(EXIT_FAILURE, \"mkdir\");\n"
+"\\&\n"
+" /* Und das Wurzeldateisystem umschwenken. */\n"
+"\\&\n"
+" if (pivot_root(new_root, path) == -1)\n"
+" err(EXIT_FAILURE, \"pivot_root\");\n"
+"\\&\n"
+" /* Das aktuelle Arbeitsverzeichnis auf »/« ändern. */\n"
+"\\&\n"
+" if (chdir(\"/\") == -1)\n"
+" err(EXIT_FAILURE, \"chdir\");\n"
+"\\&\n"
+" /* Die alte Wurzel aushängen und den Einhängepunkt entfernen.*/\n"
+"\\&\n"
+" if (umount2(put_old, MNT_DETACH) == -1)\n"
+" perror(\"umount2\");\n"
+" if (rmdir(put_old) == -1)\n"
+" perror(\"rmdir\");\n"
+"\\&\n"
+" /* Den in argv[1] … angegebenen Befehl ausführen */\n"
+"\\&\n"
+" execv(args[1], &args[1]);\n"
+" err(EXIT_FAILURE, \"execv\");\n"
+"}\n"
+"\\&\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *stack;\n"
+"\\&\n"
+" /* Einen Kindprozess in einem neuen Einhängenamensraum erzeugen. */\n"
+"\\&\n"
+" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n"
+" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n"
+" if (stack == MAP_FAILED)\n"
+" err(EXIT_FAILURE, \"mmap\");\n"
+"\\&\n"
+" if (clone(child, stack + STACK_SIZE,\n"
+" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n"
+" err(EXIT_FAILURE, \"clone\");\n"
+"\\&\n"
+" /* Elternprozess fällt bis hierher durch; wartet auf Kindprozess. */\n"
+"\\&\n"
+" if (wait(NULL) == -1)\n"
+" err(EXIT_FAILURE, \"wait\");\n"
+"\\&\n"
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. SRC END
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SIEHE AUCH"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<chdir>(2), B<chroot>(2), B<mount>(2), B<stat>(2), B<initrd>(4), "
+"B<mount_namespaces>(7), B<pivot_root>(8), B<switch_root>(8)"
+msgstr ""
+"B<chdir>(2), B<chroot>(2), B<mount>(2), B<stat>(2), B<initrd>(4), "
+"B<mount_namespaces>(7), B<pivot_root>(8), B<switch_root>(8)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5. Februar 2023"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "VERSIONS"
+msgstr "VERSIONEN"
+
+#. type: Plain text
+#: debian-bookworm
+msgid "B<pivot_root>() was introduced in Linux 2.3.41."
+msgstr "B<pivot_root>() wurde in Linux 2.3.41 eingeführt."
+
+#. type: Plain text
+#: debian-bookworm
+msgid "B<pivot_root>() is Linux-specific and hence is not portable."
+msgstr "B<pivot_root>() ist Linux-spezifisch und daher nicht portierbar."
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "/* pivot_root_demo.c */\n"
+msgstr "/* pivot_root_demo.c */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>err.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/mman.hE<gt>\n"
+"#include E<lt>sys/mount.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+msgstr ""
+"#define _GNU_SOURCE\n"
+"#include E<lt>err.hE<gt>\n"
+"#include E<lt>limits.hE<gt>\n"
+"#include E<lt>sched.hE<gt>\n"
+"#include E<lt>signal.hE<gt>\n"
+"#include E<lt>stdio.hE<gt>\n"
+"#include E<lt>stdlib.hE<gt>\n"
+"#include E<lt>sys/mman.hE<gt>\n"
+"#include E<lt>sys/mount.hE<gt>\n"
+"#include E<lt>sys/stat.hE<gt>\n"
+"#include E<lt>sys/syscall.hE<gt>\n"
+"#include E<lt>sys/wait.hE<gt>\n"
+"#include E<lt>unistd.hE<gt>\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static int\n"
+"pivot_root(const char *new_root, const char *put_old)\n"
+"{\n"
+" return syscall(SYS_pivot_root, new_root, put_old);\n"
+"}\n"
+msgstr ""
+"static int\n"
+"pivot_root(const char *neue_Wurzel, const char *alte_Wurzel)\n"
+"{\n"
+" return syscall(SYS_pivot_root, neue_Wurzel, alte_Wurzel);\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid "#define STACK_SIZE (1024 * 1024)\n"
+msgstr "#define STACK_SIZE (1024 * 1024)\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"static int /* Startup function for cloned child */\n"
+"child(void *arg)\n"
+"{\n"
+" char path[PATH_MAX];\n"
+" char **args = arg;\n"
+" char *new_root = args[0];\n"
+" const char *put_old = \"/oldrootfs\";\n"
+msgstr ""
+"static int /* Startfunktion für geklontes Kind */\n"
+"child(void *arg)\n"
+"{\n"
+" char path[PATH_MAX];\n"
+" char **args = arg;\n"
+" char *neue_Wurzel = args[0];\n"
+" const char *alte_Wurzel = \"/altes_Wurzeldateisystem\";\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" /* Ensure that \\[aq]new_root\\[aq] and its parent mount don\\[aq]t have\n"
+" shared propagation (which would cause pivot_root() to\n"
+" return an error), and prevent propagation of mount\n"
+" events to the initial mount namespace. */\n"
+msgstr ""
+" /* Sicherstellen, dass »neue_Wurzel« und dessen Elterneinhängung\n"
+" keine gemeinsame Ausbreitung haben (was pivot_root() dazu bringen\n"
+" würde, einen Fehler auszugeben) und die Ausbreitung von\n"
+" Einhängeereignissen in den anfänglichen Namensraum zu verhindern. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n"
+msgstr ""
+" if (mount(NULL, \"/\", NULL, MS_REC | MS_PRIVATE, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_PRIVATE\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Ensure that \\[aq]new_root\\[aq] is a mount point. */\n"
+msgstr " /* Sicherstellen, dass »neue_Wurzel« ein Einhängepunkt ist. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (mount(new_root, new_root, NULL, MS_BIND, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_BIND\");\n"
+msgstr ""
+" if (mount(neue_Wurzel, neue_Wurzel, NULL, MS_BIND, NULL) == -1)\n"
+" err(EXIT_FAILURE, \"mount-MS_BIND\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Create directory to which old root will be pivoted. */\n"
+msgstr " /* Ein Verzeichnis anlegen, zu dem die alte Wurzel hin umgeschwenkt wird. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" snprintf(path, sizeof(path), \"%s/%s\", new_root, put_old);\n"
+" if (mkdir(path, 0777) == -1)\n"
+" err(EXIT_FAILURE, \"mkdir\");\n"
+msgstr ""
+" snprintf(path, sizeof(path), \"%s/%s\", neue_Wurzel, alte_Wurzel);\n"
+" if (mkdir(path, 0777) == -1)\n"
+" err(EXIT_FAILURE, \"mkdir\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* And pivot the root filesystem. */\n"
+msgstr " /* Und das Wurzeldateisystem umschwenken. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (pivot_root(new_root, path) == -1)\n"
+" err(EXIT_FAILURE, \"pivot_root\");\n"
+msgstr ""
+" if (pivot_root(neue_Wurzel, Pfad) == -1)\n"
+" err(EXIT_FAILURE, \"pivot_root\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Switch the current working directory to \"/\". */\n"
+msgstr " /* Das aktuelle Arbeitsverzeichnis auf »/« ändern. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (chdir(\"/\") == -1)\n"
+" err(EXIT_FAILURE, \"chdir\");\n"
+msgstr ""
+" if (chdir(\"/\") == -1)\n"
+" err(EXIT_FAILURE, \"chdir\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Unmount old root and remove mount point. */\n"
+msgstr " /* Die alte Wurzel aushängen und den Einhängepunkt entfernen. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (umount2(put_old, MNT_DETACH) == -1)\n"
+" perror(\"umount2\");\n"
+" if (rmdir(put_old) == -1)\n"
+" perror(\"rmdir\");\n"
+msgstr ""
+" if (umount2(put_old, MNT_DETACH) == -1)\n"
+" perror(\"umount2\");\n"
+" if (rmdir(put_old) == -1)\n"
+" perror(\"rmdir\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Execute the command specified in argv[1]... */\n"
+msgstr " /* Den in argv[1] … angegebenen Befehl ausführen */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" execv(args[1], &args[1]);\n"
+" err(EXIT_FAILURE, \"execv\");\n"
+"}\n"
+msgstr ""
+" execv(args[1], &args[1]);\n"
+" err(EXIT_FAILURE, \"execv\");\n"
+"}\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *stack;\n"
+msgstr ""
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+" char *stack;\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Create a child process in a new mount namespace. */\n"
+msgstr " /* Einen Kindprozess in einem neuen Einhängenamensraum erzeugen. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n"
+" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n"
+" if (stack == MAP_FAILED)\n"
+" err(EXIT_FAILURE, \"mmap\");\n"
+msgstr ""
+" stack = mmap(NULL, STACK_SIZE, PROT_READ | PROT_WRITE,\n"
+" MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);\n"
+" if (stack == MAP_FAILED)\n"
+" err(EXIT_FAILURE, \"mmap\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (clone(child, stack + STACK_SIZE,\n"
+" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n"
+" err(EXIT_FAILURE, \"clone\");\n"
+msgstr ""
+" if (clone(child, stack + STACK_SIZE,\n"
+" CLONE_NEWNS | SIGCHLD, &argv[1]) == -1)\n"
+" err(EXIT_FAILURE, \"clone\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid " /* Parent falls through to here; wait for child. */\n"
+msgstr " /* Elternprozess fällt bis hierher durch; wartet auf Kindprozess. */\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" if (wait(NULL) == -1)\n"
+" err(EXIT_FAILURE, \"wait\");\n"
+msgstr ""
+" if (wait(NULL) == -1)\n"
+" err(EXIT_FAILURE, \"wait\");\n"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, no-wrap
+msgid ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+msgstr ""
+" exit(EXIT_SUCCESS);\n"
+"}\n"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-05-03"
+msgstr "3. Mai 2023"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30. März 2023"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux-Handbuchseiten 6.04"