问题标签 [mbr]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
assembly - 如何检测多个硬盘的可用性?
我正在学习操作系统开发。我最近读到硬盘用 80h 表示,依此类推。但是在 MBR 中,MBR 必须检测到多个 HDD 才能选择启动。
这是怎么做到的?如何检测多个硬盘驱动器的可用性并从中切换?
我在用着:
Ubuntu
气体组装机
注意:我想在系统的实模式下用汇编语言回答。
谢谢。
python - 在 Windows 上读取引导扇区
我在 python 上创建了一个小程序,它在低级别读取引导扇区,因此它不会损坏设备。我昨天在 Linux 中成功运行了这个程序,我有了在 Windows 中做同样事情的想法。但唯一的问题是来了,我无法读取例如:\Device\Harddisk0\Partition1
引导分区或\Device\Harddisk0\DR0
原始磁盘 0。每次我尝试它都告诉我:No such a file or a directory
我做错了什么?
c++ - 直接访问硬盘
我想使用下面的代码打印出引导扇区,但是有错误。
microsoft visual studio 不打印引导扇区的十六进制数字,而是打印出“CD”流。错误是什么以及如何解决问题?任何人都可以帮忙吗?
nasm - 在 Windows 中的 USB Pen 驱动器的第一个扇区中写入引导加载程序
我已经使用 NASM 为 x86 编写了一个简单的引导加载程序,它被转换为 boot.bin,我使用 dd 编写了 USB Pendrive 的第一个逻辑扇区(在 Windows 中,从 chrysocome 站点下载)但是当我尝试使用实际启动时没有使用它PC(二手戴尔实验室),我应该在物理第一扇区写吗?
c# - 如何使用 C# 备份 Windows 主引导记录?
使用 C#,如何备份系统启动硬盘的 Windows 主启动记录?它用于防病毒引擎。
windows - 在 Windows 中禁用将磁盘签名写入 MBR(地址 01B8、01BC)
如果两个地址 01B8(4 字节)和 01BC(2 字节)为零,Windows 正在将磁盘签名(序列号)写入主引导记录。
您可以使用 dd 从驱动器中导出前 512 个字节。然后打开diskmgmt.msc。之后,应该初始化磁盘并写入磁盘签名。再次将前 512 个字节导出到另一个文件,并对这两个文件进行 hexdiff。您将在上述地址中看到不同的字节。
我可以在 Windows 中禁用此行为,例如在注册表中吗?
我在 Windows 7 上。
差异:
0000 01B0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 ............
0000 01B0: 00 00 00 00 00 00 00 00 72 44 E7 89 00 00 00 20 ......
assembly - USB 硬盘仿真导致磁盘读取失败(BIOS int 13)?
一些背景:
我正在开发一个基本的引导加载程序,它通过 BIOSINT 13h AH=02h
中断将辅助引导加载程序读入内存。我已经让它在模拟器(Virtualbox、Qemu 和 Bochs)中工作。
随后,我在我的引导加载程序中添加了一个 BPB(BIOS 参数块),制作了一个可引导的 USB,并在我的真机上使用 USB 软盘仿真(我在真机 BIOS 的配置屏幕中设置)对其进行了测试。它就像一个魅力。
在我自己的机器上测试引导加载程序后,我在另一台较新的机器上对其进行了测试。这台新计算机的 BIOS 配置中没有软盘仿真选项,因此无法从 USB 驱动器启动。因此,在这个osdev wikipage 之后,我在 MBR 的末尾添加了一个分区表,以便较新的机器可以从 USB 启动。
问题:
添加分区表代码后,引导加载程序无法将辅助引导加载程序加载到内存中,并且 BIOSINT 13h
失败。我不知道为什么会发生这种情况,因为我没有更改任何实际的引导加载程序代码。我刚刚添加了 64 位 MBR 分区表,将数据读入内存立即失败。
BPB(BIOS 参数块)和磁盘访问例程
MBR 分区表
问题
当且仅当在 BIOS 中启用 USB 硬盘驱动器仿真时,导致读取磁盘失败的原因是什么?我已经尝试更改分区表和 BPB,但似乎没有任何效果。我敢打赌,这与计算机处理软盘和硬盘信息的方式不同有关,但很难找到任何相关信息。
任何帮助将不胜感激。我不打算让这个问题这么长。它只是积累。
assembly - 使用引导扇区作为 MBR 创建 FAT 分区
我正在帮助一位朋友为他的操作系统编写引导加载程序。我已经为他编写了一个引导参数块。但是,当我使用 DD 将其刻录到 1.44MiB 软盘映像的第一个扇区时,它似乎是有效的,它不能作为 FAT16 文件系统挂载。但是,我没有看到代码有任何真正的问题。在这里(它也得到了很好的评论):
我用来把它放在软盘映像的第一个扇区的命令是:
dd if=/dev/zero of=fat.img bs=512 count=2880
接着:
dd status=noxfer conv=notrunc if=bootloader.bin of=fat.img
谢谢!
python - Python解析MBR
我刚开始使用 Python 脚本,我正在尝试编写一个程序来解析提供的 MBR,但我不知道如何开始。
我想编写一个程序来解析 MBR 的分区表的一部分。第一个分区条目位于地址 1BE。打印出状态字节(1 个字节位于起始地址)、分区类型(1 个字节位于地址 1BE + 4)和分区中第一个扇区的地址(1BE + 8)。
任何帮助将不胜感激!
c++ - windows系统如何读取MBR数据
我正在使用一个 MBR 代码偏移量为 54 字节的文件。在 main() 函数中,我调用 OpenMBbrFile(),然后调用 ReadMbrData()。但是,我无法正确读取缓冲区中的 MBR。请帮我解决这个问题.................................................................. ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ..................................................... ...........