본문 바로가기
IT

리눅스 서버에서 파일 시스템 mount / unmount 하기

by laoching 2023. 11. 3.
728x90
반응형

리눅스 서버에서 파일 시스템을 mount 명령어를 통해 붙이고, umount 명령어를 통해 뗄 수 있다.

 

파일 시스템 중 nas를 붙여봤다.

* NAS란
NAS(Network Attached Storage)는 중앙 집중식 파일 서버로, 여러 사용자가 Wi-Fi 또는 이더넷 케이블을 통해 TCP/IP 네트워크에서 파일을 저장하고 공유할 수 있습니다. 일반적으로 NAS 박스, NAS 장치, NAS 서버 또는 NAS 헤드라고도 합니다.
-출처 IBM-

 

mount 명령어 사용법

 

mount [장치명] [마운트 포인트]

 

장치명: 연결할 장치의 이름 (ex: /dev/sda1, devserver1(장치의 hostname))

마운트 포인트: 연결할 디렉터리 (ex: /sangs)

 

mount /dev/sda1 /sangs

위와 같은 명령어를 치면 /dev/sda1을 /sangs라는 이름으로 연결한다.

 

장치명 말고 ip를 이용해서 붙일 수도 있는데, 이 경우엔 nfs를 사용해야 한다.

* NFS란
NFS(Network File System)는 네트워크에 파일을 저장하는 메커니즘입니다. 이 시스템은 사용자가 원격 컴퓨터에 있는 파일 및 디렉토리에 액세스할 수 있고 해당 파일 및 디렉토리가 로컬에 있는 것처럼 처리하도록 허용하는 분산 파일 시스템입니다.
-출처 IBM-

 

nfs를 사용했을 때는 아래와 같이 사용한다.

 

mount -t nfs [ip 주소 or 장치명]:[파일 시스템 경로] [마운트 포인트]

 

ip 주소 or 장치명: 연결할 장치의 ip나 이름 (ex: 1.1.1.1 or /dev/sda1, devserver1(장치의 hostname))

파일 시스템 경로: 장치에서 붙일 경로 특정 (ex: /home/sangs)

마운트 포인트: 연결할 디렉터리 (ex: /dev1/sangs)

 

mount 명령어의 옵션
  • -a: /etc/fstab에 기록되어 있는 모든 파일시스템을 마운트 할 때 사용
  • -t: 파일시스템의 유형을 지정하는 옵션
  • -o: 항목 마운트 시 세부적인 옵션을 적용시킬 때 사용
자동 mount를 위한 /etc/fstab 파일 설정

/etc/fstab 파일은 리눅스 시스템에서 파일 시스템을 부팅 시 자동 실행되어 마운트하기 위한 설정 파일이다.

이 파일에는 리눅스 시스템에서 사용하는 파일 시스템의 정보와 마운트 포인트, 옵션 등이 저장되어 있다.

 

예시)

  1               2                3              4                           5

/dev/sda1  /dev            nfs       defaults                    0 0 

/dev/sda2  /sangs        xfx        defaults, _netdev     0 0

 

fstab 파일의 내용을 보면,

  • 장치명: 파일 시스템이 있는 장치의 이름을 입력한다. 
  • 마운트 포인트: 파일 시스템을 연결할 디렉터리를 입력한다.
  • 파일시스템 유형: 파일 시스템의 유형을 입력한다. 예를 들어, ext4, xfs, ntfs 등이 있다.
  • 옵션: 파일 시스템을 마운트할 때 사용할 옵션을 입력한다. 예를 들어, ro(읽기 전용), rw(읽기/쓰기), noatime(접근 시간을 기록하지 않음) 등이 있다.
    • rw: 읽기/쓰기 모드
    • auto: 부팅 시 자동으로 마운트
    • exec: 실행파일 실행 허용
    • suid: SetUID, SetGID 허용
    • nouser: 일반 사용자의 마운트 허용 안 함
  • 마운트 옵션
    • dump: 파일 시스템에 문제가 발생했을 때 백업을 할 것인지 여부를 결정하는 옵션이다. 0은 백업을 하지 않고, 1은 백업을 합니다.
    • pass: 파일 시스템을 검사하는 순서를 결정하는 옵션으로  0은 검사하지 않고, 1은 검사를 진행함.

 

