我最近恢复了几个月前在Lion开始的一个小型的OS-to-scratch-in-Assembly项目。该项目的一部分涉及使用NASM(预先包含的)编译二进制文件,然后基于该二进制文件创建磁盘映像。重要的一点是,二进制文件被写入图像的第一个扇区,可以从其他硬件启动(二进制文件是用 FAT16 BPB),我用VirtualBox测试。
不幸的是,每当我编译并尝试在Mountain Lion中安装映像时,我都会看到一个对话框,“ 无法打开以下磁盘:boot.img - 无可安装的文件系统 “我认为这在我的代码中有点奇怪,所以我用磁盘工具制作了一个空白的FAT16磁盘映像,然后将我的磁盘与在十六进制编辑器中创建的磁盘进行比较,然后相应地修改了我的代码。不幸的是,虽然它 没有 之后设法安装,我的代码在进行所述更改后不再有效。
因此,知道我之前成功编译了代码(并且最近没有触及它),我弹出了Time Machine并将我的旧工作目录拉出来。我在VirtualBox中测试了图像,它可以工作。然而, 我得到了相同的安装错误 。我发现这非常奇怪,所以我将磁盘映像复制到一个物理驱动器,将其插入一个旧的Ubuntu盒子,事实上它确实安装了。我甚至将磁盘映像发送给朋友(他仍在运行最新版本的Lion),以及 他能够装载磁盘映像 。
TL; DR :为什么FAT16磁盘映像我已正确安装在Lion中,而不是Mountain Lion?我试着尝试安装 open boot.img
, hdid boot.img
, mount boot.img some_folder
,和 mount -t msdos boot.img some_folder
,没有一个奏效。我已经附上了 有问题的磁盘映像通过Droplr 。