disk!consequences of translation
Ti shmainoyn ola ayta; Gia toys xrhstes toy Linux mono ena pragma: prepei na sigoyreytoun oti to LILO kai to fdisk
xrhsimopoioun th swsth gewmetria, opoy «swsth» gia to fdisk
einai h gewmetria poy xrhsimopoieitai kai apo ta alla leitoyrgika ston idio disko, kai gia to LILO ayth poy 8a epitrecei th swsth epikoinwnia me to BIOS kata thn ekkinhsh (synh8ws ayta ta dyo sympiptoyn).
Pws jerei to fdisk
gia th gewmetria; Rwta ton pyrhna, xrhsimopoiwntas to HDIO_GETGEO
ioctl, prin o xrhsths epembei sth gewmetria.
Pws jerei to LILO th gewmetria; Rwta thn pyrhna xrhsimopoiwntas to HDIO_GETGEO
ioctl. Alla o xrhsths mporei na epembei xrhsimopoiwntas thn epilogh `disk=
' sto /etc/lilo.conf
(deite to lilo.conf(5)).
Mporeite na dwsete kai thn linear
epilogh sto LILO, kai 8a apo8hkeusei LBA diey8unseis anti gia CHS ston xarth toy, kai 8a brei th gewmetria kata thn ekkinhsh (xrhsimopoiwntas thn INT 13 Function 8 gia na rwthsei gia th gewmetria).
Pws jerei o pyrhnas ti na apanthsei;
Prwta ap' ola, xrhsths mporei na exei dhlwsei th gewmetria me thn entolh `hda=
cyls,
heads,
secs' ston pyrhna (deite bootparam(7)), isws
xeirokinhta h zhtwntas ton boot loader na dwsei ayth thn parametro ston pyrhna. Gia paradeigma
mporeite na peite sto LILO na dwsei mia tetoia parametro pros8etontas to `append = "hda=
cyls,
heads,
secs"
'
sto /etc/lilo.conf
(deite lilo.conf(5)). Diaforetika o pyrhnas 8a mantecei, pi8anon
xrhsimopoiwntas times poy brhke apo to BIOS h ton disko.
Einai dynaton (apo ton pyrhna 2.1.79) na allajete th gewmetria ston pyrhna xrhsimopoiwntas
to /proc
.
Gia paradeigma
# sfdisk -g /dev/hdc
/dev/hdc: 4441 cylinders, 255 heads, 63 sectors/track
# cd /proc/ide/ide1/hdc
# echo bios_cyl:17418 bios_head:128 bios_sect:32 > settings
# sfdisk -g /dev/hdc
/dev/hdc: 17418 cylinders, 128 heads, 32 sectors/track
#
Merikes fores einai xrhsimo na orisete th gewmetria xrhsimopoiwntas to `hda=
cyls,
heads,
secs' sth grammh entolwn toy pyrhna.
Synh8ws panta xreiazetai secs=63, kai o logos poy to pros8etoyme einai gia na
oristoun oi heads. (Logikes times shmera einai heads=16 kai heads=255.)
Ti 8a prepei na orisoyme gia to cyls? Akribws ton ari8mo poy 8a dwsei th swsth
synolikh xwrhtikothta gia C*H*S tomeis. Gia paradeigma, gia ena disko me 71346240 tomeis (36529274880 bytes) to C ypologizetai ws 71346240/(255*63)=4441 (gia paradeigma
xrhsimopoiwntas ena programma san to bc
), kai h parametros ekkinhshs einai hdc=4441,255,63
. Pws jeroyme thn swsth xwrhtikothta; Gia paradeigma,
# 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
dinei duo tropoys na broume ton synoliko ari8mo tomewn 71346240.
O pyrhnas mas dinei
# dmesg | grep hdc
...
hdc: Maxtor 93652U8, 34837MB w/2048kB Cache, CHS=70780/16/63
hdc: [PTBL] [4441/255/63] hdc1 hdc2 hdc3! hdc4 < hdc5 > ...
poy mas leei gia (toylaxiston) 34837*2048=71346176 kai gia (toylaxiston)
70780*16*63=71346240 tomeis. Se ayth thn periptwsh, h deuterh timh symbainei na einai
swsth, alla genika kai oi duo mporoun na stroggylopoih8oun pros ta katw. Aytos einai
enas kalos tropos na proseggisoyme to mege8os toy diskoy otan to hdparm
den einai
dia8esimo. Pote mhn dinetai polu megalh timh gia to cyls! Sthn periptwsh twn
SCSI diskwn o akribhs ari8mos twn tomewn dinetai kata thn ekkinhsh:
SCSI device sda: hdwr sector= 512 bytes. Sectors= 17755792 [8669 MB] [8.7 GB]
(kai ta MB, GB einai stroggylopoihmena, oxi pros ta katw, kai `dyadika').