PIVOT_ROOT(8)

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

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

pivot_root новий_корінь місце_старого

ОПИС

pivot_root пересуває кореневу файлову систему поточного процесу до каталогу місце_старого і робить новий_корінь новою кореневою файловою системою. Оскільки pivot_root(8) просто викликає pivot_root(2), ми посилатимемося нижче на сторінку підручника з цієї функції для ознайомлення з подробицями, щоб ознайомитися із подробицями.

Зауважте, що, залежно від реалізації 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, який можна отримати з