diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /po/de/man2/pivot_root.2.po | |
parent | Initial commit. (diff) | |
download | manpages-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.po | 1213 |
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" |