PIVOT_ROOT(8) Maintenance Commands PIVOT_ROOT(8)
名前
pivot_root - root ファイルシステムを変更する
書式
pivot_root new_root put_old
説明
pivot_root はカレントプロセスの root ファイルシステムを put_old ディレ
クトリに移動し、 new_root を新しい root ファイルシ ス テ ム に す る 。
pivot_root(8) は pivot_root(2) を呼び出しているだけなので、詳細は後者の
man ページにあたって欲しい。
呼び出しプロセスの root とカレントワーキングディレ ク ト リ (cwd) は
pivot_root の実装に依存して変わったり変わらなかったりする。以下はどちら
の場合にも動作する pivot_root の起動方法だが、 pivot_root と chroot の
両方が現在の PATH に入っている必要がある。
cd new_root
pivot_root . put_old
exec chroot . command
chroot は古い root と新しい root の両方で使えなければならない。なぜなら
pivot_root がシェルの root ディレクトリを暗黙のうちに変更するかどうかは
わからないからである。
exec chroot は動作している実行ファイルを変更する。これは後で古い root
ディレクトリがアンマウントされるために必要なのである。また標準入力・ 標
準 出力・標準エラー出力が古い root ファイルシステムのデバイスを指してい
て、 root ファイルシステムを busy 状態にするかもしれない 。 こ れ ら は
chroot を実行するときに簡単に変更できる (以下を参照。先頭のスラッシュが
ないので (相対パスで指定しているので)、 pivot_root がシェルの root を変
更する場合でもしない場合でも動作することに注目。)
例
対話シェルから root ファイルシステムを /dev/hda1 に変更する:
mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh
PIVOT_ROOT(8) Maintenance Commands PIVOT_ROOT(8)
NAME
pivot_root - change the root file system
SYNOPSIS
pivot_root new_root put_old
DESCRIPTION
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.
Note that, depending on the implementation of pivot_root, root and cwd
of the caller may or may not change. The following is a sequence for
invoking pivot_root that works in either case, assuming that pivot_root
and chroot are in the current PATH:
cd new_root
pivot_root . put_old
exec chroot . command
Note that chroot must be available under the old root and under the new
root, because pivot_root may or may not have implicitly changed the
root directory of the shell.
Note that exec chroot changes the running executable, which is neces-
sary if the old root directory should be unmounted afterwards. Also
note that standard input, output, and error may still point to a device
on the old root file system, keeping it busy. They can easily be
changed when invoking chroot (see below; note the absence of leading
slashes to make it work whether pivot_root has changed the shell’s root
or not).
EXAMPLES
Change the root file system to /dev/hda1 from an interactive shell:
mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh
Copyright(C) linux-cmd.com All Rights Reserved. Author Takayuki Yukawa