2013-11-02 34 views
3

如何创建简单的引导程序,加载内核到ISO?它已经5天了,我在谷歌搜索,做了许多次尝试和错误,但没有得到任何.....我已经尝试了很多教程,如mikeos,osdev,超新星,波斯菊,但仍然得不到解决方案..... 我的电脑没有floopy磁盘,所以我无法使用floopy磁盘制作bo​​otloader ... 我在mikeos教程中看到第一个扇区512字节用于bootloader,第二个用于内核可以使用imdisk制作,但使用floopy磁盘也可以自制引导程序&内核加载另一个文件到ISO ...他怎么能做到这一点(使ISO不使用floopy磁盘)?我想使用程序集来制作引导程序和内核...这不是第一次使用程序集并且经历了一些其他语言,比如C++,vb,php,phyton和其他语言...... 如何使bootloader的第一个扇区处于seacrhing /加载内核编译成iso?还添加了一些文件和文件夹到ISO?谢谢..使bootloader和内核进入iso?

回答

1

如果您打算编写一个操作系统并使用模拟器而不是真实机器,我建议您使用标准引导加载程序(不是因为您的引导加载程序可能会破坏计算机 - 它可能不会,但因为它是更简单的方法来启动和调试,你几乎肯定会对每次更新刻录CD感到厌倦

另外,请注意ISO使用比软盘/硬盘更复杂的启动协议,最好的方法是使用GRUB或者ISOLINUX如果你想使用CD并且使用软盘镜像(如果你希望自己拥有自己的引导程序,可以使用软盘镜像来附加到CD上)

+0

嗨..我使用虚拟盒作为虚拟机...我想让自己的引导程序,不想使用grub或isolinux ..你可以推荐我编译bootloader和内核到iso的例子吗?谢谢 – ankifreeze

+0

这里是hort描述如何使用仿真启动:http://wiki.osdev.org/Bootable_CD。这很简单:你只需要创建一个软盘引导程序(网上有很多教程)并将其写入CD。如果你确实想要以艰难的方式做事,请阅读:http://wiki.osdev.org/El-Torito。 – valplo

+0

嗨,感谢您的链接我有一些想法.... – ankifreeze

2

我假设你是在一台x86 PC上。 El Torito可启动CD-ROM规范支持3种操作模式:

  1. 软盘模拟
  2. 硬盘仿真
  3. 没有仿真

对于软盘和硬盘仿真模式,你必须指定一个适当的映像文件和BIOS将像往常一样加载引导扇区,提供访问映像文件的仿真驱动器。

对于no仿真模式,您可以指定载入基数段和代码的大小,并且bios将相应地执行载入。在这种情况下,您将无法通过磁盘中断功能访问cdrom。

如果你是在Linux上,你可以用-b-hard-disk-boot-no-emul-boot选项分别使用genisoimage工具。

另外请注意,如果您的BIOS支持从这样的设备启动(大多数),USB闪存驱动器可能比光盘更方便。

+0

:hi..I使用VirtualBox和Windows XP进行引导程序和因为错误而我没有使用eltorito和VMware安装...首先我已经尝试从mikeos.berlios.de的代码来使简单的引导程序说你好世界和它的作品,但是当我从[http://mikeos.berlios.de/mikeos-4.4.zip]下载示例操作系统和尝试编译到ISO我总是得到错误...我使用nasm使.bin和.flp和使用mkisofs使.iso ....你能帮助我哪里是错误?谢谢 – ankifreeze

1

只有遵循我的简单步骤,才能做到这一点:

  1. 编译bootloader.asm使用NASM此代码: NASM -f斌-o bootloader.bin bootloader.asm

  2. 下载 'DD为WINDO * S'(在谷歌搜索),把程序'dd.exe'放到保存bootloader文件的目录中。打开命令提示符并移至保存引导加载程序的目录,然后键入以下命令: dd if = bootloader.bin of = bootloader。flp

  3. 下载'imdisk'(在Google上搜索)并安装它。安装完成后,打开命令提示符并转至保存引导加载程序的目录。键入此命令: imdisk -a -f -s bootloader.flp -m 1440K B:那么

Windows将创建一个虚拟软盘驱动器字母B.你的内核文件复制到该B驱。

  • 再次打开命令提示和类型: imdisk -D -m B:
  • Windows将然后卸载驱动器B和你的bootloader.flp准备安装通过模拟器。

    我推荐你QEMU,因为它是如此小而快的程序来启动你的OS文件。要使用QEMU运行bootloader.flp,在命令提示符处键入以下命令:如果你要出示你的bootloader.flp文件的ISO文件 QEMU -FDA bootloader.flp

    ,你必须有一个命名的程序“的mkisofs '并将程序'mkisofs.exe'移动到您保存引导加载程序的目录中。然后将您的bootloader.flp文件移动到名为'cdiso'的文件夹中(首先将其制作)。然后打开命令提示符并键入: mkisofs -no-emul-boot -boot-load-size 4 -o myos.iso -b bootloader.flp cdiso/

    然后它会生成ISO文件并且可以运行它在模拟器上。

    如果你要问我更多,你可以在[email protected]给我发电子邮件