1 |
3 |
xianfeng |
|
2 |
|
|
LDM - Logical Disk Manager (Dynamic Disks)
|
3 |
|
|
------------------------------------------
|
4 |
|
|
|
5 |
|
|
Originally Written by FlatCap - Richard Russon .
|
6 |
|
|
Last Updated by Anton Altaparmakov on 30 March 2007 for Windows Vista.
|
7 |
|
|
|
8 |
|
|
Overview
|
9 |
|
|
--------
|
10 |
|
|
|
11 |
|
|
Windows 2000, XP, and Vista use a new partitioning scheme. It is a complete
|
12 |
|
|
replacement for the MSDOS style partitions. It stores its information in a
|
13 |
|
|
1MiB journalled database at the end of the physical disk. The size of
|
14 |
|
|
partitions is limited only by disk space. The maximum number of partitions is
|
15 |
|
|
nearly 2000.
|
16 |
|
|
|
17 |
|
|
Any partitions created under the LDM are called "Dynamic Disks". There are no
|
18 |
|
|
longer any primary or extended partitions. Normal MSDOS style partitions are
|
19 |
|
|
now known as Basic Disks.
|
20 |
|
|
|
21 |
|
|
If you wish to use Spanned, Striped, Mirrored or RAID 5 Volumes, you must use
|
22 |
|
|
Dynamic Disks. The journalling allows Windows to make changes to these
|
23 |
|
|
partitions and filesystems without the need to reboot.
|
24 |
|
|
|
25 |
|
|
Once the LDM driver has divided up the disk, you can use the MD driver to
|
26 |
|
|
assemble any multi-partition volumes, e.g. Stripes, RAID5.
|
27 |
|
|
|
28 |
|
|
To prevent legacy applications from repartitioning the disk, the LDM creates a
|
29 |
|
|
dummy MSDOS partition containing one disk-sized partition. This is what is
|
30 |
|
|
supported with the Linux LDM driver.
|
31 |
|
|
|
32 |
|
|
A newer approach that has been implemented with Vista is to put LDM on top of a
|
33 |
|
|
GPT label disk. This is not supported by the Linux LDM driver yet.
|
34 |
|
|
|
35 |
|
|
|
36 |
|
|
Example
|
37 |
|
|
-------
|
38 |
|
|
|
39 |
|
|
Below we have a 50MiB disk, divided into seven partitions.
|
40 |
|
|
N.B. The missing 1MiB at the end of the disk is where the LDM database is
|
41 |
|
|
stored.
|
42 |
|
|
|
43 |
|
|
Device | Offset Bytes Sectors MiB | Size Bytes Sectors MiB
|
44 |
|
|
-------+----------------------------+---------------------------
|
45 |
|
|
hda | 0 0 0 | 52428800 102400 50
|
46 |
|
|
hda1 | 51380224 100352 49 | 1048576 2048 1
|
47 |
|
|
hda2 | 16384 32 0 | 6979584 13632 6
|
48 |
|
|
hda3 | 6995968 13664 6 | 10485760 20480 10
|
49 |
|
|
hda4 | 17481728 34144 16 | 4194304 8192 4
|
50 |
|
|
hda5 | 21676032 42336 20 | 5242880 10240 5
|
51 |
|
|
hda6 | 26918912 52576 25 | 10485760 20480 10
|
52 |
|
|
hda7 | 37404672 73056 35 | 13959168 27264 13
|
53 |
|
|
|
54 |
|
|
The LDM Database may not store the partitions in the order that they appear on
|
55 |
|
|
disk, but the driver will sort them.
|
56 |
|
|
|
57 |
|
|
When Linux boots, you will see something like:
|
58 |
|
|
|
59 |
|
|
hda: 102400 sectors w/32KiB Cache, CHS=50/64/32
|
60 |
|
|
hda: [LDM] hda1 hda2 hda3 hda4 hda5 hda6 hda7
|
61 |
|
|
|
62 |
|
|
|
63 |
|
|
Compiling LDM Support
|
64 |
|
|
---------------------
|
65 |
|
|
|
66 |
|
|
To enable LDM, choose the following two options:
|
67 |
|
|
|
68 |
|
|
"Advanced partition selection" CONFIG_PARTITION_ADVANCED
|
69 |
|
|
"Windows Logical Disk Manager (Dynamic Disk) support" CONFIG_LDM_PARTITION
|
70 |
|
|
|
71 |
|
|
If you believe the driver isn't working as it should, you can enable the extra
|
72 |
|
|
debugging code. This will produce a LOT of output. The option is:
|
73 |
|
|
|
74 |
|
|
"Windows LDM extra logging" CONFIG_LDM_DEBUG
|
75 |
|
|
|
76 |
|
|
N.B. The partition code cannot be compiled as a module.
|
77 |
|
|
|
78 |
|
|
As with all the partition code, if the driver doesn't see signs of its type of
|
79 |
|
|
partition, it will pass control to another driver, so there is no harm in
|
80 |
|
|
enabling it.
|
81 |
|
|
|
82 |
|
|
If you have Dynamic Disks but don't enable the driver, then all you will see
|
83 |
|
|
is a dummy MSDOS partition filling the whole disk. You won't be able to mount
|
84 |
|
|
any of the volumes on the disk.
|
85 |
|
|
|
86 |
|
|
|
87 |
|
|
Booting
|
88 |
|
|
-------
|
89 |
|
|
|
90 |
|
|
If you enable LDM support, then lilo is capable of booting from any of the
|
91 |
|
|
discovered partitions. However, grub does not understand the LDM partitioning
|
92 |
|
|
and cannot boot from a Dynamic Disk.
|
93 |
|
|
|
94 |
|
|
|
95 |
|
|
More Documentation
|
96 |
|
|
------------------
|
97 |
|
|
|
98 |
|
|
There is an Overview of the LDM together with complete Technical Documentation.
|
99 |
|
|
It is available for download.
|
100 |
|
|
|
101 |
|
|
http://www.linux-ntfs.org/content/view/19/37/
|
102 |
|
|
|
103 |
|
|
If you have any LDM questions that aren't answered in the documentation, email
|
104 |
|
|
me.
|
105 |
|
|
|
106 |
|
|
Cheers,
|
107 |
|
|
FlatCap - Richard Russon
|
108 |
|
|
ldm@flatcap.org
|
109 |
|
|
|