PIVOT_ROOT(8) Systemadministration PIVOT_ROOT(8)

pivot_root - ändra rotfilsystemet

pivot_root new_root put_old

pivot_root flyttar rotfilsystemet för den aktuella processen till katalogen put_old och gör new_root till det nya rotfilsystemet. Eftersom pivot_root(8) helt enkelt anropar pivot_root(2) hänvisar vi till man-sidan för den senare för ytterligare information.

Observera att beroende på implementeringen av pivot_root kan root och den aktuella arbetskatalogen för den som anropar ändras eller inte. Följande är en sekvens för att anropa pivot_root som fungerar i båda fallen, förutsatt att pivot_root och chroot finns i den aktuella PATH:

cd ny_root
pivot_root . put_old
exekvera chroot . kommando

Observera att chroot måste vara tillgängligt under den gamla roten och under den nya roten, eftersom pivot_root kanske eller kanske inte implicit har ändrat rotkatalogen i skalet.

Observera att exec chroot ändrar den körbara filen, vilket är nödvändigt om den gamla rotkatalogen ska kunna avmonteras efteråt. Observera också att standardinmatning, -utmatning och -fel fortfarande kan peka på en enhet i det gamla rotfilsystemet, vilket håller den upptagen. De kan enkelt ändras när chroot anropas (se nedan; notera avsaknaden av inledande snedstreck för att det ska fungera oavsett om pivot_root har ändrat skalets rot eller inte).

-h, --help

Visa hjälptext och avsluta.

-V, --version

Visa version och avsluta.

Ändra rotfilsystemet till /dev/hda1 från ett interaktivt skal:

montera /dev/hda1 /ny-root
cd /ny-root
pivot_root . gammal-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /gammal-root

Montera det nya rotfilsystemet via NFS från 10.0.0.1:/my_root och kör init:

ifconfig lo 127.0.0.1 up # för portmap
# konfigurera Ethernet eller liknande
portmap # för lockd (startas implicit av mount)
mount -o ro 10.0.0.1:/my_root /mnt
killall portmap # portmap håller den gamla roten upptagen
cd /mnt
pivot_root . gammal_root
exec chroot . sh -c 'umount /old_root; exec /sbin/init' \
  <dev/console >dev/console 2>&1

chroot(1), pivot_root(2), mount(8), switch_root(8), umount(8)

För felrapporter, använd felhanteraren https://github.com/util-linux/util-linux/issues.

Kommandot pivot_root ingår i paketet util-linux som kan hämtas från Linux Kernel Archive https://www.kernel.org/pub/linux/utils/util-linux/.

2026-05-18 util-linux 2.42.1