Server of laboratory of space computer science MGUL
141001 г.Мытищи МО
Ул.Институтская д:1 ком:101
(095) 588-52-39, 588-55-62
E-mail: [email protected]
Сервер Лаб. Космической информатики каф.ВТ Московский Государственный Университет Леса
Next Previous Contents

14. Расширенные и логические разделы

Ниже можно видеть структуру MBR (сектор 0): код загрузчика, затем 4 входа таблицы разделов по 16 байт каждый, затем специальная "подпись" AA55. Элементы таблицы разделов с типом 5 или F или 85 (в шестнадцатиричной системе) имеют специальное значение: они описывают extended (расширенные) разделы : куски диска, которые разбиты на несколько логических разделов.Т.е. расширенные разделы сами по себе не используются они могут лишь хранить логические разделы. Важно только положение первого сектора расширенного раздела. Этот первый сектор хранит таблицу разделов с четырьмя входами: один используется для логического раздела, другой для еще одного расширенного раздела,а два не используются. Таким образом можно получить цепочку из таблиц разделов, где первая описывает три основных раздела,а каждая следующая один логический раздел и положение следующей таблицы.

Очень важно понимать это: Когда люди делают что то глупое во время разбиения диска, их волнует вопрос - сохранились ли их данные ? Обычно данные остаются на своем месте, исключения составляют сектора, которые перекрываются расширенными таблицами разделов - они теряются на всегда.

Программа sfdisk показывает всю цепочку:

# sfdisk -l -x /dev/hda

Disk /dev/hda: 16 heads, 63 sectors, 33483 cylinders
Units = cylinders of 516096 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start	 End   #cyls   #blocks   Id  System
/dev/hda1		  0+	101	 102-	51376+  83  Linux
/dev/hda2		102	2133	2032   1024128   83  Linux
/dev/hda3	   2134   33482   31349  15799896	5  Extended
/dev/hda4		  0	   -	   0		 0	0  Empty

/dev/hda5	   2134+   6197	4064-  2048224+  83  Linux
	-		   6198   10261	4064   2048256	5  Extended
	-		   2134	2133	   0		 0	0  Empty
	-		   2134	2133	   0		 0	0  Empty

/dev/hda6	   6198+  10261	4064-  2048224+  83  Linux
	-		  10262   16357	6096   3072384	5  Extended
	-		   6198	6197	   0		 0	0  Empty
	-		   6198	6197	   0		 0	0  Empty
...
/dev/hda10	 30581+  33482	2902-  1462576+  83  Linux
	-		  30581   30580	   0		 0	0  Empty
	-		  30581   30580	   0		 0	0  Empty
	-		  30581   30580	   0		 0	0  Empty

#

Во время разбиения диска могут быть созданы плохие таблицы разделов. Многие ядра зацикливаются если какой либо расширенный раздел указывает сам на себя,или на более ранний раздел в цепочке. Также возможно иметь ссылки на два расширенных раздела в одной таблице, т.е. она раздваивается.. (Это например случается когда fdisk не распознает каждую из 5, F, 85 как расширенный раздел, и создает 5 следом за F.) Не одна из стандартных fdisk програм не может справиться с такой ситуацией,вам потребуется очень много времени и сил чтобы пофиксить эту проблему. Ядро Линукс воспринимает такое раздвоение нормально. То есть вы можете иметь две цепи логических разделов. Иногда это полезно - например можно использовать тип 5 (виден DOS) и тип 85(невиден DOS),так что DOS fdisk не "упадет" из за логических разделов за пределами 1024 цилиндра


Next Previous Contents
LSCS Rambler's Top100 Rambler's Top100