PIVOT_ROOT(2) | System Calls | PIVOT_ROOT(2) |
이름¶
pivot_root - 루트파일시스템 바꾸기.
사용법¶
#include <linux/unistd.h>
_syscall2(int,pivot_root,const char *,new_root,const char *,put_old)
int pivot_root(const char *new_root, const char *put_old);
설명¶
pivot_root는 디렉토리 put_old로 현재 프로세스의 루트 파일시스템을 옮기고, 현재 프로세스의 새로운 파일시스템 new_root를 만든다.
의 전형적인 사용은 시스템이 임시 루트 파일시스템을 마운트할 때인 시스템 부팅동안이다. 그리고나서 실제 루트 파일 시스템을 마운트하고, 결국 모든 관련된 프로세스들과 쓰레드의 현재 루트안에 후자로 바꾼다.
pivot_root는 현재 루트와 모든 프로세스나 쓰레드의 현재 작업중인 디렉토리(cwd)를 변화시키나 그렇지 않을 수도 있다. pivot_root의 caller는 루트나 cwd의 프로세스를 확인해야만 한다. 확인의 쉬운 방법은 pivot_root 이 실행되기 전에 new_root로 루트, cwd를 바꾸는 것이다.
이것은 또한 현재 프로세스에 적용한다는 것을 주지한다:pivot_root는 cwd에 영향을 받을 수도 있고 그렇지 않을 수도 있다. 그러므로 그것은 pivot_root후에 즉시 chdir("/") 호출을 명령한다.
다음의 제한은 new_root와 put_old를 적용한다:
- 디렉토리여만 한다.
- new_root 와 put_old는 현재 루트와 같은 파일 시스템이 아니어야한다.
- put_old는 new_root 아래이어야만 한다.
- 어떠한 다른 파일 시스템도 put_old에 마운트되지 않았을 런지 모른댜.
추가 사용예제를 위해 pivot_root(8)를 본다.
주의¶
new_root는 마운트 포인트가 되지않아야 한다.
반환값¶
성공시, 0이 반환된다. 실패시,-1이 반환되고 errno는 적절히 설정된다.
에러¶
pivot_root는 stat(2)에 의해 반환된 에러의 대부분을 반환할런지 모른다. 추가적으로, 아 래의 사항이 반환될런지도 모른다:
버그¶
pivot_root는 시스템의 모든 다른 프로세스들의 루트와 cwd를 바꾸지 않아야만 했다.
호환¶
pivot_root는 리눅스에서만 쓰이므로 이식될 수 없다.
역사¶
pivot_root는 리눅스 2.3.41에서 소개 되었다.
관련 항목¶
역자¶
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 26
February 23, 2000 | Linux |