CodeGym /행동 /Docker SELF /파일 시스템 마운트와 언마운트: mount, umount

파일 시스템 마운트와 언마운트: mount, umount

Docker SELF
레벨 6 , 레슨 3
사용 가능

파일 시스템 마운트와 언마운트: mount, umount

1. 마운트란 무엇인가요?

Linux 작업에 대한 또 다른 흥미로운 강의에 오신 것을 환영합니다! 오늘은 파일 시스템을 마운트하고 언마운트하는 것에 대해 이야기할 겁니다. 이 과정은 USB 드라이브, 추가 하드 디스크 및 심지어 네트워크 스토리지와 작업하는 문을 열어줍니다. 시스템 시작과 동시에 데이터가 제자리에 있도록 자동 마운트를 설정하는 방법을 배울 거예요. 가장 중요한 것은, 이것을 실습으로 직접 해볼 거라는 점이죠!

마운트는 장치의 파일 시스템(하드 디스크, USB 드라이브, ISO 이미지 등)을 Linux 파일 시스템 트리에 연결하는 과정이에요. Windows에서는 장치를 "D:\" 또는 "E:\"와 같이 볼 수 있지만, Linux에서는 모든 장치가 특정 폴더(마운트 포인트라고 불리는)에 '삽입'됩니다.

비유: 기차와 역

기차(장치)와 기차역(마운트 포인트)을 상상해보세요. 사람들이 역에서 내려서 인프라(파일)를 사용할 수 있으려면 기차가 플랫폼에 도착하고 연결되어야 해요. Linux에서 장치를 마운트 포인트에 연결하는 과정도 이와 비슷하게 작동해요.


2. mount 명령어

우리는 먼저 마운트를 실행하는 명령인 mount부터 시작할 거야. 외장 디스크나 네트워크 스토리지 작업을 한다면, 이 명령어는 자주 사용하게 될 거야.

기본 문법

mount [옵션] <디바이스> <마운트 포인트>
  • <디바이스> — 시스템에서 장치가 연결된 위치야. 예를 들어 /dev/sdb1 같은 거야. lsblk 명령으로 이걸 찾을 수 있어.
  • <마운트 포인트> — 장치 데이터를 넣을 폴더야. 예를 들어 /mnt/disk 같은 거야.

USB 드라이브를 연결하는 예시:

sudo mount /dev/sdb1 /mnt/usb

명령을 실행한 후에 /dev/sdb1 장치의 파일들이 /mnt/usb 폴더 안에서 접근 가능해질 거야.

mount 명령의 유용한 옵션들

  1. 파일 시스템 지정:

    Linux가 장치의 파일 시스템을 인식하지 못하면, -t 플래그를 사용해 봐. 예를 들어:

    sudo mount -t ext4 /dev/sdb1 /mnt/usb
    

    이건 드문 파일 시스템을 사용할 때 유용해.

  2. 읽기 전용 마운트:

    디바이스 데이터를 변경하지 않도록 보호하려면 -o ro 옵션을 사용해:

    sudo mount -o ro /dev/sdb1 /mnt/usb
    
  3. 문자 인코딩 지정 마운트:

    FAT32나 NTFS 디스크라면 가끔 문자 인코딩을 지정해야 할 수도 있어:

    sudo mount -o iocharset=utf8 /dev/sdb1 /mnt/usb
    

3. umount 명령어

이제 장치를 연결했으니, 어떻게 해제할까? Linux가 디스크와의 모든 연결을 "닫고" 쓰기를 완료하도록 하는 것이 중요해.

기본 문법

umount <장치 또는 마운트 위치>

이미 연결된 USB 드라이브의 예:

sudo umount /mnt/usb

또는 장치 자체를 지정할 수 있어:

sudo umount /dev/sdb1

umount가 작동하지 않을 때는 어떻게 해야 할까?

가끔 umount 명령어가 오류를 반환할 수도 있어: "Device is busy" (장치 사용 중). 이건 누군가가 (파일 시스템 용어로) "레일 위에 앉아 있다"는 뜻이야. 아마도 너나 다른 프로그램이 현재 해당 장치에서 파일을 열었을 수도 있어.

