파일 시스템 마운트와 언마운트: 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
명령의 유용한 옵션들
파일 시스템 지정:
Linux가 장치의 파일 시스템을 인식하지 못하면,
-t
플래그를 사용해 봐. 예를 들어:sudo mount -t ext4 /dev/sdb1 /mnt/usb
이건 드문 파일 시스템을 사용할 때 유용해.
읽기 전용 마운트:
디바이스 데이터를 변경하지 않도록 보호하려면
-o ro
옵션을 사용해:sudo mount -o ro /dev/sdb1 /mnt/usb
문자 인코딩 지정 마운트:
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
에 추가하는 방법?
blkid
명령어를 사용하여 장치의 UUID를 찾아라:sudo blkid
예를 들어,
/dev/sdb1
장치의 UUID는1234-5678
일 수 있다./etc/fstab
파일을 편집 모드로 열어라:sudo nano /etc/fstab
새 줄을 추가하라:
UUID=1234-5678 /mnt/usb ext4 defaults 0 2
UUID
— 장치의 고유 식별자./mnt/usb
— 마운트 지점.ext4
— 장치의 파일 시스템.defaults
— 기본 마운트 매개변수.0
과2
— 부팅 시 장치 검사 매개변수 (조정 가능).
장치를 마운트하여 설정을 확인하라:
sudo mount -a
이제 시스템을 다시 부팅해도 장치가 자동으로 연결된다.
위험
⚠️ /etc/fstab
을 잘못 설정하면 시스템이 부팅되지 않을 수 있다. 항상 아래 명령어를 사용하여 설정을 확인하라:
sudo mount -a
오류가 없다면 모든 것이 제대로 작동하는 것이다.
5. 예제: USB 드라이브 마운트 및 언마운트
USB 드라이브를 연결했다고 가정하고, 시스템이 이를 /dev/sdb1
로 인식했다고 하자.
마운트 포인트를 생성해:
sudo mkdir -p /mnt/usb
드라이브를 마운트해:
sudo mount /dev/sdb1 /mnt/usb
내용물을 확인해:
ls /mnt/usb
작업을 마치면 장치를 언마운트해:
sudo umount /mnt/usb
이제 장치가 안전하게 분리되었으니, 꺼낼 수 있어.
6. 실습 과제
문제
- USB 드라이브나 가상 디스크를 연결하세요.
- 마운트 포인트
/mnt/test-disk
를 생성하세요. - 장치를 이 폴더에 마운트하고 내용을 확인하세요.
UUID
를 사용하여/etc/fstab
에서 마운트 설정을 구성하세요.- 디바이스를 분리하고 재부팅 후 설정이 작동하는지 확인하세요.
힌트
- 장치가 없다면, 이전 강의에서 설명한 포맷 명령 (
mkfs.ext4
)을 사용해 생성하세요. - 재부팅 전에
fstab
설정을 확인하세요.
이제 Linux에서 장치를 마운트하고 마운트 해제하는 방법, /etc/fstab
설정을 통한 자동화, 문제를 안전하게 진단하는 방법을 알게 되었어요. 마운트는 데이터를 편리하게 작업하기 위한 중요한 단계이며, 이 지식은 집에서의 프로젝트나 업무용 서버에서도 유용할 거예요.
GO TO FULL VERSION