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