【问题标题】:How can i put a compiled boot sector onto a USB stick or disk?如何将编译好的引导扇区放到 U 盘或磁盘上?
【发布时间】:2009-12-12 22:02:36
【问题描述】:

我实际上对操作系统的工作原理很感兴趣,从引导过程中的 POST 到内核、GUI 等。

我必须从头开始:引导扇区

大多数教程仅指定如何将您的 .bin 引导程序安装到 Linux 用户的 U 盘上。

但是当我使用 XP 时,我想问一下如何将我的 512 字节 .bin 放到我的 USB 上的正确位置,这绝对不是通过使用资源管理器复制它:D

【问题讨论】:

    标签: operating-system usb boot bootloader bootstrapper


    【解决方案1】:

    我经常使用 dd for Windows。 http://www.chrysocome.net/dd

    像这样使用它:

    dd if=c:\my files\boot.bin of=\\.\z: bs=512 count=1

    其中'z:'是你挂载的USB驱动器的盘符,'if'是输入文件,'of'是输出设备,bs是块大小,count是块数复制

    我大约每月执行一次,以了解 Haiku 的开发进展情况。他们提供以这种方式写入 USB 驱动器的原始磁盘映像。

    警告:错误的驱动器号可能会破坏您的引导扇区,因此请确保您进行备份并先熟悉使用 dd。我已经丢失了很多数据。

    【讨论】:

    • @Randomlnsano:你得到我的 +1 因为我从来不知道 Windows 存在 dd!凉爽的! :)
    • 应该注意,这会写入 Z: 映射到的分区的开头,而不是 MBR(这个问题有点模棱两可)。如果您想覆盖 MBR 引导扇区,那么我认为您必须使用较新版本的 chrysocome dd 并使用 od 参数相对于物理设备的开头进行写入(而不仅仅是分区) .这将覆盖 MBR dd if=c:\my files\boot.bin od=z: bs=512 count=1
    • 默认情况下,当您使用 Windows 格式化 USB 驱动器时,它会创建一个具有单个分区的硬盘驱动器,并将该分区标记为可引导。Windows 写入一个 MBR(主引导记录)作为链式装载机。当您从该 USB 启动时,BIOS 会加载 MBR 并跳转到它。 MBR 代码充当链加载器,找到标记为可引导的分区,将分区的前 512 个字节加载到内存位置 0x0000:0x7C00,然后跳转到它。分区引导扇区不知道它是链式加载的,它认为 BIOS 直接加载它,就好像它是真正的 MBR
    【解决方案2】:

    也许您可以使用rawritewin 为您完成这项工作?

    另一种方法是使用UNetBootIn,但根据我的经验,它需要将 ISO 刻录到 USB 上。所以这可能不适用于您的情况,但您可以尝试创建 ISO 以准备写入USB...

    【讨论】:

      猜你喜欢
      • 2023-03-23
      • 2019-12-05
      • 2021-07-12
      • 2015-01-05
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 2022-01-23
      相关资源
      最近更新 更多