геометрия дисков
SectorsPerTrack 63
TracksPerCylinder 255
BytesPerSector 512
SizeDisk 509083648
Sectors 38
Head 227
по смещению 0Ch - размер раздела в секторах .
что ещё нужно ? :)
остальные поля заполните по уже известным вам формулам , но не используйте .
Cylinders 61
SectorsPerTrack 63
TracksPerCylinder 255
BytesPerSector 512
SizeDisk 509083648
А теперь берем обычные счеты и получаем: 255*63*61*512 = 501742080
Последний сектор будет 979964.
CHS 60 254 63.
61 255 63 ты не получишь.
пользуйтесь LBA адресацией .
пользуйтесь LBA адресацией .
я пишу свою MBR на флешке, мне нужно что бы логический диск начинался не со смещения 3F(63 сектора) CHS 0/1/1 , а с другого смещения, которое будет вычисляться динамически в зависимости от объема нужных мне данных, которые будут храниться в неразмечанной области диска сразу за MBR.
Смещение Длина Описание
00h 1 Признак активности раздела
01h 1 Начало раздела — головка
02h 1 Начало раздела — сектор (биты 0—5), дорожка (биты 6, 7)
03h 1 Начало раздела — дорожка (старшие биты 8, 9 хранятся в байте номера сектора)
04h 1 Код типа раздела
05h 1 Конец раздела — головка
06h 1 Конец раздела — сектор (биты 0—5), дорожка (биты 6, 7)
07h 1 Конец раздела — дорожка (старшие биты 8, 9 хранятся в байте номера сектора)
08h 4 Смещение первого сектора
0Ch 4 Количество секторов раздела
Как мне тогда заполнять поля структуры со смещения 01h-03h и 05h-07h?
Как мне тогда заполнять поля структуры со смещения 01h-03h и 05h-07h?
Перевести LBA в CHS
Перевести LBA в CHS
Надо же как просто, я бы и не догадался. А то, что перед переводом надо знать "геометрию" диска?
по смещению 0Ch - размер раздела в секторах .
что ещё нужно ? :)
остальные поля заполните по уже известным вам формулам , но не используйте .
Уже так и сделал. Спасибо вам ребята за ответы!