umount로 파일 시스템 제거하기

 

파일시스템을 mount로 붙이고, 다시 떼기 위해서 umount 명령어를 사용한다.

 

명령어는 아래와 같이 사용한다. mount 명령어와 달리 복잡하지 않다..

 

umount [옵션] [장치명 또는 마운트 포인트]

 

ex:

umount /sangs

umount /dev1/sangs

 

umount 명령어 옵션
  • -a: /etc/mtab에 기록되어 있는 모든 파일 시스템을 언마운트한다.
    • umount -a 
  • -t: 지정된 파일 시스템 형식에 해당하는 장치들만 언마운트한다.
    • umount -t nfs /dev1/sangs
    • nfs 형식을 가진 /dev1/sangs만 제거한다.
  • -r: 언마운트가 실패할 경우에 읽기 전용으로 다시 연결한다.
    • umount -r /dev1/sangs
    • /dev1/sangs를 제거한다. 실패할 경우 읽기 전용으로 다시 연결한다.
  • -l: 지연된 언마운트를 한다.
    • umount -l /dev1/sangs
    • /dev1/sangs를 대상으로 지연된 언마운트를 한다. 지연된 언마운트란 장치가 사용 중일 때 강제로 언마운트 하지 않고 기다린다. 일정 시간이 지난 후 장치가 언마운트 될 때까지 계속 시도한다.
    • 이 시간은 /etc/default/umountfs 파일에 UMOUNT_TIMEOUT 변수로 설정 가능하다.
umount 주의사항

 

umount 명령어 사용 시 해당 파일 시스템을 사용하지 않고 있어야 한다.

 

~~ is busy라는 문구가 나오면서 마운트 해제가 안되는 경우가 이에 해당한다.

 

이 경우에는 fuser -m [마운트 포인트] 명령어로 PID를 확인하고, kill 명령어를 통해 죽이는 작업을 선행해야 한다.

 

아니면 fuser -ck [마운트 포인트] 명령어를 통해 바로 죽여버릴 수도 있다. << 이게 편하긴 하다

 

그 다음에 umount /sangs와 같이 umount를 하면 된다.

 

fuser 명령어 말고 lsof 명령어도 사용 가능

 


 

* fuser

fuser 명령어는 유닉스 시스템에서 특정 파일, 파일 시스템, 소켓을 사용하는 프로세스를 확인하는 명령어다.

 

fuser [옵션] [파일명]

 

옵션들

  • -u: 프로세스의 사용자 이름을 함께 출력한다.
  • -k: 지정한 파일을 사용하는 모든 프로세스를 종료한다.
  • -m: 파일 시스템을 사용하는 모든 프로세스를 출력한다.

예를 들어, 다음과 같이 /dev/sda1 파일 시스템을 사용하는 프로세스를 확인하는 명령어를 사용할 수 있다.

fuser -m /dev/sda1  명령어는 /dev/sda1 파일 시스템을 사용하는 모든 프로세스를 출력한다.

 


* lsof

lsof 명령어는 유닉스 및 리눅스 시스템에서 사용되는 명령어로, 열려있는 파일과 프로세스 간의 관계를 확인할 수 있다.

아래와 같이 사용한다.

 

lsof [옵션] [파일명]

 

옵션들

  • -a: 모든 파일을 출력한다.
  • -c: 지정한 명령어를 실행하는 프로세스의 정보를 출력한다.
  • -d: 지정한 장치 파일을 사용하는 프로세스의 정보를 출력한다.
  • -p: 지정한 프로세스의 정보를 출력한다.

예를 들어, 다음과 같이 /dev/sda1 파일 시스템을 사용하는 프로세스를 확인하는 명령어를 사용할 수 있다.

lsof -d /dev/sda1 이 명령어는 /dev/sda1 파일 시스템을 사용하는 모든 프로세스를 출력한다.

728x90
반응형

댓글