AndroidのUSBブートイメージをマウント

id:naka-3さんのITProの記事*1で紹介されている、Androidx86でUSBブートするイメージ*2をマウントして、中身をのぞいてみたりをいぢったりのTips。grubがブートセクタにいるので、そのままではループバックマウントできない。なので、losetupを使ってループバックマウントしてみる。

$ sudo losetup /dev/loop0 android-usb.img 
$ sudo losetup -a
/dev/loop0: [0811]:1421204 (android-usb.img)

fdiskで見てみる。

$ sudo fdisk -lu /dev/loop0

Disk /dev/loop0: 506 MB, 506986496 bytes
16 heads, 61 sectors/track, 1014 cylinders, total 990208 sectors
Units = セクタ数 of 1 * 512 = 512 bytes
Disk identifier: 0x8062678a

デバイス Boot      Start         End      Blocks   Id  System
/dev/loop0p1              61      989663      494801+  83  Linux

ext3パーティションは61セクタから。つまり31232バイトのオフセット。

$ sudo losetup -o 31232 /dev/loop1 android-usb.img 
$ sudo mount -t ext3 -o loop /dev/loop1 /mnt

アプリをインストールするなら、/mnt/data/app-privateにapkファイルをコピーする。ごにょごにょし終わったらアンマウント。最後のsyncはおまじない。

$ sudo umount /mnt
$ sudo losetup -d /dev/loop1
$ sudo losetup -d /dev/loop0
$ sync

ところで。id:naka-3さん、すばらしい記事をお書きいただきありがとうございました。