问题标签 [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.
floating-point - 如何将最小有界矩形标准化为正方形[10000] [10000]?
我有一个从http://www.rtreeportal.org/下载的空间数据集
MBR 是一个矩形,其值如下:
506364.3125 4583290.0 508388.09375 4584786.0 代表矩形的(x_low,y_low,x_high,y_high)。
如您所见,所有位置都由大浮点值协调。该空间中有近 20000 多个矩形。
我想将整个空间生成为面积为 [10000][10000] 的空间
所有 x 中最低的将变为 0
所有 x 中最高的将变为 10000
所有 y 中最低的将变为 0
y 中最高的将变为 10000
所有其他的 x 和 y 坐标都会相应地改变。怎么做?会有什么逻辑?
java - 如何在 vmware Esx(i) server /Vcenter 中检测虚拟机磁盘是 GPT 还是 MBR
我需要找到一种方法来以编程方式确定来宾虚拟机磁盘是 GPT 还是 MBR 分区。我无法使用 vijava 或 Vddk api 来实现这一点。是否有任何其他 c++ 或 java 库可以帮助我实现这一目标。或者手动解析 MBR 是唯一可用的解决方案。
提前致谢,
蒂亚加拉詹 A.
boot - MBR 有什么要求才能加载?
我一直在尝试修改旧 U 盘的 MBR,从它启动,测试各种 BIOS 功能,等等......
但我似乎不明白 - BIOS 在决定从哪个设备启动时会寻找什么?显而易见的两个要求是:
- 更改 BIOS 引导顺序,使其在连接时尝试从 USB 引导。
- 在偏移量 0x1fe 处具有 MBR 签名 - 0x55aa。
出于某种原因,我的笔记本电脑只为我编写的一些 MBR 从 USB 启动,而对于其他一些它从主 HD 启动,忽略 USB。当然都是用 0x55aa 签名的。
为什么会这样?BIOS 还寻找什么?
arm - 从树莓派中提取 MBR
我尝试从我的树莓派中提取 MBR(在 SDCARD 上加载了 raspbian),就像在任何 Linux 机器上一样。
但是,在执行file
on时,mbr.bin
我收到以下消息:-
mbr.bin: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 0, startsector 122880, 15400960 sectors, code offset 0xb8
为什么说它是一个x86 boot sector
?
[编辑] 我还在这里阅读了有关启动顺序的信息;树莓派甚至使用 MBR 吗?
c++ - 如何以编程方式区分虚拟机中的 GPT 动态磁盘和 GPT 基本磁盘
最近我必须找到一种方法来区分虚拟机使用的分区类型,从虚拟磁盘读取原始数据我能够通过检查偏移量 1C2(如果是 GPT 则为 EE)找到它,如果是 MBR 磁盘如果磁盘是动态的,则 1C2 处的偏移量为 42,对于基本磁盘,相同的 1C2 偏移量为 07,这意味着基本磁盘,现在如果它是 GPT 磁盘,我如何区分基本磁盘和动态磁盘。
提前致谢。
mbr - 如何在 Windows 8 上将 GPT 卷转换为 MBR
我的问题是转换GPT
卷而不是磁盘。我找到了一些解决方案,但它们都是关于如何转换磁盘的。在我的 Windows 8 上,它具有disk 0
. disk 0
有7
卷。我只想将一卷转换为disk 0
. 我怎样才能做到这一点?
bios - 如何在 VMDK 文件中找到 MBR 扇区?
我试图了解 vmware bios 在加载 MBR 之前如何找到它。
在物理硬盘中这很容易——MBR 位于第一个扇区。
但是.. VM 会发生什么?
我创建了 2 个虚拟机——在第一个 vmdk(上面安装了基于 linux 的系统)中,我在偏移量 0x2A0000 处找到了 MBR。
在第二个 vmdk 文件(安装了 Windows XP)中,我不止一次找到了 MBR——但我发现的所有偏移量都不能除以 512(扇区大小),这有点奇怪(就我而言知道,MBR 应该从扇区的开头开始 + vmdk 中的扇区大小为 512 字节 => MBR 的起始偏移量必须除以 512。如果我错了,请纠正我)。
所以我猜它们可能是备份的副本。不用说 xp .vmdk 中的@ offset 0x2A0000 没什么意思。
那么.. vmware 的 BIOS 如何找到 MBR?这个可配置参数在哪里\它是如何计算的?
附加信息:
- 两个 VMDK 都是 1 文件硬盘文件(并且可以增长到 40GB)。
他们服务的系统只使用它们(XP 使用 xp.vmdk,linux 使用 linux.vmdk,没有额外的 VMDK)。
- @Windows VM 我在 \.\PhysicalDrive0 上使用 WinHex 来获取 MBR。它看起来不错(签名等)。
- @Linux VM 我使用命令“dd if=/dev/sda of=mbr.bin bs=512 count=1”,然后查看十六进制字节以获取 MBR。我查看了它,它看起来很好(GRUB,最后签名等)。
从 VM 获取 MBR 后,我在每个对应的 .vmdk 文件中搜索主机 pc 中的 MBR(使用十六进制编辑器),并且偏移量如上所述。
任何帮助,将不胜感激。谢谢!
windows - NTFS - MBR 出现在卷的开头
我在从 NTFS 卷读取原始数据时遇到了一些问题。我已经使用 UNC 路径 ("\.\C") 打开了我的 C: 驱动器CreateFile
,以便能够从中读取原始数据。
当我阅读第一个扇区时,我发现我正在阅读 MBR 扇区。C
据我所知,卷(在本例中是我的驱动器)和物理驱动器(表示为)之间存在区别\\.\PhysicalDriveX
。
不同之处在于 MBR 仅位于物理驱动器的第一个扇区,而 Volume 代表一个逻辑驱动器(同一个硬盘驱动器内的一个或多个分区),因此从理论上讲,不应该读取它的第一个扇区, MBR(因为实际分区仅在 MBR 的分区表之后开始)。
对我来说更特别的是,当我期望在读取\\.\PhysicalDrive0
(这是我的物理硬盘)的第一个扇区时获得 MBR 时,我只得到 NULL。
根据维基百科:
主引导记录 (MBR) 是一种特殊类型的引导扇区,位于已分区的计算机大容量存储设备(如固定磁盘或可移动驱动器)的开头
虽然我认为很清楚,但我附上了相关代码:
我将总结一下我的问题,是否有一个很好的解释,为什么从卷中读取扇区会导致读取 MBR,而从物理驱动器中读取却一无所获?
提前致谢。
assembly - 我可以使用什么环境来编写操作系统的二进制代码?
为了学习操作系统的引导,我用这种方式做了一些简单的测试:
我安装 oracle virtualbox 并创建 hdd 磁盘
我安装十六进制编辑器 HxD 并将代码写入此硬盘磁盘,打开显示此硬盘的文件
在第一个 512 字节扇区的末尾,我在 1FE 和 1FF 字节中写入 55 AA,
以及我从第一个扇区的第一个字节编写的其他代码。
通过这种方式,我必须从 HxD 中解除对 hdd 文件的阻止,因为在完成此操作之前,virtualbox 无法启动它。
我想用虚拟机或者其他真机(第二种方式不太方便),因为它创建了一个独立的开发环境。
我怎样才能更有效地进行学习引导(以及简单开发后)操作系统的测试?
c - 查找分区之间的间隙
我一直在研究如何找到 MBR 分区表中的条目之间的间隙。没有太多关于间隙查找算法的信息,因为它适用于使用谷歌的磁盘,所以看起来我必须想出自己的。我的研究得出以下结论:
- 通过启动 LBA (SLBA) 对分区表进行排序
- 将 SLBA 添加到 LBA 计数以创建结束 LBA (ELBA)
- 遍历表执行间隙 = 先前记录的 ELBA - 当前记录的 SLBA。
- 特例:第一条记录:gap = SLBA - 1
- 特例:最后一条记录:gap = 磁盘的最后 LBA - ELBA。
我意识到还有其他特殊情况,例如没有记录、一条记录等……但我现在不打算讨论。我提出的算法看起来不错吗?还是我在叫错树?
我确实有一些我编写的初步代码,如下所示,从定义开始:
uint8、uint16、uint32 和 uint64 数据类型基本上分别是 unsigned char、unsigned short、unsigned int、unsigned long long 的 typedef。
这段代码不完整,但这是我要使用的方向。