Loopback 디바이스는 파일을 블록(Block) 디바이스처럼 사용하도록 설정하는 가상 블록 장치다. 파일 시스템 테스트, 디스크 이미지 생성 및 마운트, 임시 스토리지 설정 등에 유용하게 쓰인다. 이 글에서는 Loopback 장치 사용법을 알아본다.
Loopback 디바이스란?
Loopback 디바이스는 파일을 블록 디바이스처럼 다룰 수 있게 해주는 가상 장치다. 이 디바이스를 사용하면 파일 시스템을 특정 파일에 작성하거나 읽을 수 있고, 실제 디스크 장치 없이도 디스크 이미지를 테스트할 수 있다.
주요 특징
- 가상 블록 장치: 물리적 디스크 장치 없이 파일을 블록 디바이스로 사용
- 파일 시스템 테스트: 디스크 이미지에 파일 시스템을 생성하고 테스트하는 데 유용
- 디스크 이미지 다루기: ISO 파일이나 디스크 이미지 파일을 마운트하거나 수정 가능
- 손쉬운 해제: 필요 없어지면 쉽게 해제해 리소스를 반환 가능
Loopback 디바이스 확인 및 설정
리눅스 시스템에서 Loopback 디바이스를 관리하려면 losetup 명령을 사용한다. Loopback 디바이스는 /dev/loopX 형식으로 표시된다.
현재 Loopback 디바이스 확인
시스템에 활성화된 Loopback 디바이스를 확인하려면 다음 명령을 사용한다.
losetup -a
$ losetup -a
/dev/loop1: []: (/var/lib/snapd/snaps/core22_1663.snap)
/dev/loop8: []: (/var/lib/snapd/snaps/snap-store_1124.snap)
/dev/loop6: []: (/var/lib/snapd/snaps/firmware-updater_147.snap)
/dev/loop13: []: (/var/lib/snapd/snaps/snapd-desktop-integration_253.snap)
...
활성화된 Loopback 디바이스가 없다면 출력이 없다.
Loopback 디바이스 생성
Loopback 디바이스로 사용할 파일을 먼저 생성한다.
dd if=/dev/zero of=loopback.img bs=1M count=50
50MB 크기의 loopback.img 파일이 생성된다. 이 파일을 Loopback 디바이스에 연결한다.
sudo losetup /dev/loop0 loopback.img
loopback.img 파일이 /dev/loop0로 설정된다. 아래 명령으로 연결이 잘 됐는지 확인한다.
losetup -a
Loopback 디바이스에 파일 시스템 생성
mkfs 명령으로 loopback 디바이스에 파일 시스템을 생성한다.
sudo mkfs.ext4 /dev/loop0
Loopback 디바이스를 디렉터리에 마운트하면 일반 파일시스템처럼 사용할 수 있다.
sudo mkdir /mnt/loopback
sudo mount /dev/loop0 /mnt/loopback
마운트된 디렉터리를 확인한다.
df -h | grep loop
마운트된 디렉터리에서 파일을 생성하거나 읽을 수 있다.
echo "Hello Loopback" | sudo tee /mnt/loopback/hello.txt
cat /mnt/loopback/hello.txt
Loopback 디바이스 해제
Loopback 디바이스를 사용한 후에는 마운트 해제 → losetup 해제 순서로 연결을 정리한다.
sudo umount /mnt/loopback
sudo losetup -d /dev/loop0
losetup -a
Loopback 디바이스 사용 예
ISO 파일 마운트
Loopback 디바이스는 ISO 이미지를 마운트해 내용을 살펴보는 데도 유용하다.
sudo losetup /dev/loop0 example.iso
sudo mount /dev/loop0 /mnt
ls /mnt
sudo umount /mnt
sudo losetup -d /dev/loop0
디스크 이미지 생성 및 테스트
Loopback 디바이스로 디스크 이미지를 만들어 파티션/파일시스템 실험을 해볼 수도 있다.
dd if=/dev/zero of=disk.img bs=1M count=100
sudo losetup /dev/loop0 disk.img
sudo fdisk /dev/loop0
sudo mkfs.ext4 /dev/loop0
Loopback 디바이스 관리
자동으로 디바이스 할당
sudo losetup -f --show loopback.img
특정 파일이 연결된 디바이스 찾기
losetup -j loopback.img
Loopback 디바이스 상태 확인
cat /proc/partitions | grep loop