Kõvaketta kasutamine
Kõvaketta kasutamine
Sisukord
Kõvaketas
Süsteemi põhilise andmekandjana kasutatakse tavaliselt IDE või SCSI kõvaketast. Kõvaketta igapäevasel tarvitamisel paistavad ehk silma vaid seadme suurus ja andmevahetuskiirus. Ketta konfigureerimisel on vaja arvestada mõnede täiendavate mudelit iseloomustavate parameetrite väärtustega; traditsiooniliselt kasutatakse kõvakettal olevate andmete asukoha määramiseks kolme suurust
- sektorite arv raja peal (sector) - üks sektor on i386 masinates kasutatavate kõvaketastel traditsiooniliselt 512 B
- peade arv (head) - piltlikult on see võrdne radade arvuga ühes silindris
- silindrite arv (cylinder) - silindrite arv x peade arv x sektorite arv rajal = kogu seadme (ingl. k. unit) sektorite arv
Nende parameetrite omavahelist seost iseloomustav pilt tuleb üks kord siia :)
Traditsiooniliselt nummerdatakse silindreid, päid ja sektoreid alates nullist.
Tavaliselt pole neil suurustel midagi pistmist ketta füüsiliste sektorite, peade ega silindritega. Kasvõi juba põhjusel, et tegelikult on ketta äärele jäävatel radadel rohkem sektoreid kui keskelpool.
Kõvaketta kasutamiseks tuleb tuuma kompileerida vastav toetus. Olles ühendanud ketta füüsiliselt arvutile külge ning käivitades arvuti sobiva tuumaga peate te nägema dmesgis sarnaseid ridu
ata0: at 0x1f0 irq 14 on atapci0 ata1: at 0x170 irq 15 on atapci0 .. ... ad0: 19595MB [39813/16/63] at ata0-master using UDMA33 ad1: 12416MB [25228/16/63] at ata0-slave using UDMA33 ad2: 1033MB [2100/16/63] at ata1-master using WDMA2 ad3: 1033MB [2100/16/63] at ata1-slave using WDMA2
Näites kasutatakse mõlemat IDE kanalit (ata0, ata1) ning nelja IDE kõvaketast. Näiteks FreeBSD 4.x puhul ketta nimi ad3 viitab teise kanali teisele (3, numeratsioon algab nullist) IDE (ad) kettale. Ketta mudeli nime taga on toodud kantsulgudes ketta füüsilised parameeteid - [silindreid/päid/sektoreid]. Tavaliselt on need kooskõlas ka BIOSi vastavate arvudega.
SCSI kettaid tähistab nimealgus da (direct access).
Igale kõvakettale vastab kaks operatsioonisüsteemi seadet, mille kaudu kettaga suheldakse
- järjestikune - seadme nimi algab reeglina r tähega, näiteks /dev/rad3
- blokk - seadme nimi on nagu vastava järjestikseadme nimi, kuid ilma r täheta näiteks /dev/ad3
Järjestikseadet kasutatakse tavaliselt ketta konfigureerimisel, blokkseadet ketta kasutamisel.
Viilud ja partitsioonid
i386 arhidektuuril saab ühe kõvaketta jagada maksimaalselt neljaks iseseisvaks osaks ehk fdiski partitsiooniks. FreeBSD terminoloogias nimetatakse neid osi viiludeks. Viilude nimed moodustatakse lisades ketta nimele tähe s (slice) ning viilu numbri, näiteks teise IDE kanali esimese ketta esimest viilu tähistatakse nimega ad2s1.
DOSi ja Linuxi puhul moodustatakse failisüsteem fdiski partitsioonile. FreeBSD kasutamisel peab viilu sisse tekitama omakorda iseseisvad osad, mida nimetatakse FreeBSD terminoloogias partitsioonideks ning FreeBSD failisüsteemid moodustatakse neile partitsioonidele. Partitsioone tähistatakse lisades viilu nimele tähe vahemikust a kuni h, näiteks ad3s1a on viilu ad3s1 esimene partitsioon. Ühes viilus saab olla maksimaalselt kaheks partitsiooni, kusjuures traditsiooniliselt kasutatakse partitsioone järgmiselt
- c - kogu viil
- a - esimene partitsioon, sealt toimub algkäivitamine
- b - saal (ingl. k. swap)
- d, e, f, g, h - muud paritsioonid
Füüsiliselt asub viilutatud kõvaketta alguses fdiski partitsiooni- ehk viilutabel ning iga viilu alguses disklabel. Viilu disklabel kirjeldab viilus asuvaid FreeBSD partitsioone.
FreeBSDga saab kõvaketast kasutada kahes rezhiimis:
- pühendatud kõvaketast - kõvaketas markeeritakse FreeBSDle iseloomulikul viisil, mis tähendab, et reeglina teised operatsioonisüsteemid seda kasutada ei saa. See ketas kuulub tervikuna ja ainult FreeBSDga kasutamiseks. Kettal ei ole ühtegi viilu, ainult kuni kaheksa FreeBSD partitsiooni.
- viilutatud kõvaketas - FreeBSD partitsioonid asuvad viilu sees, mõnele teises partitsioonile võib olla installeeritud mõni muu operatsioonisüsteem
Kuna pühendatud ketta puhul viile ei ole, siis esitatakse partitsioonide nimesid lühemalt - ad2a, ad2b jne.
Kõvaketast on lihtsam konfigureerida pühendatuks ja see on eelistatud variant kui teil pole selget põhjust teisiti talitamiseks.
Järgnevas konfigureerime ketta ad2 tööle pühendatud ja ketta ad3 viilutatud rezhiimis.
Kõvaketta viilutamine
Kuivõrd viilule on tarvis hiljem või varem tekitada partitsioonid ja selleks on vaja teada ketta parameetreid, siis on mõtekas need kõigepealt disklabeli konfiguratsioonifaili aluseks faili ad3.dl salvestada
bash# disklabel /dev/ad3 > ad3.dl
Seda faili läheb hiljem vaja. Kui see ei toimi, tasub proovida kirjutada ketta algus nulle täis
bash# dd if=/dev/zero of=/dev/rad3 bs=1k count=1
ning seejärel kirjutada puhas ketta disklabel
bash# disklabel -rw ad3 auto
Viile moodustatakse programmiga Fdisk.
Iga viil va esimene peab algama ja kõik peavad lõppema silindri piiril. Jätkates näidet on kasutataval kettal päid 16 ja sektoreid 63, seega ühte silindrisse mahub 16 x 63 = 1008 sektorit = 504 kB. Fdiski konfiguratsioonifailis tuleb näidata viilu algussektor ning pikkus sektorites, näiteks moodustame kolm viilu ning määrame esimese aktiivseks
- ad3s1 - 200 silindrit ehk 201 600 sektorit ehk 100 800 kB
- ad3s2 - 300 sektorit 302 400 ehk 151 200 kB
- ad3s3 - 1 600 sektorit 1 612 800 ehk 806 400 kB
g c2100 h16 s63 p 1 165 63 201537 p 2 165 201600 302400 p 3 165 504000 1612800 a 1
Esimene viil peab algama ühele rajale mahtuvate sektorite arvu võrra (näites 63) algusest edasi.
Eeldusel, et konfiguratsioon on failis ad3.fdisk andke kõvaketta konfigureerimiseks käsk
bash# fdisk -t -f ad3.fdisk /dev/rad3
võti -t näitab, et sooritate proovi ning kui kõik on õige andke sama käsk ilma võtmeta -t.
Lisaks toodule võib konfiguratsioonifailis kasutada näiteks rida
p 1 0 0 0
mis kustutab esimese viilu.
Kõvakettal olemasolevaid viile saab vaadata samuti programmiga Fdisk. Näiteks vaatame kõvaketta ad3 omadusi
su-2.03# fdisk /dev/rad3 ******* Working on device /dev/rad3 ******* parameters extracted from in-core disklabel are: cylinders=2100 heads=16 sectors/track=63 (1008 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=2100 heads=16 sectors/track=63 (1008 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 165,(FreeBSD/NetBSD/386BSD) start 63, size 201537 (98 Meg), flag 80 (active) beg: cyl 0/ sector 1/ head 1; end: cyl 199/ sector 63/ head 15 The data for partition 2 is: sysid 165,(FreeBSD/NetBSD/386BSD) start 201600, size 302400 (147 Meg), flag 0 beg: cyl 200/ sector 1/ head 0; end: cyl 499/ sector 63/ head 15 The data for partition 3 is: sysid 165,(FreeBSD/NetBSD/386BSD) start 504000, size 1612800 (787 Meg), flag 0 beg: cyl 500/ sector 1/ head 0; end: cyl 51/ sector 63/ head 15 The data for partition 4 is: <UNUSED>
Partitsioonide moodustamine pühendatud kettale
Pühendatud kettale moodustatakse partitsioone programmiga Disklabel kusjuures Fdiski polegi vaja kasutada. Osutub, et partitsiooni suurus on soovitav valida 4096 kordne sektorite arv. Disklabeli konfiguratsioonifailis näitatakse sektorite partitsioonisuurus ja algussektor, näiteks moodustame kettale ad2 kolm partitsiooni, e, f ja g, pikkade nimedega ad2e, ad2f ja ad2g kusjuures kogu kettale viitab nimi ad2c. Moodustame järgmise suurusega partitsioonid:
- e - 409 600 sektorit = 200 MB
- f - 856 064 sektorit = 418 MB
- g - 851 136 sektorit = 425 568 kB
Kõigepealt kirjutame ketta alguse nullidega üle
bash# dd if=/dev/zero of=/dev/rad2 bs=1k count=1
Seejärel kirjutage kettale puhas disklabel
bash# disklabel -rw ad2 auto
Salvestame Disklabeli konfiguratsioonifaili aluse faili ad2.dl
bash# disklabel /dev/rad2 > ad2.dl
Redigeerime disklabeli konfiguratsioonifaili defineerides partitsioonid e, f ja g
# /dev/rad2: type: unknown disk: amnesiac label: fictitious flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 16 sectors/cylinder: 1008 cylinders: 2100 sectors/unit: 2116800 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 2116800 0 unused 0 0 # (Cyl. 0 - 2099) e: 409600 0 4.2BSD 1024 8192 16 f: 409600 409600 4.2BSD 1024 8192 16 g: 1294336 819200 4.2BSD 1024 8192 16
Kirjutame disklabeli
bash# cat /ad2.dl | disklabel -Rr ad2 /dev/stdin
Moodustatud disklabelit saab vaadata selliselt
bash# disklabel /dev/rad2c
Lõpuks tekitame failisüsteemid
bash# newfs /dev/rad2e bash# newfs /dev/rad2f bash# newfs /dev/rad2g
Partitsioonide moodustamine viilule
Viilule moodustatakse partitsioone programmiga Disklabel. Osutub, et partitsiooni suurus on soovitav valida 4096 kordne sektorite arv. Disklabeli konfiguratsioonifailis näitatakse sektorites partitsiooni suurus ja algussektor, näiteks moodustame ketta ad3 teise viilu kolm partitsiooni, e, f ja g, pikkade nimedega ad3s2e, ad3s2f ja ad3s2g kusjuures kogu kettale viitab nimi ad3s2c. Moodustame järgmise suurusega partitsioonid:
* e - 102 400 sektorit = 50 MB * f - 49152 sektorit = 24 MB * g - 147 456 sektorit = 72 MB
Kasutame viilutamise eel salvestatud disklabeli aluse faili ad3.dl, nimetame ta selguse mõttes ümber ad3s2.dl. Aluse sisu võiks olla näiteks selline
# /dev/rad3: type: unknown disk: amnesiac label: flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 16 sectors/cylinder: 1008 cylinders: 2100 sectors/unit: 2116800 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 2116800 0 unused 0 0 # (Cyl. 0 - 2099)
Redigeerime selle vastavaks kõvakettale ja teisele viilule. Vaadake ketta ja teise viilu omadusi programmiga Fdiski: näeme, et teise viilu suurus on 302400 sektorit, mis asuvad 300 silindril. Kõvakettal on 16 pead ja 63 sektorit rajal. Redigeerige saadud Disklabeli konfiguratsioonifail selliseks
# /dev/ad3: type: ESDI disk: ad3s2 label: flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 16 sectors/cylinder: 1008 cylinders: 300 sectors/unit: 302400 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize bps/cpg] c: 302400 0 unused 0 0 # (Cyl. 0 - 2099) e: 102400 0 4.2BSD 1024 8192 16 f: 49152 102400 4.2BSD 1024 8192 16 g: 147456 151522 4.2BSD 1024 8192 16
Viilu disklabeliga tegelemisel on oluline, et type (ESDI või SCSI) ja disk oleksid õiged.
Kirjutame Disklabeli
bash# cat ad3s2.dl | disklabel -Rr ad3s2 /dev/stdin
Moodustame failisüsteemid
bash# newfs /dev/ad3s2e bash# newfs /dev/ad3s2f bash# newfs /dev/ad3s2g
© EENet 2000