Re: BSD disklabels

From
Dmitry Pryanishnikov (2:464/36)
To
Aleksey Cheusov
Date
2006-09-18T23:14:54Z
Area
RU.UNIX.BSD
From: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua>


Привет!

On Thu, 14 Sep 2006, Aleksey Cheusov wrote:
> Кстати говоря, где хранится информация о disklabels?
> Прменительно к HMM, flash-ками, дискетам и т.п.

   disklabels (так же, как и слайсы MBR-типа ака "разделы" в терминах IBM PC)
на всех носителях информации строятся единообразно. См.

 	/usr/include/sys/disklabel.h

Для большинства архитектур

#define LABELSECTOR     1                       /* sector containing label */
#define LABELOFFSET     0                       /* offset of label in sector
 							*/

то есть dislabel начинается с сектора под номером 1 (нумерация секторов ака
LBA идет с нуля). Например, для ad0s4{a,b,c,d} имеем на ad0s4:

00000200  57 45 56 82 05 00 00 00  61 64 30 73 34 00 00 00  |WEV┌....ad0s4...|
----------^^^^^^^^^^^

Смещение 0x200 = 512 - начало сектора LABELSECTOR. "Легко видеть" (c), что
это действительно начало дисковой метки:

#define DISKMAGIC       ((u_int32_t)0x82564557) /* The disk magic number */

struct disklabel {
         u_int32_t d_magic;              /* the magic number */

Sincerely, Dmitry
-- 
Atlantis ISP, System Administrator
e-mail:  dmitry@atlantis.dp.ua
nic-hdl: LYNX-RIPE
--- ifmail v.2.14.os-p7
 * Origin: Atlantis ISP (2:464/36@fidonet)
SEEN-BY: 46/999 50/12 400/520 814 450/1024 463/68 464/0 36 66 100 128 562 999
SEEN-BY: 465/213 550/5068 5000/0 20 26 27 61 94 104 116 130 170 5000 5002/76
SEEN-BY: 5002/5002 5004/75 1111 5005/14 5009/14 5010/77 275 5011/13 5012/46
SEEN-BY: 5013/21 5015/28 5019/31 5020/545 2395 2871 4441 5021/29 5025/3
SEEN-BY: 5027/12 5029/34 5030/1080 1957 5035/38 5045/7 5054/1 4 8 9 11 28 35
SEEN-BY: 5054/36 37 45 63 66 67 70 75 84 85 5055/177 5057/119 5059/9 5062/10
SEEN-BY: 5063/3 5064/7 5070/66 5077/70 5085/13 5090/1029 5095/20 5096/18
SEEN-BY: 6001/10 6090/1
PATH: 464/36 5000/5000 5020/545 5054/1 37