PIVOT_ROOT

Section: Maintenance Commands (8)
Updated: Feb 23, 2000
Index JM Home Page
 

名前

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 <dev/console >dev/console 2>&1
umount /old-root

新しい root ファイルシステムを 10.0.0.1:/my_root から NFS でマウントし、 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), mount(8), pivot_root(2), umount(8)

関連キーワード

root   ファイルシステム   pivot   exec   console   portmap   chroot   シェル   mount   カレント   起動   busy   umount   詳細   ワーキング   実装   依存   方法   両方   暗黙   アンマウント   デバイス   スラッシュ   相対   注目

Linux マニュアル 一覧

関連するコマンド・関数

pivot_root.2   rpc.nfsd.8   sulogin.8   chroot.2   umount.8   gzexe.1
 

Index

名前
書式
説明
例
関連項目

This document was created by man2html, using the manual pages.
Time: 04:38:51 GMT, October 11, 2026