안녕하세요 Kloong입니다.

오늘은 mount 명령어에 대해서 포스팅 할끄에요

사실 임시저장 해놨었는데 날아가버려서 조금 빡치지만 그래도 열심히 할게요 엉엉

시작!


mount 명령어란

보조기억장치를 디렉터리처럼 쓰게 하거나 다른 파일 시스템의 장치에 접근할 수 있게 하는 명령어입니다.

mount 명령어로 윈도우에 있는 공유파일을 리눅스의 디렉터리에 mount 해서 파일을 공유할 수도 있고

외장 하드를 디렉터리에 mount 해서 디렉터리처럼 쓸 수 있는거죠.

mount 명령어는 /etc/fstab 이라는 파일의 설정을 기초로해서 작동합니다.(자세한 내용은 나중에 하겠습니다)


mount 명령어의 기본 형식은

#sudo mount [-v -r -w] [-t 파일 시스템] [-o 옵션] [마운트 할 장치] [마운트 될 디렉터리]


아무 것도 없이 mount 만 하면 현재 mount 정보가 출력됩니다.(-v 옵션을 쓰면 자세한 정보가 출력되는데 잘 모르겠음 ㅋ)

-r 옵션을 쓰면 read-only 로 mount 합니다. -w 는 읽기 쓰기 모두 되게 mount 합니다.

(-r -w 얘네 둘은 쓰지 않고 옵션에서 따로 설정하는게 편합니다.)


파일 시스템은 마운트 할 장치에 맞게 써주시면 됩니다.

대표적인 파일 시스템으로는

iso9660 : CD-ROM의 파일 시스템

vfat : Window 95,98,NT 파일 시스템

ext2 : 리눅스에서 사용되는 파일 시스템

ext3 : ext2 + 저널링 파일 시스템(파일 복구 기능)

nfs : Network File System 의 약자. nfs 서버의 공유 디렉터리를 mount 할 때 쓰임

cifs : 윈도우 공유파일에서 쓰는 파일 시스템

등이 있습니다.

mount 명령어에서 자주 쓰는 쪽으로(물론 몇 개는 아닙니다 ㅋ) 써봤구요


옵션은 되게 많아서 자주 쓰이는 것만 쓰겠습니다.(사실 잘 모름ㅋ)

default : rw, suid, dev, auto, nouser, async 옵션이 선택됩니다. 옵션을 안 쓰시면 자동으로 선택됩니다.

ro : read-only. 읽기 전용으로 mount합니다.

rw : read and write. 읽기 쓰기 모두 가능하게 mount합니다.

auto : -a 옵션으로 mount 할 수 있게 합니다. 그니까 mount -a 하면 auto 옵션이 되어있는 장치는 자동으로 mount가 됩니다.

noauto: -a 옵션으로 mount 안됨 ㅠ 명시적으로만 mount 된다는데 이게 명령어로 쳐야지 mount 된다는 소리인 것 같음.

exec : 실행파일의 실행을 가능하게 mount 합니다.

noexec : 실행파일의 실행이 불가능합니다.

user : 일반사용자의 mount를 허용합니다.

nouser : 일반사용자의 mount를 거부합니다.(root만 가능하게 합니다)

async : 파일시스템에 대한 입출력이 비동기적으로 이루어지게 합니다.

sync : 파일시스템에 대한 입출력이 동기적으로 이루어지게 합니다.

remount : 이미 mount 된 파일 시스템을 다시 mount 합니다. mount를 잘못했거나 /etc/fstab 을 잘못 수정했을 때 쓴다네요.

dev : 파일 시스템의 문자, 블럭 특수장치를 해석합니다.(뭔 소린지)

suid : set-UID 와 get-GID 의 사용을 허가합니다.(이게 뭔소리임)

nosuid : suid의 반대입니다.

umask : mount 된 디렉터리에서 새로 생성하는 파일과 디렉터리의 퍼미션의 default 값을 지정합니다.

             파일과 디렉터리를 새로 생성할 때 마다 퍼미션을 주기 귀찮을 때 쓰시면 됩니다.

             얘는 특이한게 퍼미션을 주는 개념이 아니라 박탈하는 개념입니다. 

             그러니까 퍼미션 755을 주겟다고 umask=755 하면 퍼미션은 022 되어버립니다.(777 - 755)

             결론은 퍼미션 755를 주기 위해서는 umask=022 (777에서 022를 빼면 755) 하면 됩니다.

             참고로 umask 옵션을 주면 새로 생기는 파일이나 디렉터리 뿐만 아니라

          mount 된 디렉터리와 이미 그 안에 있는 모든 파일,디렉터리의 퍼미션이 umask의 영향을 받습니다.

          (umask=022 하면 안에 있는 애들도 퍼미션이 755가 됨)

             또 umask 옵션을 안 주면 새로 생기는 애들, 이미 안에 있는 애들의 퍼미션이  777 됩니다 주의해주세요.

             (원래 umask 개념이 새로 생성하는 애들의 퍼미션을 바꾸는 건데 왜 원래 있던 애들도 바뀌는지 모르겠네요;;)

fmask : umask의 개념에서 디렉터리 관련 내용만 뺀 옵션입니다. 파일의 퍼미션만 설정합니다.

dmask : umask의 개념에서 파일 관련 내용만 뺀 옵션입니다. 디렉터리의 퍼미션만 설정합니다.


옵션을 여러 개 쓸 때는 사이에  :  콜론을 붙여주시면 됩니다.

