| LDM - Logical Disk Manager (Dynamic Disks) | |
| ------------------------------------------ | |
| Originally Written by FlatCap - Richard Russon <ldm@flatcap.org>. | |
| Last Updated by Anton Altaparmakov on 30 March 2007 for Windows Vista. | |
| Overview | |
| -------- | |
| Windows 2000, XP, and Vista use a new partitioning scheme. It is a complete | |
| replacement for the MSDOS style partitions. It stores its information in a | |
| 1MiB journalled database at the end of the physical disk. The size of | |
| partitions is limited only by disk space. The maximum number of partitions is | |
| nearly 2000. | |
| Any partitions created under the LDM are called "Dynamic Disks". There are no | |
| longer any primary or extended partitions. Normal MSDOS style partitions are | |
| now known as Basic Disks. | |
| If you wish to use Spanned, Striped, Mirrored or RAID 5 Volumes, you must use | |
| Dynamic Disks. The journalling allows Windows to make changes to these | |
| partitions and filesystems without the need to reboot. | |
| Once the LDM driver has divided up the disk, you can use the MD driver to | |
| assemble any multi-partition volumes, e.g. Stripes, RAID5. | |
| To prevent legacy applications from repartitioning the disk, the LDM creates a | |
| dummy MSDOS partition containing one disk-sized partition. This is what is | |
| supported with the Linux LDM driver. | |
| A newer approach that has been implemented with Vista is to put LDM on top of a | |
| GPT label disk. This is not supported by the Linux LDM driver yet. | |
| Example | |
| ------- | |
| Below we have a 50MiB disk, divided into seven partitions. | |
| N.B. The missing 1MiB at the end of the disk is where the LDM database is | |
| stored. | |
| Device | Offset Bytes Sectors MiB | Size Bytes Sectors 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 | |
| The LDM Database may not store the partitions in the order that they appear on | |
| disk, but the driver will sort them. | |
| When Linux boots, you will see something like: | |
| hda: 102400 sectors w/32KiB Cache, CHS=50/64/32 | |
| hda: [LDM] hda1 hda2 hda3 hda4 hda5 hda6 hda7 | |
| Compiling LDM Support | |
| --------------------- | |
| To enable LDM, choose the following two options: | |
| "Advanced partition selection" CONFIG_PARTITION_ADVANCED | |
| "Windows Logical Disk Manager (Dynamic Disk) support" CONFIG_LDM_PARTITION | |
| If you believe the driver isn't working as it should, you can enable the extra | |
| debugging code. This will produce a LOT of output. The option is: | |
| "Windows LDM extra logging" CONFIG_LDM_DEBUG | |
| N.B. The partition code cannot be compiled as a module. | |
| As with all the partition code, if the driver doesn't see signs of its type of | |
| partition, it will pass control to another driver, so there is no harm in | |
| enabling it. | |
| If you have Dynamic Disks but don't enable the driver, then all you will see | |
| is a dummy MSDOS partition filling the whole disk. You won't be able to mount | |
| any of the volumes on the disk. | |
| Booting | |
| ------- | |
| If you enable LDM support, then lilo is capable of booting from any of the | |
| discovered partitions. However, grub does not understand the LDM partitioning | |
| and cannot boot from a Dynamic Disk. | |
| More Documentation | |
| ------------------ | |
| There is an Overview of the LDM together with complete Technical Documentation. | |
| It is available for download. | |
| http://www.linux-ntfs.org/ | |
| If you have any LDM questions that aren't answered in the documentation, email | |
| me. | |
| Cheers, | |
| FlatCap - Richard Russon | |
| ldm@flatcap.org | |