이런 경우 fuser 명령어가 유용해. 이 명령어는 장치를 차단하는 프로세스를 보여줄 거야:

fuser -v /mnt/usb

원인을 찾았다면, 해당 프로세스를 종료할 수 있어:

kill <프로세스 ID>

그 후 다시 umount 명령어를 실행해봐.

중요!

Windows에서 USB를 뽑기 전에 "제거(Eject)" 버튼을 눌렀던 거 기억해? 이게 바로 unmount 명령어를 실행하는 것과 같아.


4. /etc/fstab을 통한 자동 마운트

수동 마운트가 편리하긴 하지만, 매번 시스템 부팅 시 장치를 연결해야 하면 어떻게 할까? 이를 위해 /etc/fstab 파일이 있다.

/etc/fstab이란?

이 파일은 Linux에서 자동으로 연결해야 할 장치 목록을 포함하는 설정 파일이다. fstab를 사용하여 파일 시스템 유형, 마운트 지점 및 접근 권한 같은 매개변수를 설정할 수 있다.

장치를 /etc/fstab에 추가하는 방법?

  1. blkid 명령어를 사용하여 장치의 UUID를 찾아라:

    sudo blkid
    

    예를 들어, /dev/sdb1 장치의 UUID는 1234-5678일 수 있다.

  2. /etc/fstab 파일을 편집 모드로 열어라:

    sudo nano /etc/fstab
    
  3. 새 줄을 추가하라:

    UUID=1234-5678 /mnt/usb ext4 defaults 0 2
    
    • UUID — 장치의 고유 식별자.
    • /mnt/usb — 마운트 지점.
    • ext4 — 장치의 파일 시스템.
    • defaults — 기본 마운트 매개변수.
    • 02 — 부팅 시 장치 검사 매개변수 (조정 가능).
  4. 장치를 마운트하여 설정을 확인하라:

    sudo mount -a
    

이제 시스템을 다시 부팅해도 장치가 자동으로 연결된다.

위험

⚠️ /etc/fstab을 잘못 설정하면 시스템이 부팅되지 않을 수 있다. 항상 아래 명령어를 사용하여 설정을 확인하라:

sudo mount -a

오류가 없다면 모든 것이 제대로 작동하는 것이다.


5. 예제: USB 드라이브 마운트 및 언마운트

USB 드라이브를 연결했다고 가정하고, 시스템이 이를 /dev/sdb1로 인식했다고 하자.

  1. 마운트 포인트를 생성해:

    sudo mkdir -p /mnt/usb
    
  2. 드라이브를 마운트해:

    sudo mount /dev/sdb1 /mnt/usb
    
  3. 내용물을 확인해:

    ls /mnt/usb
    
  4. 작업을 마치면 장치를 언마운트해:

    sudo umount /mnt/usb
    

이제 장치가 안전하게 분리되었으니, 꺼낼 수 있어.


6. 실습 과제

문제

  1. USB 드라이브나 가상 디스크를 연결하세요.
  2. 마운트 포인트 /mnt/test-disk를 생성하세요.
  3. 장치를 이 폴더에 마운트하고 내용을 확인하세요.
  4. UUID를 사용하여 /etc/fstab에서 마운트 설정을 구성하세요.
  5. 디바이스를 분리하고 재부팅 후 설정이 작동하는지 확인하세요.

힌트

  • 장치가 없다면, 이전 강의에서 설명한 포맷 명령 (mkfs.ext4)을 사용해 생성하세요.
  • 재부팅 전에 fstab 설정을 확인하세요.

이제 Linux에서 장치를 마운트하고 마운트 해제하는 방법, /etc/fstab 설정을 통한 자동화, 문제를 안전하게 진단하는 방법을 알게 되었어요. 마운트는 데이터를 편리하게 작업하기 위한 중요한 단계이며, 이 지식은 집에서의 프로젝트나 업무용 서버에서도 유용할 거예요.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION