PIVOT_ROOT(8) مدیریت سیستم PIVOT_ROOT(8)

pivot_root - جابجایی دایرکتوری ریشه سیستم فایل به مکان جدید

pivot_root new_root put_old

دستور pivot_root سیستم فایل ریشه فرایند جاری را به دایرکتوری put_old منتقل کرده و new_root را به عنوان سیستم فایل ریشه جدید قرار می‌دهد. از آنجا که pivot_root(8) صرفاً pivot_root(2) را فراخوانی می‌کند، برای جزئیات بیشتر به صفحه راهنمای دومی ارجاع داده می‌شود.

توجه داشته باشید که بسته به پیاده‌سازی pivot_root، دایرکتوری ریشه و دایرکتوری کاری جاری فراخواننده ممکن است تغییر کند یا نکند. موارد زیر ترتیبی برای فراخوانی pivot_root است که در هر دو حالت کار می‌کند، با این فرض که pivot_root و chroot در PATH جاری قرار دارند:

cd new_root
pivot_root . put_old
exec chroot . command

توجه داشته باشید که chroot باید هم در زیر ریشه قدیمی و هم در زیر ریشه جدید در دسترس باشد، زیرا pivot_root ممکن است دایرکتوری ریشه پوسته را به طور ضمنی تغییر داده باشد یا نداده باشد.

توجه داشته باشید که exec chroot فایل اجرایی در حال اجرا را تغییر می‌دهد، که اگر قرار است دایرکتوری ریشه قدیمی پس از آن پیاده‌سازی (unmount) شود، ضروری است. همچنین توجه داشته باشید که ورودی، خروجی و خطای استاندارد ممکن است همچنان به دستگاهی در سیستم فایل ریشه قدیمی اشاره کنند و آن را مشغول نگه دارند. آنها را می‌توان هنگام فراخوانی chroot به‌راحتی تغییر داد (زیر را ببینید؛ به عدم وجود اسلش‌های آغازین توجه کنید تا چه pivot_root ریشه پوسته را تغییر داده باشد چه نداده باشد، کار کند).

-h, --help

نمایش متن راهنما و خروج.

-V, --version

نمایش نسخه و خروج.

تغییر سیستم فایل ریشه به /dev/hda1 از یک پوسته تعاملی:

mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /old-root

سوار کردن سیستم فایل ریشه جدید از طریق NFS از 10.0.0.1:/my_root و اجرای init:

ifconfig lo 127.0.0.1 up   # for portmap
# configure Ethernet or such
portmap   # for lockd (implicitly started by mount)
mount -o ro 10.0.0.1:/my_root /mnt
killall portmap   # portmap keeps old root busy
cd /mnt
pivot_root . old_root
exec chroot . sh -c 'umount /old_root; exec /sbin/init' \
  <dev/console >dev/console 2>&1

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

برای گزارش باگ‌ها، از ردیاب اشکال https://github.com/util-linux/util-linux/issues.

دستور pivot_root بخشی از بسته util-linux است که می‌توان آن را از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux. دریافت کرد.

2026-09-02 util-linux 2.42.3