tail head cat sleep
QR code linking to this page

Man page  — MOUNT

명칭

mount, unmount – 파일 시스템을 mount 또는 mount 해제한다

내용

프로그램 라이브러리

Standard C Library (libc, -lc)

서식

#include <sys/param.h>
#include <sys/mount.h>

int
mount(const char *type, const char *dir, int flags, void *data);

int
unmount(const char *dir, int flags);

해설

mount() 함수는, 파일 시스템 오브젝트를 시스템 파일 트리의 마운트 포인트 dir 에 붙입니다. 인수 data (은)는 mount 되는 파일 시스템 오브젝트를 기술합니다. 인수 typedata (을)를 어떻게 해석할까를 커널에 통지합니다 (후술의 type (을)를 참조). 파일 시스템의 내용은, 새로운 마운트 포인트 dir (을)를 통해 이용할 수 있게 됩니다. mount가 성공하면(자) dir 에 있는 모든 파일이 덮어 가려진 상태가 되어, 파일 시스템이 mount 해제될 때까지 이용할 수 없게 됩니다.

다음의 flags (은)는, 파일 시스템 액세스에 영향이 있는 기본값을 억제하도록(듯이) 지정할 수 있습니다.
MNT_RDONLY 파일 시스템을 읽기 전용으로서 취급합니다. 슈퍼 유저조차 이것에 쓰기(일)것은 할 수 없습니다. 이 옵션없이 MNT_UPDATE 를 지정하면(자), 읽기 전용 파일 시스템이 읽기 / 기록에 업그레이드 됩니다.
MNT_NOEXEC 그 파일 시스템으로부터 파일을 실행할 수 없게 합니다.
MNT_NOSUID 실행할 경우에, 파일에 대한 setuid 비트 또는 setgid 비트를 존중하지 않습니다.
MNT_NOATIME 파일 액세스 시각의 갱신을 실시하지 않습니다.
MNT_NODEV 파일 시스템상의 특수 파일을 해석하지 않습니다.
MNT_SUIDDIR SUID 비트가 설정된 디렉토리는, 새로운 파일의 소유자를 디렉토리와 같게 설정합니다.
MNT_SYNCHRONOUS
  파일 시스템에의 입출력은 모두 동기적으로 행해집니다.
MNT_ASYNC 파일 시스템에의 입출력은 모두 비동기적으로 행해집니다.
MNT_FORCE 파일 시스템이 깨끗하지 않은 것처럼 보여도, 읽고 쓰기가능으로 mount를 강행합니다. 위험합니다.
MNT_NOCLUSTERR 클러스터 읽기를 무효로 합니다.
MNT_NOCLUSTERW 클러스터 기록을 무효로 합니다.

플래그 MNT_UPDATE (은)는, mount 명령이 벌써 mount 된 파일 시스템에 적용되고 있는 것을 나타냅니다. 이것에 의해, 파일 시스템을 mount 해제 및 재mount 하는 필요없음에, mount 플래그를 변경할 수 있습니다. 파일 시스템에 따라서는, 모든 플래그의 변경을 허용 하지 않는 경우도 있습니다. 예를 들어 많은 파일 시스템이, 읽고 쓰기가능으로부터 읽기 전용에의 변경을 허용 하지 않습니다.

vfs 하부조직은, 플래그 MNT_RELOAD 에 의해 벌써 mount 되고 있는 파일 시스템에 관계하는 데이터 구조체를 갱신합니다.

type 인수로 파일 시스템을 지정합니다. 시스템상에서 기존인 파일 시스템의 타입은 lsvfs(1) 그리고 얻을 수 있습니다.

data (은)는, mount 하는 타입에 고유의 인수가 들어간 구조체를 가리키는 포인터입니다. 이러한 인수 구조체에 대한 형식은 각 파일 시스템에 붙은 메뉴얼 페이지에 기재되어 있습니다. 관습에 의해 파일 시스템의 메뉴얼 페이지는, lsvfs(1) 에 의해 돌려주어진 파일 시스템명에 ``mount_''의 접두사를 붙여 명명됩니다. 그러므로, NFS 파일 시스템은 mount_nfs(8) 메뉴얼 페이지에 기술되고 있습니다.

unmount() 함수 호출은, 파일 시스템을 지정의 마운트 포인트 dir (으)로부터 대응부 해제합니다.

flags 인수로 MNT_FORCE (을)를 지정하는 것으로, 파일이 액티브해도, 파일 시스템이 강제적으로 mount 해제 또는 읽기 전용 (MNT_UPDATE 와 MNT_RDONLY 도 지정되어 있는 경우)에 될 필요가 있는 것을 나타냅니다. 액티브한 특수 디바이스는 계속 기능합니다만, 다른 액티브한 파일에의 그 이후의 액세스는, 비록 파일 시스템이 후에 재mount 되었다고 해도 에러를 일으킵니다.

