mount(마운트)란 하드디스크 파티션, CD/DVD, USB 메모리 등 물리적인 장치를 특정 위치에 연결시키는 과정이다.
위 구조와 같이 Linux 파일 시스템에서는 모든 파일들이 '/' 를 기준으로 Big Tree 계층을 이룹니다. mount 명령어를 통해 각각의 디바이스를 Big File Tree 에 연결시키는 것입니다.
윈도우 운영체제에서는 PnP(Plug and Play) 기능에 의해 자동으로 주변 장치를 인식하기 때문에 직접 마운트 작업을 하지 않아도 됩니다. 리눅스 환경에서는 각각의 파티션들을 마운트 해주어야 합니다.
리눅스에서는 모든 것들을 파일로 관리하게 되어있습니다.
/dev
디렉토리에 장치드라이버와 터미널, 프린터 등 각정 주변장치를 나타내는 파일이 담겨 있습니다. USB, CD/DVD 와 같은 외부 장치 또한 포트에 꽂으면 리눅스 시스템은/dev
디렉토리에 이 블럭디바이스를 추가합니다.
리눅스 시스템에는 두개의 주요 디바이스 타입이 있습니다.
/dev
디텍토리에서 파일유형이 c로 시작하는 캐릭터 디바이스와 b로 시작하는 블록 디바이스를 확인할 수 있습니다.$ cd /dev
$ ls -al
리눅스에서 IDE 하드드라이브는 hd로 시작하며 SCSI 하드드라이브는 sd로 시작합니다. 드라이버 순서에 따라 a,b,c 등이 따라 붙습니다.
CD/DVD 장치는 보통 /dev/cdrom
, USB 장치는 /dev/sdb
, 터미널은 /dev/tty
같은 이름이 자동으로 붙여집니다.
이런식으로 디바이스가 디렉토리에 등록된 것만으로는 아직 파일을 저장하거나 불러올 수 없습니다. filesystem이 마운트 되어야하기 때문입니다.
$ sudo fdisk -l
mount를 수행시키기 전, 내가 마운트 시키려는 블록 디바이스가 어떤 이름을 가졌는지 확인하기 위한 명령입니다. 출력되는 리스트들의 Size 와 filesystem 을 통해 어떤 디바이스가 현재 마운트 시키려는 디바이스인지 알아냅니다.
아무런 옵션 없이 sudo mount
만을 입력한다면 어느 장치가 어디에 마운트 되어있는지가 출력됩니다.
우분투에서는 lsblk
명령어를 통해서도 RAM 디스크를 제외한 모든 파일 시스템의 MountPoint 정보를 조회할 수 있습니다.
파일시스템을 마운트 시키기 위해서는 mountpoint를 생성해야합니다. 기본적으로 파일시스템은 어느 위치에나 마운트가 가능하지만, 시스템 관리의 편의를 위해 관례를 따릅니다.
❗️사용자 및 시스템과 관련된 디렉토리를 마운트 포인트로 지정하면 안됩니다.
❗️한 개의 파티션은 하나의 마운트 포인트만을 사용합니다.
오래된 시스템에서 외부 디바이스는 /mnt
하위에 마운트 되었습니다. CD/DVD, floppy disk의 경우 각각 /mnt/cdrom
, /mnt/floppy
가 되었습니다.
현재 거의 모든 리눅스 버전에서 removable device 들은 /media/USER/LABEL
로 자동 마운트 됩니다. USER 는 유저의 이름, LABEL 은 디바이스 라벨입니다.
외장하드, USB, 메모리카드 리더기 등 user-removable media의 기본 마운트 포인트가 /media
라고 생각하면 됩니다.
예를들어 USB 파티션을 마운트하려고 한다면 아래와같이 마운트 포인트를 생성시키면 됩니다.
$ sudo mkdir /media/usb-drive
블록 디바이스 이름을 찾았고, 마운트 포인트도 생성했다면 마운트를 위한 준비가 끝난 것입니다.
디바이스 파일명은 /dev/sdc1
이고
마운트 포인트는 /media/usb-drive
로 생성했다고 가정하였을 때 이와같이 mount 명령을 수행시킬 수 있습니다:
$ sudo mount /dev/sdc1 /media/usb-drive