ディスクイメージを簡単にマウント


目的

ディスクイメージのファイルがある。このファイルをマウントして中身を確認・変更したい。

loopデバイスを使ってmountできることは知っているけど、offsetを調べるとか面倒くさい。

方法

kpartxコマンドを使用すると、面倒なoffsetの値をfdiskコマンドなどで調べる必要がなくなる。

kpartxのインストール

kpartxは、Ubuntuではパッケージになっているのでaptコマンドを使ってインストールします。

$ sudo apt install kpartd

ディスクイメージをマウント

まずディスクイメージの各パーティションをkpartxコマンドを使ってloopデバイスに割り当てます。ここでは読み込み専用にしたいので-rオプションを加えています。

$ sudo kpartx -avr disk.img 
add map loop0p1 (252:6): 0 8396800 linear 7:0 2048
add map loop0p2 (252:7): 0 2 linear 7:0 8400894
add map loop0p5 (252:8): 0 8382464 linear 7:0 8400896

次に割り当てたloopデバイスを通して、目的のパーティションをマウントします。

$ sudo mount /dev/mapper/loop0p1 /mnt
mount: /dev/mapper/loop0p1 is write-protected, mounting read-only

$ ls /mnt/
bin   home	      lib64	  opt	sbin  tmp      vmlinuz.old
boot  initrd.img      lost+found  proc	snap  usr
dev   initrd.img.old  media	  root	srv   var
etc   lib	      mnt	  run	sys   vmlinuz

アンマウント

使い終わったらアンマウントしておきます。

$ sudo umount /mnt

$ sudo kpartx -d disk.img 
loop deleted : /dev/loop0

意外と忘れやすいのが、loopデバイスの後片付けです。アンマウントしたら、忘れずにkpartx -dしておきます。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です