MNT_SUIDDIR 옵션을 기능시키기 위해서(때문에)는, SUIDDIR 옵션이 커널내에 짜넣어지고 있는 것이 필요합니다. 상세한 것에 대하여는 mount(8) 페이지와 chmod(2) 페이지를 참조해 주세요.

반환값

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

에러

mount() 함수는, 다음 중 1 개에서도 일어났을 때에는 처리를 실패합니다.
[EPERM]
  호출측이 슈퍼 유저가 아닙니다.
[ENAMETOOLONG]
  패스명의 원가요소가 255 캐릭터를 넘고 있는지, 또는 패스명 전체가 1023 캐릭터를 넘고 있습니다.
[ELOOP]
  패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.
[ENOENT]
  dir 의 원가요소가 존재하지 않습니다.
[ENOTDIR]
  name 의 원가요소가 디렉토리가 아닌지, 또는 special 의 패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.
[EBUSY]
  다른 프로세스가 현시점에서 dir 에의 참조를 보관 유지하고 있습니다.
[EFAULT]
  dir (은)는 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

다음의 에러는, ufs 파일 시스템의 마운트에 도착해 발생할 가능성이 있습니다.
[ENODEV]
  ufs_args 의 원가요소 fspec 하지만 존재하지 않습니다.
[ENOTBLK]
  fspec (은)는 블록 디바이스가 아닙니다.
[ENXIO]
  fspec 의 메이저 디바이스 번호가 범위외입니다 (이것은 하드웨어에 대응하는 디바이스 드라이버가 존재하지 않는 것을 나타냅니다).
[EBUSY]
  fspec (은)는 이미 mount 되고 있습니다.
[EMFILE]
  mount 테이블 공간이 고갈했습니다.
[EINVAL]
  파일 시스템의 슈퍼 블록에 무례한 매직 번호 또는 범위외의 블록 사이즈가 있었습니다.
[ENOMEM]
  파일 시스템에 대한 실린더 그룹 정보를 독해의 것에 충분한 메모리가 없었습니다.
[EIO] 슈퍼 블록 또는 실린더 그룹의 정보를 독해간에 입출력 에러가 발생했습니다.
[EFAULT]
  fspec 하지만 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

다음의 에러는 nfs 파일 시스템 마운트에 도착해 일어날 가능성이 있습니다.
[ETIMEDOUT]
  nfs 하지만 서버와 접촉하려고 해 마감 시간이 되었습니다.
[EFAULT]
  nfs_args 에 의해 기술된 정보의 일부가, 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다

다음의 에러는 mfs 파일 시스템에 대해 일어날 가능성이 있습니다.
[EMFILE] mount 테이블 공간이 고갈했습니다.
[EINVAL] 파일 시스템의 슈퍼 블록에 무례한 매직 번호 또는 범위외의 블록 사이즈가 있었습니다.
[ENOMEM] 파일 시스템에 대한 실린더 그룹 정보를 독해의 것에 충분한 메모리가 없었습니다.
[EIO] 슈퍼 블록 또는 실린더 그룹의 정보를 독해간에 페이징 에러가 발생했습니다.
[EFAULT] name (은)는 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

unmount() 함수는, 다음의 에러의 1 개에서도 일어났을 때에는 처리를 실패합니다.
[EPERM]
  호출측이 슈퍼 유저가 아닙니다.
[ENOTDIR]
  패스의 원가요소중에 디렉토리 이외의 것이 포함되어 있습니다.
[ENAMETOOLONG]
  패스명의 원가요소가 255 캐릭터를 넘고 있는지, 또는 패스명 전체가 1023 캐릭터를 넘고 있습니다.
[ELOOP]
  패스명을 변환할 경우에 검출된 기호 연결이 너무 많습니다.
[EINVAL]
  지정된 디렉토리가 mount 테이블내에 없습니다.
[EBUSY]
  프로세스가 파일 시스템상에 있는 파일에의 참조를 보관 유지하고 있습니다.
[EIO] 캐쉬된 파일 시스템 정보를 기록 하고 있는 동안에 입출력 에러가 일어났습니다.
[EFAULT]
  dir 하지만 프로세스에 할당할 수 있었던 address 공간의 범위외를 가리키고 있습니다.

ufs mount 또는 mfs mount는, 최대수의 파일 시스템이 현시점에서 mount 되고 있는 경우에도 처리를 실패합니다.

관련 항목

lsvfs(1), mfs(8), mount(8), umount(8)

버그

에러 코드에는, 명료한 메세지(윤E2 위해서(때문에) 변경이 필요한 것이 있습니다.

역사

mount() 함수와 unmount() 함수는 AT&T v6 그리고 등장했습니다.

MOUNT (2) May 24, 1995

tail head cat sleep
QR code linking to this page


Ben Bullock이 유닉스 매뉴얼 페이지에서 서비스에 대한 의견을 주시기 바랍니다. Privacy policy.