I've recently resumed a small OS-from-scratch-in-Assembly project I started several months ago in Lion. Part of the project involves compiling a binary file with NASM (the one that is pre-included), then creating a disk image based on that binary. The important point comes from the fact that the binary is written to the first sector of the image to be bootable from other hardware (the binary is compiled with a FAT16 BPB), which I test with VirtualBox.
Unfortunately, whenever I compile and try to mount the image in Mountain Lion, I get a dialog box that says, "The following disk couldn't be opened: boot.img — no mountable filesystems". I figured this was some oddity in my code, so I made a blank FAT16 disk image with Disk Utility, then compared my disk with the one created in a hex editor, then modified my code accordingly. Unfortunately, while it did manage to mount afterwards, my code no longer worked after making said changes.
So, knowing that I managed to successfully compile the code before (and hadn't touched it since recently), I popped into Time Machine and pulled my old working directory out. I tested the image in VirtualBox, and it works. However, I get the same mounting error. I found this very peculiar, so I copied the disk image to a physical drive, plugged it in to an old Ubuntu box, and it did, in fact, mount. I even sent the disk image to a friend (who is still running the latest version of Lion), and he was able to mount the disk image.
TL;DR: Why does a FAT16 disk image I have properly mount in Lion, but not in Mountain Lion? I tried mounting by trying open boot.img
, hdid boot.img
, mount boot.img some_folder
, and mount -t msdos boot.img some_folder
, none of which worked. I've attached the disk image in question via Droplr.