마운트 하기위해서 당연하겠지만 관리자 권한이 있어야한다.
kpartx를 실행하여 없다면 우분투 기준으로 sudo apt install kpartx 하여 설치한다.
(sudo -i 명령으로 루트쉘을 얻는것이 편하다.)
아래 명령들은 루트 쉘을 얻은상태 기준으로 설명한다.
kpartx -v filename.img 명령을 실행하면 아래와같이 파티션 맵 정보가 표시된다.
root@ubuntu:/home/iruis# kpartx -v sdcard.img
loop0p1 : 0 65536 /dev/loop0 1
loop0p2 : 0 756470 /dev/loop0 65537
loop0p3 : 0 30468096 /dev/loop0 823296
loop deleted : /dev/loop0
root@ubuntu:/home/iruis#
이건 그냥 정보만 보는것이고 -a 옵션을 붙이면 /dev/mapper 폴더 아래 loop0p1와같은 이름으로 디바이스가 매핑된다. (-v 옵션은 자세한 정보를 표시하는 옵션.)
root@ubuntu:/home/iruis# kpartx -a -v sdcard.img
add map loop0p1 (252:0): 0 65536 linear 7:0 1
add map loop0p2 (252:1): 0 756470 linear 7:0 65537
add map loop0p3 (252:2): 0 30468096 linear 7:0 823296
root@ubuntu:/home/iruis#
이제 mount /dev/mapper/loop0p1 /mnt
와같은 명령으로 마운트하여 이미지 내용을 보거나 수정할 수 있다.
작업을 끝내면 마운트 명령으로 마운트한 파일 시스템을 전부 언마운트하고 kpartx -d sdcard.img와같이 -d 옵션을 붙여 attach한 파일 이름을 넣으면 매핑된 디바이스를 지울 수 있다. (마찬가지로 -v 옵션을 넣으면 자세한 정보가 표시된다.)
root@ubuntu:/home/iruis# kpartx -d -v sdcard.img
del devmap : loop0p3
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0
root@ubuntu:/home/iruis#
뭔가 다른 방법도 있던거같은데… 이 방법도 간편해서 넘어가야겠다(…).