问题标签 [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.
operating-system - 基本 NASM 引导程序
我最近一直在研究操作系统、引导过程和 NASM。在旅途中,我遇到了一段有用的引导代码,我部分理解并通过虚拟软盘进行了测试。我的基本问题是我不明白的这些行中的一些做什么。我已经评论了我认为这些线条的作用,任何更正或确认将不胜感激。
谢谢,
乔
bootloader - 插入新的可引导 Linux 驱动器后,为什么我的 Windows 7 安装失败?
好的,所以我刚为我的笔记本电脑买了一个新的 SSD。我已经在 SSD 上安装了 Windows 7,并且可以成功启动到 Windows 7。
我将 SSD 取出并放入普通硬盘驱动器并在其上安装 Ubuntu。因此,现在当我将另一个 SSD 添加回笔记本电脑时,我会进入 BIOS 并引导覆盖到 SSD 以尝试进入我的 Windows 7 安装。
我至少会进入“正在启动 Windows”屏幕大约一秒钟。然后它开始说“正在加载文件”,就像它在进行恢复一样。它打开恢复并尝试永久修复,但 5 分钟后会说它无法修复。
如果我尝试将覆盖引导到 Ubuntu 硬盘驱动器中,它工作得很好。
如果我取出 Ubuntu 硬盘,我就可以启动到 Windows 7。
预期的行为是我将能够使用 BIOS 引导到任一硬盘驱动器。
oracle - 如何从 Oracle 中的 SDO_GEOM.SDO_MBR 返回 x1、y1、x2、y2?
我需要以记录中四个字段的形式返回几何列的 MBR。我需要 x1,y1,x2,y2。如何做到这一点?这是我当前的语句,为清楚起见删除了选择行。我想返回 A.CELL_GEOM 字段的 MBR 的 x1, y1, x2, y2。
编辑:值得注意的是,这必须在单个语句中完成。
operating-system - 是否可以通过任何十六进制编辑器编写笔式驱动器的 MBR?
创建引导加载程序后,如果我复制引导加载程序的字节并使用十六进制编辑器将其粘贴到笔式驱动器的第一个 512 字节上,它会工作吗?(实际上我想学习从头开始创建操作系统。)
winapi - 读取 mbr 时 Createfile 失败
在 WinXP 上读取 mbr 时 Createfile 失败。返回 -1 即INVALID_DEVICE_HANDLE
知道为什么吗???
linux - 为什么 BIOS 不直接加载 Linux 内核 - 为什么是 MBR 和所有这些麻烦?
我最近了解了 Linux 的引导过程。我不禁想知道为什么我们会在 BIOS 之后遇到访问 MBR 的麻烦,以便那里的指令可以反过来将内核加载到 RAM 中。
为什么是中间人——为什么 BIOS 不直接加载内核?
parsing - 解释 FAT32 卷引导记录上每个扇区的字节数
下面我附上了与以下问题有关的图像。我正在解析 FAT32 分区的卷引导记录,并被卡住了好几个小时,直到我发现 WinHex 有一个数据解释器。当我点击 0Bh 时,它显示一个 16 位解释,等于 512。
我的问题是,系统如何从中得到 512。它是否以 Big Endian 或类似的方式读取每个扇区的字节数?我只是对这个感到困惑......图片显示了WinHex中的VBR。
c - 读取虚拟磁盘 MBR 的方法
我正在尝试构建我自己的 C 程序,它基本上就像 fdisk vdisk 'p' 命令一样工作。我只想能够读取磁盘的前 512 个字节,查找分区的开头(0x1BE),然后读取分区类型、名称、大小等。我不确定如何实际读取这些值。我已经使用 read() linux 函数读取 512 个字节,但是当我尝试以任何方式显示/查看它们时,什么都没有显示。我究竟做错了什么?
c - 带有联合的 C 中的 reinterpret_cast/type punning 功能
我正在尝试将 512 个字节写为无符号字符,但将它们作为结构中的字段读取。下面是我想出的工会。
我可以正确地写入缓冲区,但从 a 或 b 或 c 读取会给出 0。 - 我使用 gcc - 在 64 位 Linux 机器上 - 有/没有 -m32 标志没有区别。
有人可以阐明我所缺少的吗?
c++ - VHD 无法在 hyper V 中启动
我正在为具有多个分区的磁盘创建动态 vhd。
涉及的步骤是
首先,我通过创建页眉和页脚并计算 bat(块分配表)大小来创建 VHD。
然后我使用 win32 API 获取磁盘大小和分区详细信息
我拍摄卷的快照
我读取父磁盘的 mbr 并覆盖扇区偏移量,然后将具有多个分区的 mbr 写入 VHD。
现在对于每个卷影副本,我读取快照并写入 VHD 文件
此过程成功完成,然后我在 diskmgmt.msc 中打开 vhd。它显示了两个分区,我可以看到这些分区中的数据。
现在我将此 vhd 复制到 hyper V 机器,然后创建一个新 vm 并将此 vhd 添加到该机器。
当它启动时,它给我一个错误“磁盘读取错误”,但是当我将此 vhd 添加到现有操作系统并在引导加载程序中添加引导条目时,它可以正常引导。
我不知道出了什么问题。如果有人来给我一些指示。
这是编写mbr的代码
谢谢