Loopback Device는 가상 디스크 이미지를 사용해 실제 디스크처럼 동작합니다.
이를 위해 1GB 크기의 가상 디스크 이미지를 생성합니다. (virtual_ssd.img는 1GB 크기의 가상 디스크 이미지 파일)
$ dd if=/dev/zero of=virtual_ssd.img bs=1M count=1024
root@ubuntu-20:~# dd if=/dev/zero of=virtual_ssd.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 0.572803 s, 1.9 GB/s
$ sudo losetup /dev/loop14 virtual_ssd.img
root@ubuntu-20:~# losetup /dev/loop14 virtual_ssd.img
losetup: virtual_ssd.img: failed to set up loop device: Device or resource busy
$ losetup -a
root@ubuntu-20:~# losetup -a
/dev/loop1: [2053]:2133381 (/var/lib/snapd/snaps/chromium_3002.snap)
/dev/loop8: [2053]:2129558 (/var/lib/snapd/snaps/gtk-common-themes_1535.snap)
/dev/loop6: [2053]:2126332 (/var/lib/snapd/snaps/code_176.snap)
/dev/loop13: [2053]:2133387 (/var/lib/snapd/snaps/gnome-42-2204_176.snap)
/dev/loop4: [2053]:2129556 (/var/lib/snapd/snaps/core20_1828.snap)
/dev/loop11: [2053]:2129559 (/var/lib/snapd/snaps/snap-store_638.snap)
/dev/loop2: [2053]:2121495 (/var/lib/snapd/snaps/core20_2434.snap)
/dev/loop0: [2053]:2129555 (/var/lib/snapd/snaps/bare_5.snap)
/dev/loop9: [2053]:2129560 (/var/lib/snapd/snaps/snapd_18357.snap)
/dev/loop7: [2053]:2129557 (/var/lib/snapd/snaps/gnome-3-38-2004_119.snap)
/dev/loop5: [2053]:2126318 (/var/lib/snapd/snaps/gnome-3-38-2004_143.snap)
/dev/loop12: [2053]:2121375 (/var/lib/snapd/snaps/snapd_23258.snap)
/dev/loop3: [2053]:2126290 (/var/lib/snapd/snaps/core22_1722.snap)
/dev/loop10: [2053]:2133386 (/var/lib/snapd/snaps/cups_1067.snap)
root@ubuntu-20:~# losetup /dev/loop14 virtual_ssd.img
$ sudo mkfs.ext4 /dev/loop14
$ sudo mount /dev/loop14 /mnt/virtual_ssd
Loopback Device가 정상적으로 동작하는지 확인합니다.
$ echo "Hello, vSSD!" > /mnt/virtual_ssd/testfile
$ cat /mnt/virtual_ssd/testfile
Loopback Device는 실제로 커널 드라이버를 테스트하기 위해 임시로 사용한 것입니다. 마운트를 해제하고 Loopback Device를 정리한 뒤, vSSD Driver를 사용합니다.
$ sudo umount /mnt/virtual_ssd
$ sudo losetup -d /dev/loop14
이 작업으로 첫 번째 실습에서 만든 가상 디스크 이미지와 Loopback Device를 정리합니다.