LDM - 逻辑磁盘管理器(动态磁盘)¶
- 作者:
最初由 FlatCap - Richard Russon 编写 <ldm@flatcap.org>。
- 最后更新:
Anton Altaparmakov 于 2007 年 3 月 30 日为 Windows Vista 更新。
概述¶
Windows 2000、XP 和 Vista 使用一种新的分区方案。它是对 MSDOS 样式分区的完全替代。它将其信息存储在物理磁盘末尾的一个 1MiB 的日志数据库中。分区的大小仅受磁盘空间限制。分区的最大数量接近 2000 个。
在 LDM 下创建的任何分区都称为“动态磁盘”。不再有主分区或扩展分区。正常的 MSDOS 样式分区现在称为基本磁盘。
如果您希望使用跨区卷、条带卷、镜像卷或 RAID 5 卷,则必须使用动态磁盘。日志记录允许 Windows 对这些分区和文件系统进行更改,而无需重新启动。
一旦 LDM 驱动程序划分了磁盘,您就可以使用 MD 驱动程序来组装任何多分区卷,例如条带卷、RAID5。
为了防止旧应用程序重新分区磁盘,LDM 创建一个虚拟的 MSDOS 分区,其中包含一个磁盘大小的分区。这是 Linux LDM 驱动程序支持的内容。
Vista 中实现的一种较新的方法是将 LDM 放在 GPT 标签磁盘的顶部。 Linux LDM 驱动程序尚不支持此功能。
示例¶
下面我们有一个 50MiB 的磁盘,分为七个分区。
注意
磁盘末尾缺少的 1MiB 是 LDM 数据库的存储位置。
设备 |
偏移量(字节) |
扇区 |
MiB |
大小(字节) |
扇区 |
MiB |
||
---|---|---|---|---|---|---|---|---|
hda |
0 |
0 |
0 |
52428800 |
102400 |
50 |
||
hda1 |
51380224 |
100352 |
49 |
1048576 |
2048 |
1 |
||
hda2 |
16384 |
32 |
0 |
6979584 |
13632 |
6 |
||
hda3 |
6995968 |
13664 |
6 |
10485760 |
20480 |
10 |
||
hda4 |
17481728 |
34144 |
16 |
4194304 |
8192 |
4 |
||
hda5 |
21676032 |
42336 |
20 |
5242880 |
10240 |
5 |
||
hda6 |
26918912 |
52576 |
25 |
10485760 |
20480 |
10 |
||
hda7 |
37404672 |
73056 |
35 |
13959168 |
27264 |
13 |
LDM 数据库可能不会按分区在磁盘上出现的顺序存储分区,但驱动程序会对其进行排序。
当 Linux 启动时,您会看到类似以下内容
hda: 102400 sectors w/32KiB Cache, CHS=50/64/32
hda: [LDM] hda1 hda2 hda3 hda4 hda5 hda6 hda7
编译 LDM 支持¶
要启用 LDM,请选择以下两个选项
“高级分区选择” CONFIG_PARTITION_ADVANCED
“Windows 逻辑磁盘管理器(动态磁盘)支持” CONFIG_LDM_PARTITION
如果您认为驱动程序无法正常工作,则可以启用额外的调试代码。这将产生大量的输出。该选项是
“Windows LDM 额外日志记录” CONFIG_LDM_DEBUG
注意:分区代码不能编译为模块。
与所有分区代码一样,如果驱动程序看不到其类型的分区的迹象,它将把控制权传递给另一个驱动程序,因此启用它没有害处。
如果您有动态磁盘但未启用驱动程序,那么您将看到的只是一个填充整个磁盘的虚拟 MSDOS 分区。您将无法挂载磁盘上的任何卷。
启动¶
如果您启用 LDM 支持,则 lilo 能够从任何已发现的分区启动。但是,grub 不理解 LDM 分区,并且无法从动态磁盘启动。
更多文档¶
有一个 LDM 概述以及完整的技术文档。 它可供下载。
如果您有文档中未解答的任何 LDM 问题,请给我发送电子邮件。
- 干杯,
FlatCap - Richard Russon ldm@flatcap.org