#sudo mount -t ntfs -o rw:suid:dev:auto /dev/hda1 /home/kloong/mnt

요런 식으로 명령어를 써주시면 됩니다.(파일 시스템은 장치의 파일 시스템을 쓰시면 되는 것 같습니다.)


마운트를 해제할 때는 umount 명령어를 쓰시면 됩니다.

#sudo umount [장치명 또는 디렉터리명]

아주 간단하게 마운트가 해제됩니다.

#sudo umount -a [-t 파일 시스템] 

-a 옵션을 쓰시면 시스템이 mount 한 장치나 파일 시스템을 제외하고 사용자가 mount 한 장치나 파일 시스템을 모두 umount, 

-t 옵션을 추가하시면 원하는 파일 시스템만 umount 합니다.

예를 들어

#sudo umount -a -t ext3

하면 사용자가 mount 한 장치나 파일 시스템중에 ext3을 사용하는 것만 umount 합니다.


아 그런데 umount를 한 적도 없는데 재부팅했더니 mount가 해제되어있다구요?

그럴 때 /etc/fstab 파일을 편집하면 됩니다. /etc/fstab 편집을 통해서 부팅시에 자동으로 mount 되게 할 수 있졍

파일 구조에 대해서 설명을 해드리겠습니다

사진이 있으면 편한테 우분투에서 안되는건지 제 노트북이 이상한건지 프린트 스크린 키가 먹지를 않네요 ㅠㅠ

기본적인 구조는

<마운트 할 장치> <마운트 될 디렉터리> <파일 시스템> <옵션> <덤프> <검사>

마운트 할 장치 : 말 그대로 장치를 말합니다. 처음에 파일을 열면 UUID=어쩌구저쩌구 되어있는데 

                         UUID는 장치가 가지고 있는 값이라고 보시면 됩니다.

                         (맥 어드레스와는 다르다고 합니다. 맥 어드레스는 고유의 값인데 비해 UUID는 겹치거나 변한다고 하네요)

                         장치의 UUID를 모르는데 어떻게 하냐구요? 몰라도 됩니다 ㅋ 그냥 /dev/had1 이렇게 해도 됩니다 굿ㅋ

마운트 될 디렉터리 : 이 건 뭔지 아시겠죠? 말 그대로 입니다.

파일 시스템 : 어떤 파일시스템으로 mount 할 지 써주시면 됩니다. 위에 나와있는 파일 시스템을 쓰시면 됩니다.

옵션 : mount 명령어에서 -o 다음에 나오는 옵션을 써주시면 됩니다.

          얘는 여러 옵션을 쓸 때 콜론이 아니라 콤마를 쓴다고 하네요.

덤프 : 덤프란 백업,오류 수정, 데이터 검사 이런 것들을 말하는 겁니다.(백업이라고 생각하시면 될 듯 합니다.) 

          얘는 설정할 때 숫자로 합니다.

           0 : 안합니다.

           1 : 합니다.

검사 : 부팅 시에 검사 여부를 결정합니다. 얘도 숫자로 설정합니다.

           0 : 안합니다.

           1 : 루트 파일 시스템으로 부팅 시에 검사합니다.

           2 : 루트 파일 시스템 이외의 파일 시스템으로 부팅 시에 검사합니다.


이 양식에 맞게 수정하시면 재부팅해도 자동으로 mount가 됩니다. 굿ㅋ


이번에는 /etc/mtab 파일에 대한 내용입니다.

/etc/mtab 에는 현재 mount 되어있는 파일 시스템이나 장치들의 정보가 있습니다.

수정할 필요는 없습니다.(mount 정보가 바뀔 때마다 지가 알아서 수정합니다.)

파일 구조는 /etc/fstab 과 거의 똑같은 것 같네요. 비슷한 방식으로 해석하시면 됩니다.

현재 mount 정보를 볼 때 #sudo mount 아니면 #cat /etc/mstab 하면 되는겁니다 굿굿


와 이 포스팅하는데 진짜 오래걸렸네요

저도 잘 모르는 내용들이 많아서 저도 많이 배웠습니다 ㅋㅋ

그럼 지금까지 Kloong 이였습니다.

좋은 하루 되세요!

Posted by Kloong

댓글을 달아 주세요

  1. 잘 보고 갑니다.
    저는 자꾸 마운트 하면 디렉토리 권한이 777로 되어 버리네요.

    2013.02.28 13:44 [ ADDR : EDIT/ DEL : REPLY ]
    • 아 저도 덕분에 알았네요 옵션에 umask=022 해주시면 퍼미션이 755로 바뀝니다. 777에서 022 를 빼서 755로 된다고 생각하시면 됩니다. default에서 자동으로 퍼미션을 777로 바꾸는 것 같네요
      mount -t 파일 시스템 -o umask=022 장치 디렉터리
      해주시면 됩니다

      2013.02.28 17:50 신고 [ ADDR : EDIT/ DEL ]
  2. umask 옵션이 있었네요 !
    가끔 편의상 ftp서버를 열어 다른 하드디스크를 일시적으로 마운트 해서 사용하곤 했는데 퍼미션 777로 되어 조금 불안했습니다. 좋은정보 감사합니다.

    2013.03.12 01:49 [ ADDR : EDIT/ DEL : REPLY ]
  3. AR

    찾아본 글들 중에 가장 정리 잘된 것 같아요! ! 댓글 남기고 싶었던 적 처음이네요. 잘 보고갑니다 ^.-

    2015.01.07 20:01 [ ADDR : EDIT/ DEL : REPLY ]