gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:55:14 25 4
gpt4 key购买 nike

我正在尝试编写一个引导加载程序( Hello World 排序)。我正在使用 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 上尝试了 master 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/username/floppy.img 1440
4.sudo chown 用户名./floppy.img。 link text
5.用dd复制。 dd if=./boot.bin of=./floppy.img。
6.运行VirtualBox并在新虚拟机中选择floppy.img作为启动设备。
PS:您也可以将 floppy.img 附加到设备“loop”并将其作为真正的软盘安装。

最佳答案

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

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

关于assembly - 如何制作可引导的 iso(不是 cd 或闪存驱动器)来测试您自己的引导加载程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4690300/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com