요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
Disk layout
ldm.rst:36-7450MiB disk의 7 partition layout과 boot output을 구조화합니다.
Build와 boot
ldm.rst:75-121Kconfig, debug, lilo·grub 지원과 추가 문서를 안내합니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
==========================================
LDM - Logical Disk Manager (Dynamic Disks)
==========================================
:Author: Originally Written by FlatCap - Richard Russon <ldm@flatcap.org>.
:Last Updated: 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.
.. note::
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
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
작성 정보
1-7원 작성자는 FlatCap - Richard Russon <ldm@flatcap.org>입니다.
Windows Vista 내용을 반영해 Anton Altaparmakov가 2007년 3월 30일 마지막으로 갱신했습니다.
Dynamic Disk 개요
8-35Windows 2000, XP, Vista의 LDM partitioning scheme은 MSDOS-style partition을 완전히 대체합니다. physical disk 끝의 1MiB journalled database에 정보를 저장하며 partition size는 disk space만으로 제한되고 partition 수는 거의 2,000개까지 가능합니다.
LDM으로 만든 partition은 `Dynamic Disks`입니다. primary·extended partition 구분은 사라지고 기존 MSDOS-style partition은 `Basic Disks`라고 부릅니다.
Spanned, Striped, Mirrored, RAID 5 Volume에는 Dynamic Disk가 필요합니다. journal 덕분에 Windows가 reboot 없이 partition과 filesystem을 변경할 수 있습니다. LDM driver가 disk를 나눈 뒤 MD driver로 Stripe, RAID5 같은 multi-partition volume을 assemble할 수 있습니다.
legacy application의 repartition을 막기 위해 LDM은 disk 전체 크기의 dummy MSDOS partition 하나를 만듭니다. Linux LDM driver는 이 방식을 지원합니다.
Vista의 newer 방식은 GPT label disk 위에 LDM을 둡니다. Linux LDM driver는 아직 이를 지원하지 않습니다.
50MiB disk 배치 예제
36-7450MiB disk를 7개 partition으로 나눈 예입니다. 끝에서 빠진 1MiB는 LDM database 저장 공간입니다.
| device | offset bytes | offset sectors | offset MiB | size bytes | size sectors | size 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 database의 partition 순서는 실제 disk 순서와 다를 수 있지만 driver가 정렬합니다. Linux boot 때는 다음과 비슷하게 표시됩니다.
hda: 102400 sectors w/32KiB Cache, CHS=50/64/32
hda: [LDM] hda1 hda2 hda3 hda4 hda5 hda6 hda7
Kernel build option
75-98LDM enable에는 다음 두 option이 필요합니다.
| Kconfig | menu option |
|---|---|
| CONFIG_PARTITION_ADVANCED | Advanced partition selection |
| CONFIG_LDM_PARTITION | Windows Logical Disk Manager (Dynamic Disk) support |
driver 문제를 조사하려면 `CONFIG_LDM_DEBUG`의 `Windows LDM extra logging`을 enable할 수 있지만 매우 많은 output이 생성됩니다. partition code는 module로 compile할 수 없습니다.
다른 partition code와 마찬가지로 driver가 자기 type의 흔적을 찾지 못하면 다른 driver로 control을 넘기므로 enable해도 해가 없습니다.
Dynamic Disk가 있는데 LDM driver를 enable하지 않으면 disk 전체를 채운 dummy MSDOS partition만 보이고 volume을 mount할 수 없습니다.
Boot loader 지원
99-106LDM support를 enable하면 `lilo`는 발견된 어느 partition에서든 boot할 수 있습니다. `grub`은 LDM partitioning을 이해하지 못하므로 Dynamic Disk에서 boot할 수 없습니다.
추가 문서와 연락처
107-121LDM overview와 complete technical documentation을 다음 위치에서 내려받을 수 있습니다.
문서로 해결되지 않는 LDM 질문은 FlatCap - Richard Russon <ldm@flatcap.org>에게 보낼 수 있습니다.
LDM 개요
ldm.rst:1-35Dynamic Disk 구조와 Linux 지원 범위를 설명합니다.