반응형
목차
1. Loop Device란?
리눅스에서 loop device(루프 디바이스)는 일반 파일을 블록 디바이스처럼 취급할 수 있도록 해주는 가상 장치입니다.
쉽게 말해, "하드디스크나 USB처럼 동작하는 파일"을 만들 수 있는 기능입니다.
이 기능은 커널 모듈 loop에 의해 제공되며, 파일 시스템을 직접 디스크 이미지 위에 만들거나 마운트할 때 자주 사용됩니다.
2. 왜 필요할까?
Loop device는 다음과 같은 상황에서 매우 유용합니다.
- ISO, IMG 파일 마운트
예: ubuntu.iso 안의 내용을 직접 확인할 때 - 디스크 이미지 테스트
예: 새로운 파일시스템 포맷 테스트 - 암호화된 컨테이너
예: LUKS 암호화 볼륨 - 백업 및 복원 테스트
예: 블록 단위 스냅샷 복원
3. 기본 개념 구조
[일반 파일] → [Loop Device (/dev/loopX)] → [커널 블록 레이어] → [파일시스템 드라이버]
- /dev/loop0, /dev/loop1, … 이런 식으로 번호가 붙습니다.
- 하나의 loop device는 하나의 파일과 연결됩니다.
4. 기본 사용 예제
4.1 빈 파일 생성
# 100MB 크기의 빈 파일 생성
dd if=/dev/zero of=disk.img bs=1M count=100
4.2 loop device에 연결
sudo losetup /dev/loop0 disk.img
이제 /dev/loop0가 disk.img를 실제 디스크처럼 인식합니다.
4.3 파일 시스템 생성
sudo mkfs.ext4 /dev/loop0
4.4 마운트
mkdir /mnt/loopdisk
sudo mount /dev/loop0 /mnt/loopdisk
4.5 사용 확인
df -h /mnt/loopdisk
4.6 해제
sudo umount /mnt/loopdisk
sudo losetup -d /dev/loop0
5. 자주 쓰는 명령어 정리
명령어 | 설명 |
losetup | loop device 연결/해제/조회 |
losetup -f | 사용 가능한 첫 번째 loop device 표시 |
losetup -a | 현재 연결된 loop device 목록 |
losetup /dev/loopX file.img | 파일을 loop device에 연결 |
losetup -d /dev/loopX | loop device 해제 |
6. ISO 파일 마운트 예시
sudo mount -o loop ubuntu-22.04.iso /mnt/iso
여기서 -o loop 옵션은 자동으로 loop device를 할당합니다.
7. 고급 사용 – loop device + LUKS 암호화
# 1. 빈 파일 생성
dd if=/dev/zero of=secret.img bs=1M count=50
# 2. loop device 연결
sudo losetup /dev/loop1 secret.img
# 3. LUKS 암호화 설정
sudo cryptsetup luksFormat /dev/loop1
sudo cryptsetup open /dev/loop1 secret_vol
# 4. 파일 시스템 생성 후 마운트
sudo mkfs.ext4 /dev/mapper/secret_vol
sudo mount /dev/mapper/secret_vol /mnt/secure
# 5. 해제
sudo umount /mnt/secure
sudo cryptsetup close secret_vol
sudo losetup -d /dev/loop1
8. 주의사항
- loop device는 RAM 디스크가 아닙니다.
파일이 저장된 실제 스토리지(SSD/HDD)에 I/O가 발생합니다. - 대용량 loop device를 생성할 경우 디스크 용량을 초과하지 않도록 주의하세요.
- 다중 사용자 환경에서는 loop device 사용 시 권한 관리가 중요합니다.
💡 Tip:
losetup 명령어 대신 mount -o loop만으로도 대부분의 간단한 작업이 가능합니다.
다만, 세밀한 제어가 필요하다면 losetup을 직접 사용하는 것이 좋습니다.
반응형
'LINUX' 카테고리의 다른 글
우분투 desktop vs server 차이 (0) | 2022.03.25 |
---|---|
failed to fech 우분투 (0) | 2022.03.24 |
Ubuntu 네임서버, 게이트웨이 설정하기 (0) | 2022.03.04 |
Ubuntu에 java 설치 (0) | 2022.01.28 |
Ubuntu gateway 설정(vm 인터넷 안됨) (0) | 2022.01.27 |
댓글