7

我正在尝试编写一个引导加载程序(你好世界排序)。我正在使用 Bochs 进行模拟(平台 Linux-Ubuntu)。但我无法为我的二进制文件制作可启动的 iso。虽然在教程中使用了 VFD(虚拟软盘),但它适用于 windows 平台。这是我的引导加载程序代码(仅用于测试)

;*********************************************
;    Boot1.asm
;        - A Simple Bootloader for testing if cd is booting or not
;
;    Operating Systems Development Tutorial
;*********************************************

[BITS 16]    ;tell the assembler that its a 16 bit code
[ORG 0x7C00]    ;Origin, tell the assembler that where the code will

Start:

    cli                    ; Clear all Interrupts
    hlt                    ; halt the system

times 510 - ($-$$) db 0                ; We have to be 512 bytes. Clear the rest of the bytes with 0

dw 0xAA55                    ; Boot Signature

我在 Ubuntu 上尝试了主 ISO。它将二进制文件转换为 ISO,但不转换为可引导的 ISO。Bochs 显示错误“cd is not eltorito”,我在谷歌上搜索并发现它是可启动 ISO 的标准。我必须添加哪些其他内容才能使其可启动。我最后已经添加了引导签名。谁能推荐一个可靠的应用程序来在 Ubuntu 上制作可启动的 ISO?由于这个原因,我的工作被卡住了......或者我很确定很多人必须参与 Linux 平台上的操作系统开发。你们是如何测试的?

我用 Unetbootin 和我的引导加载程序的 iso 制作了一个可引导的闪存驱动器。切换到Virtual-box并稍微扭曲以从pendrive启动,但仍然显示它无法启动。我认为有人说得对,你在操作系统开发中需要很大的耐心。


:phew 终于我的引导加载程序运行了...
我使用虚拟软盘映像在 Virtual box 上启动我的程序。以下是万一有人遇到困难的步骤。
1.创建具有引导加载程序的 boot.asm。
2.用nasm编译。nasm -f bin boot.asm -o boot.bin。
3.sudo mkfs.msdos -C /home/用户名/floppy.img 1440
4.sudo chown用户名./floppy.img。 链接文本
5.用dd复制。dd if=./boot.bin of=./floppy.img。
6.运行 VirtualBox 并选择 floppy.img 作为新虚拟机的启动设备。
PS:您也可以将 floppy.img 附加到设备“循环”并像真正的软盘一样安装它。

4

3 回答 3

1

在所有存储位置/检索方法中,CD-ROM/El-Torito 是奇怪的(不要让我开始使用 Mac CDROM 文件系统混合)

使用 Floppy、Harddisk/USB 或 PXE-TFTP,将目标代码写入第一个扇区就足够了,或者在 tftp 的情况下,只需下载并执行。有了这些再简单不过了。

于 2011-01-14T21:41:50.577 回答
0

一个非常简单的脚本将在 linux 中执行此操作,如下所示:-

rm -f disk_images/myos.iso
mkisofs -quiet -V 'MYOS' -input-charset iso8859-1 -o disk_images/myos.iso -b myos.flp disk_images/ || exit

软盘驱动器制作如下:-

nasm -f bin -o boot.bin boot.asm
dd if=boot.bin of=floppy.img count=1 bs=512 //for the bootloader

dd if=boot.bin of=floppy.img skip seek=1 count=1339 //assuming a 1.44Mb floppy

然后你有文件系统

mkdosfs (or whatever system you want ) -C floppy.img 1440

如果您需要有关 Windows 的帮助,请告诉我 :)

于 2011-03-28T16:53:12.110 回答
0

试试 WinISO,它非常适合我。

于 2015-08-11T13:50:00.863 回答