PIVOT_ROOT(8)

НАЗВА
pivot_root - зміна кореневої файлової системи

КОРОТКИЙ ОПИС

pivot_root new_root put_old

ОПИС

pivot_root moves the root file system of the current process to the directory put_old and makes new_root the new root file system. Since pivot_root(8) simply calls pivot_root(2), we refer to the man page of the latter for further details.

Зауважте, що, залежно від реалізації pivot_root, кореневий каталог і поточний робочий каталог функції, звідки здійснюватиметься виклик, може бути змінено, а може бути і не змінено. У наведеній нижче послідовності для виклику pivot_root, яка працює в усіх випадках, ми припускаємо, що pivot_root і chroot зберігаються у одному із каталогів, описаних поточним значенням змінної середовища PATH:

    cd новий_корінь
    pivot_root . місце_старого
    exec chroot . команда

Зауважте, що chroot має бути доступним у старому кореневому каталозі і у новому кореневому каталозі, оскільки pivot_root може неявним чином змінити або не змінювати кореневий каталог командної оболонки.

Зауважте, що exec chroot змінює запущений виконуваний файл, який потрібен, якщо згодом треба буде демонтувати каталог старого кореня. Також зауважте, що стандартне джерело вхідних даних, стандартне виведення та стандартне виведення помилок можуть вказувати на пристрій у старій кореневій файловій системі, зберігаючи на ньому активність. Їх можна легко змінити викликом chroot (див. нижче; зауважте відсутність початкових символів похилих рисок, яка забезпечує працездатність команд, незалежно від того, було змінено корінь командної оболонки у результаті виконання pivot_root чи ні).

ПАРАМЕТРИ

-h, --help
    Вивести текст довідки і завершити роботу.

-V, --version
    Вивести дані щодо версії і завершити роботу.

ПРИКЛАД

Змінити кореневу файлову систему на /dev/hda1 з інтерактивної командної оболонки:

    mount /dev/hda1 /новий-корінь
    cd /новий-корінь
    pivot_root . старий-корінь
    exec chroot . sh <dev/console >dev/console 2>&1
    umount /старий-корінь

Змонтувати нову кореневу файлову систему через NFS з 10.0.0.1:/my_root і запустити init:

    ifconfig lo 127.0.0.1 up   # для portmap
    # налаштувати Ethernet або щось подібне
    portmap   # для lockd (неявно запущено mount)
    mount -o ro 10.0.0.1:/my_root /mnt
    killall portmap   # portmap утримує активність у старому корені
    cd /mnt
    pivot_root . старий_корінь
    exec chroot . sh -c 'umount /старий_корінь; exec /sbin/init' \
      <dev/console >dev/console 2>&1

ТАКОЖ ПЕРЕГЛЯНЬТЕ

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

ЯК НАДІСЛАТИ ЗВІТ ПРО ВАДИ

Для звітування щодо вад скористайтеся системою стеження за вадами -

ДОСТУП ДО ПРОГРАМИ

Програма pivot_root є частиною пакунка util-linux, який можна отримати з