BASH Programming - Введение


Вычисление параметров LILO.


Иногда бывает удобно указать какую либо конкретную геометрию указав `hda=cyls,heads,secs' в командной строке ядра. Почти всегда необходимо указывать secs=63, для того чтобы указать heads. (Наиболее удачными значениями на сегодняшний день будут heads=16 и heads=255.) Что необходимо указать для cyls? Это должно быть число соответствующее полной емкости диска в секторах C*H*S. Например для диска с 71346240 секторами (36529274880 байт) С должно быть вычислено как 71346240/(255*63)=4441 (посчитать это можно например с помощью bc) , и заданы следующие параметры hdc=4441,255,63. Как можно узнать полную емкость диска? Например ,

# hdparm -g /dev/hdc | grep sectors geometry = 4441/255/63, sectors = 71346240, start = 0 # hdparm -i /dev/hdc | grep LBAsects CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=71346240

дает два способа нахождения полного числа секторов - 71346240. Нахождение путем просмотра сообщений выдаваемых ядром при загрузке

# dmesg | grep hdc ... hdc: Maxtor 93652U8, 34837MB w/2048kB Cache, CHS=70780/16/63 hdc: [PTBL] [4441/255/63] hdc1 hdc2 hdc3! hdc4 < hdc5 > ...

говорит нам о (как минимум) 34837*2048=71346176 секторах и соотвественно о 70780*16*63=71346240 секторах. В данном случае вторая величина корректна, но в общем то обе могут быть округлены в меньшую сторону. Это хороший способ получить представление о размере диска когда hdparm не доступен. Но некогда не задавайте слишком большое значение для cyls! В случае с SCSI дисками, точное число секторов выдается ядром при загрузке.

SCSI device sda: hdwr sector= 512 bytes. Sectors= 17755792 [8669 MB] [8.7 GB]

(и MB, GB округляются, но никогда в меньшую сторону, и являются `двоичными').



Содержание раздела