File: pivot_root.8

package info (click to toggle)
manpages-ja 0.5.0.0.20210215%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 28,568 kB
  • sloc: perl: 161; makefile: 58
file content (91 lines) | stat: -rw-r--r-- 2,886 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
.\" This man page is a part of util-linux.
.\"
.\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved.
.\" Translated Wed Jun 14 2000 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
.\"
.TH PIVOT_ROOT 8 "Feb 23, 2000" "Linux" "Maintenance Commands"
.SH 名前
pivot_root \- root ファイルシステムを変更する
.SH 書式
.B pivot_root
.RB \fInew_root\fP
.RB \fIput_old\fP
.SH 説明
.B pivot_root
はカレントプロセスの root ファイルシステムを
.I put_old
ディレクトリに移動し、
.I new_root
を新しい root ファイルシステムにする。
.BR pivot_root (8)
.BR pivot_root (2)
を呼び出しているだけなので、詳細は後者の man ページにあたって欲しい。

呼び出しプロセスの root とカレントワーキングディレクトリ (cwd) は
.B pivot_root
の実装に依存して変わったり変わらなかったりする。
以下はどちらの場合にも動作する
.B pivot_root
の起動方法だが、
.BR pivot_root " と " chroot " の両方が現在の " PATH
に入っている必要がある。
.sp
cd \fInew_root\fP
.br
pivot_root . \fIput_old\fP
.br
exec chroot . \fIcommand\fP
.sp
.B chroot
は古い root と新しい root の両方で使えなければならない。
なぜなら
.B pivot_root
がシェルの root ディレクトリを暗黙のうちに変更するかどうかは
わからないからである。

.B exec chroot
は動作している実行ファイルを変更する。
これは後で古い root ディレクトリがアンマウントされるために必要なのである。
また標準入力・標準出力・標準エラー出力が古い root ファイルシステムの
デバイスを指していて、 root ファイルシステムを
busy 状態にするかもしれない。
これらは
.B chroot
を実行するときに簡単に変更できる (以下を参照。
先頭のスラッシュがないので (相対パスで指定しているので)、
.B pivot_root
がシェルの root を変更する場合でもしない場合でも動作することに注目。)
.SH 例
対話シェルから root ファイルシステムを /dev/hda1 に変更する:
.sp
.nf
mount /dev/hda1 /new-root
cd /new-root
pivot_root . old-root
exec chroot . sh <dev/console >dev/console 2>&1
umount /old-root
.fi
.sp
新しい root ファイルシステムを 10.0.0.1:/my_root から
NFS でマウントし、
.B init
を起動する:
.sp
.nf
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
.fi
.SH 関連項目
.BR chroot (1),
.BR mount (8),
.BR pivot_root (2),
.BR umount (8)