리눅스를 공부하다 보면 실제 USB 없이도 마운트 실습을 해야 할 때가 있습니다. 저는 오늘 실습을 통해 loop 디바이스를 활용해 가상 디스크를 만들고, 이를 /etc/fstab에 등록하여 자동 마운트까지 성공한 과정을 정리해보았습니다. 특히 처음에는 이해가 어려웠던 개념들을 중심으로 설명드리겠습니다.
마운트(Mount)란?
처음 리눅스를 접했을 때, "마운트(mount)"라는 개념이 매우 생소했습니다. 윈도우에서는 USB를 꽂으면 자동으로 드라이브(E:, F:)가 생기지만, 리눅스에서는 그렇게 자동으로 인식되지 않습니다.
리눅스는 모든 저장장치를 디렉토리처럼 취급합니다. 어떤 장치를 사용하려면 특정 디렉토리에 "연결"해주는 과정이 필요한데, 이게 바로 "마운트"입니다.
예를 들어, /dev/sdb1이라는 USB 장치를 /mnt/usb 디렉토리에 마운트하면, 해당 디렉토리를 통해 USB 안의 파일에 접근할 수 있게 됩니다. 반대로 연결을 끊는 것을 umount라고 합니다.
이렇게 저장 장치를 특정 폴더(마운트 포인트)에 연결하는 개념이 바로 리눅스의 마운트입니다.
loop 디바이스란?
처음에 "loop 디바이스로 마운트한다"는 말이 잘 이해되지 않았습니다. 조사해보니, 리눅스에서는 디스크처럼 사용할 수 있는 가상 장치를 만들 수 있는데, 이때 사용하는 장치가 바로 loop 장치입니다.
예를 들어, fakeusb.img 같은 이미지 파일을 만들고 아래처럼 마운트할 수 있습니다:
sudo mount -o loop fakeusb.img /mnt/fakeusb
여기서 -o loop 옵션은 “이 파일을 디스크처럼 마운트할게요”라는 의미입니다. 실제 물리 장치가 없더라도 리눅스는 이 파일을 /dev/loop0, /dev/loop1 같은 디바이스처럼 인식하게 됩니다.
/etc/fstab 파일이란?
fstab은 부팅 시 자동으로 마운트할 디스크나 파일 시스템 정보를 담고 있는 설정 파일입니다.
그렇다면 왜 fstab에 등록한 뒤, umount를 하고 mount -a를 다시 실행해야 할까요?
- umount는 기존에 수동으로 마운트했던 것을 끊어주는 역할
- mount -a는 fstab에 적힌 항목들을 다시 읽고, 설정대로 자동 마운트하도록 하는 명령입니다
이를 통해 fstab 설정이 정확히 작동하는지 테스트할 수 있습니다.
UUID 대신 파일 경로로 fstab에 등록하는 방법
원래는 blkid 명령어를 통해 디바이스의 UUID를 얻고, 이를 fstab에 등록하는 것이 일반적입니다. 하지만 loop 디바이스의 경우 UUID가 명확하게 보이지 않거나, blkid에 나타나지 않을 수 있습니다.
이럴 때는 아래처럼 이미지 파일 경로를 직접 지정하고 loop 옵션을 추가해 fstab에 등록할 수 있습니다:
/home/사용자이름/fakeusb.img /mnt/fakeusb vfat loop,defaults 0 0
이 설정은 루프백 디바이스임을 명시(loop,)하고, 일반 USB처럼 vfat 형식으로 마운트하겠다는 의미입니다. 이후 mount -a를 실행하면 정상적으로 마운트가 됩니다.
systemctl daemon-reload가 필요한 이유는?
fstab 설정을 바꾼 후 mount -a를 실행했을 때 아래와 같은 메시지를 보았습니다:
(hint) your fstab has been modified, but systemd still uses the old version; use 'systemctl daemon-reload'
처음에는 경고처럼 보여 당황했지만, 이 메시지는 단순한 알림입니다.
시스템에 따라 fstab 변경 사항이 systemd에 바로 반영되지 않을 수 있기 때문에, 설정을 새로 고치고 싶다면 아래 명령어를 실행하면 됩니다:
sudo systemctl daemon-reload
하지만 실제로는 대부분의 경우 mount -a만으로도 fstab 설정이 적용되며, 꼭 실행해야 하는 필수 명령은 아닙니다.
마무리하며
오늘 실습을 통해 단순히 mount 명령만 배우는 것이 아니라, loop 디바이스, fstab의 구조, systemd의 동작 원리까지 연결해서 이해할 수 있었습니다. 저처럼 처음 접하는 분들께도 이 포스트가 도움이 되기를 바랍니다. 실습 중 이해가 안 갔던 부분은 정리하면서 명확히 이해되었습니다.
'Linux' 카테고리의 다른 글
Systemd와 journalctl 간단 정리 (0) | 2025.04.15 |
---|---|
Linux에서 Claude AI Desktop App 사용하는 법 (비공식 루트) (0) | 2025.04.04 |
Linux 파일 권한과 chmod 명령정리 (0) | 2025.02.24 |
AWS EC2에서 Linux Red Hat 설치 방법 / 리포지토리 설정 방법 / 등록 오류 해결 (1) | 2025.02.18 |