如何制作可引导的iso(不是cd或flash驱动器)来测试自己的引导加载程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何制作可引导的iso(不是cd或flash驱动器)来测试自己的引导加载程序?相关的知识,希望对你有一定的参考价值。

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

;*********************************************
;    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 el eltorito”,我用Google搜索并发现它是可引导ISO的标准。我必须添加其他东西以使其可引导。我已经在最后添加了启动签名。任何人都可以建议一个可靠的应用程序来在Ubuntu上制作可启动的ISO吗?我的工作因此而陷入困境......或者我很确定很多人必须参与Linux平台上的操作系统开发。你们怎么测试?

我用Unetbootin和我的bootloader程序iso制作了一个可启动的闪存驱动器。切换到虚拟盒并扭曲一点从pendrive启动,但仍然显示它是不可启动的。我想有人说得对,你需要在操作系统开发方面有很大的耐心。


:phew最后我的bootloader程序运行了... 我使用虚拟软盘映像在虚拟机上启动我的程序。以下是有人在努力解决问题的步骤。 1.创建具有引导加载程序的boot.asm。 2.用nasm编译。 nasm -f bin boot.asm -o boot.bin。 3.sudo mkfs.msdos -C /home/username/floppy.img 1440 4.sudo chown username ./floppy.img。 link text 5.与dd复制。 dd if =。/ boot.bin =。/ floppy.img。 6.运行VirtualBox并选择floppy.img作为新虚拟机中的启动设备。 PS:您也可以将floppy.img附加到设备“loop”并将其安装为真正的软盘。

答案

一个非常简单的脚本将在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帮助,请告诉我:)

另一答案

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

使用Floppy,Harddisk / USB或PXE-TFTP,只需将对象代码写入第一个扇区,或者在tftp的情况下,只需下载并执行即可。这些都不容易。

另一答案

试试WinISO,它对我来说非常适合。

以上是关于如何制作可引导的iso(不是cd或flash驱动器)来测试自己的引导加载程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式创建可引导 CD?

怎么将文件打包成ISO格式的压缩包

利用UltrISO将gho文件制作可引导iso

IBM SYSTEM X3650 服务器 MT 7979 引导盘找不到了,怎么安装系统

balenaEtcher for mac(启动盘制作工具) v1.5.70

UltraISO制作U盘启动盘