util-linux's mount -r uses the equivalent of losetup -r (opening the image with O_RDONLY). This is convenient when one wants to later remount the (read-write) filesystem hosting the image read-only. Busybox doesn't do that, so the remount attempt returns a "busy" error. E.g.: mkdir z mnt mount -t tmpfs tmpfs z truncate -s 10M z/aaa mkfs.ext2 z/aaa mount -r -o loop -t ext2 z/aaa mnt mount -o remount,ro z A workaround in Busybox is temporarily remounting the image-hosting filesystem read-only before the loop mount (blockdev --setro /dev/loopX after mounting does not produce the desired effect). Incidentally, losetup could support -r option in Busybox, too.
Fixed in git: commit 9ee426649006c4a0db7b4784f2ebb96865d4c705 Author: Denys Vlasenko <vda.linux@googlemail.com> Date: Thu Jun 21 12:08:56 2012 +0200 mount: set up RO loop device if mount -o ro. Closes 4784