AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题 / 1517413
Accepted
user3840170
user3840170
Asked: 2020-01-16 06:42:40 +0800 CST2020-01-16 06:42:40 +0800 CST 2020-01-16 06:42:40 +0800 CST

MBR 分区表中的“LBA”和“非 LBA”ID 有什么区别?

  • 772

在 MBR 分区表中,每个分区条目都包含一个单字节标识符,该标识符应该描述分区中包含的文件系统类型。文件系统的 FAT 系列已发布多个这样的 ID,一个对应于 FAT 条目的每个宽度。奇怪的是,除了 FAT12 和扩展引导记录类型之外的每个 FAT 变体还有一个额外的 ID,用于文件系统的“LBA”变体:

ID(非 LBA) 身份证 (LBA) 文件系统
0x01 没有任何 FAT12
0x04,0x06 0x0e FAT16
0x0b 0x0c FAT32
0x0f 0x05 扩展引导记录

现代操作系统通常能够自行确定应该如何寻址驱动器。即使在 LBA 寻址还很年轻的时候,通过 BIOS 访问磁盘,也应该可以简单地探测适当的中断 13h 调用的可用性,如果它们不存在则回退到 CHS 版本。因此,额外的分区 ID 似乎是多余的。

那么这些额外的分区 ID 的意义是什么?它们是否以任何方式影响了磁盘格式、文件系统驱动程序或引导代码?

partitioning mbr
  • 2 2 个回答
  • 2115 Views

2 个回答

  • Voted
  1. JdeBP
    2020-01-17T01:49:35+08:002020-01-17T01:49:35+08:00

    它们可以阻止不使用 LBA I/O的(旧)操作系统尝试访问这些分区,但失败。分区类型控制哪些操作系统尝试查看分区中的内容。使用 LBA I/O 的操作系统知道查看具有较新分区类型的分区。不将分区视为应忽略的东西的操作系统。

    对于无法处理大于 16MiB 和 32MiB 的分区的(旧)操作系统也是如此。

    进一步阅读

    • 乔纳森·德博因·波拉德 (2006)。“分区类型(不)如何暗示文件系统类型”。 如何确定卷的文件系统类型。经常给出答案。
    • 3
  2. Best Answer
    user3840170
    2020-02-15T03:28:45+08:002020-02-15T03:28:45+08:00

    @JdeBP 的回答是正确的,但不完整。分区类型 ID 的主要目的确实是隐藏无法正确访问分区的旧操作系统(这主要是指旧版本的 DOS)的分区。有时这是因为磁盘驱动程序的任意大小限制;在其他情况下,这是因为 FAT 磁盘格式本身发生了变化(更宽的 FAT 条目,BPB 结构的变化)。

    完整的表格(改编自KB Q69912)应如下所示:

    类型 DOS版本 文件系统 寻址 尺寸限制
    0x01 ≥2.0 脂肪≤12 CHS ≤ 16 MiB(32768 个扇区)
    0x04 ≥ 3.0 脂肪≤16 CHS ≤ 32 MiB(65536 个扇区)
    0x05 ≥ 3.30 EBR CHS (≤ 8032.5 MiB ***)
    0x06 ≥4.0 脂肪≤16 CHS (≤ 8032.5 MiB ***)
    0x0b ≥ 7.10 ** 脂肪≤32 CHS (≤ 8032.5 MiB ***)
    0x0c ≥ 7.10 ** 脂肪≤32 LBA (≤ 2 TiB ***)
    0x0e ≥ 7.0 * 脂肪≤16 LBA (≤ ~2 GiB ****)
    0x0f ≥ 7.0 * EBR LBA (≤ 2 GiB *****)

    阅读如下:如果最后三列中的所有约束都满足(整个分区可以用给定方案寻址,分区不大于指定的FAT版本不迟于指定),则可以使用类型ID在第一列中将分区公开给第二列中的 DOS 版本。反之亦然:少于 32768 个扇区的 CHS 可寻址 FAT12 分区很可能被识别为0x0c; 这样做的用处不大。

    所有 DOS 版本也受到簇大小不能大于 64 个扇区 = 32768 字节的约束。如果这个假设被打破,最好使用的类型可能是0x07.

    DOS 7.0 及更高版本以另一种方式使用分区类型 ID:选择使用哪个 BIOS 服务来访问驱动器。顾名思义,CHS 寻址的分区通过旧的 INT 0x13 服务(AH=0x02,AH=0x03)访问,而 LBA 寻址的分区通过 INT 0x13 扩展访问(AH=0x42,AH=0x43)。CHS 驱动程序也受到某些怪癖和限制的影响,这些都不适用于 LBA 驱动程序:

    • 如果一个以 CHS 为地址的分区从扇区 (0, 0, 1) 开始,即它与 MBR 扇区重叠,DOS 会识别它,但不能访问它。
    • CHS 寻址的扩展引导记录(类型0x05)必须在柱面边界对齐;否则 DOS 将错误计算分区所在的位置。
    • CHS 寻址的扩展引导记录不得包含 LBA 寻址的逻辑驱动器。
    • 对于包含在 CHS 寻址的 EBR 中的逻辑驱动器,存储在 BIOS 参数块(所谓的“隐藏扇区”字段)中的分区偏移量是相对于其包含的扩展引导记录计算的,而不是绝对磁盘。

    * DOS 版本首先与 Windows 95 (4.0.950) 一起分发

    ** DOS 版本首先与 Windows 95 OSR2 (4.0.1111) 一起分发

    *** 分区表寻址方案(以及 BPB 等数据结构)的限制:CHS 最多可寻址 1024 × 255 × 63 个扇区,LBA 最多可寻址 2个 32 个扇区。(知识库文章声称限制为 1024 × 255 × 64,但这可能是错误的。)

    **** 最大集群大小为 64 个扇区的限制;每扇区 512 字节 × 每簇 64 扇区 × 65525 簇 ≈ FAT 簇区域中的 2 GiB。理论上,即使有这个限制,这个限制也可以用大的保留扇区区域或根目录区域来打破,但其他大小限制可能仍然存在。

    ***** 此约束的来源尚不清楚;也许它是虚假的。

    • 1

相关问题

  • 更改分区的(类型)GUID?

  • 在未分配空间的备份硬盘中安装 ubuntu

  • 如何完全擦除笔记本电脑磁盘以进行全新的 Ubuntu 安装?

  • 分区大小 128GB 但仅检测到 64GB [重复]

  • 我应该对用于存储的辅助(非操作系统)SSD 进行分区吗?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 为什么通过电缆(同轴电缆)的千兆位/秒 Internet 连接不能像光纤一样提供对称速度? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    fixer1234 “HTTPS Everywhere”仍然相关吗? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve