Luku 6. Kovalevy, osiointi, tiedostojärjestelmät

Sisällys
Miten Linux ymmärtää kovalevysi partitiot?
Miten saan Linuxin käynnistymään?
Miten liitän osion tiedostojärjestelmään?
Miten Linux ja lilo poistetaan koneesta?
Miten Linux saadaan tunnistamaan yli 64MB muistia?
Miksi lilo antaa virheen?
Miten voin eheyttää eli defragmentoida ext2-osion?
Miten ext3-tiedostojärjestelmä eroaa ext2:sta?
Kuinka monta virusta on Linuxissa?
Miksi saan signal 11-virheen kääntäessäni ohjelmia?
Miten voin kopioida levyosioita?
Miten käytetään levykkeitä?
Miten käytän CD-asemaa?
Mikä on juuressa oleva proc-hakemisto?
Mitä tiedostojen oikeudet merkitsevät?

Miten Linux ymmärtää kovalevysi partitiot?

Seuraavat alakappaleet koskevat Linuxia lähinnä PC-laitemaailmassa. Historiallista syistä kovalevyjen osiointi PC:ssä on harvinaisen epäselvästi toteutettu, mutta sen kanssa joutuu vain elämään. Muissa ympäristöissä osiointi on yleensä huomattavasti yksinkertaisempaa.

Linuxissa toimivat sekä IDE- että SCSI-liitäntäiset kovalevyt. Ainoana vaatimuksena IDE-levyjen kanssa on se, että koneesi BIOS osaa käyttää koneeseesi asennettuja levyjä ja että ytimessäsi on tuki IDE-asemille. SCSI-levyjä käytettäessä tarvitset myös käyttämäsi tuetun SCSI-ohjaimen ajurit ytimeen.

IDE-liitäntäiset asemat

IDE-liitäntäiset asemat (kiintolevyt ja CD-ROM-asemat) näkyvät järjestelmässäsi erikoisina laitetiedostoina [1] /dev/hd?, missä ?-merkki voi olla esimerkiksi a tai d. Kirjaimet määräytyvät siten, että ensimmäisen IDE-väylän (IDE0) ensimmäinen laite (eli master) on laite /dev/hda ja toinen laite (eli slave) on /dev/hdb. Tästä loogisesti jatkamalla saadaan toisen IDE-väylän (IDE1) ensimmäisen (master) laitteen "tunnisteeksi" /dev/hdc ja niin edelleen.

IDE-levyjen partitiot

Jokaisella kiintolevyllä voi olla useita partitioita eli levyosioita. Partitiot - eli Windowsista tutut C: ja muut asemat - näkyvät Linuxissa myös laitetiedostoina siten, että aseman laitetiedoston perään lisätään partition numero, joka on välillä 1-63. Näistä neljää ensimmäistä numeroa käytetään primääristen partitioiden merkitsemiseen ja muut ovat loogisia partitioita. Näitä laitetiedostoja (esim. /dev/hda2) ei kuitenkaan voida käyttää suoraan tiedostojen käyttämiseen laitetiedostojen erityisominaisuuksista johtuen, vaan kyseiset laitteet pitää liittää (engl. mount) osaksi Linuxin tiedostojärjestelmää ennen varsinaista käyttöä. [2]

Microsoftin tuotteiden kanssa käytetään yleensä kahta ensisijaista osiota (engl. primary partition, C: asema + "laajennettu osio") ja muutamaa loogista osiota (D:,E:,...), jotka jaetaan "laajennetusta osiosta". Ohessa esimerkki erään kiintolevyn osioinnista. Levyn kapasiteetti on noin 3 gigatavua ja osiotiedot on tulostettu Linuxin fdisk-ohjelmalla:

# fdisk /dev/hda

Command (m for help): p

Disk /dev/hda: 128 heads, 63 sectors, 767 cylinders
Units = cylinders of 8064 * 512 bytes

   Device Boot    Start      End   Blocks   Id  System
/dev/hda1             1      254  1024096+   b  Win95 FAT32
/dev/hda2           255      518  1064448    5  Extended
/dev/hda3   *       519      767  1003968   83  Linux native
/dev/hda5           255      508  1024096+   b  Win95 FAT32
/dev/hda6           509      518    40288+  82  Linux swap
        

Kyseisen taulukon avulla voidaan päätellä seuraavaa:

  • Tarkistelun kohteena on IDE0-väylän ensimmäinen laite /dev/hda

  • Levyllä on kaikenkaikkiaan 5 erillistä osiota, joista kolme (1-3) ovat ensisijaisia osioita ja loput kaksi (5 ja 6) ovat loogisia osioita.

  • Kaksi osiota on varattu Windowsin käyttöön (1 ja 5), kaksi Linuxille (3 ja 6) ja osio 2 on "laajennettu osio", jolle loogiset osiot on luotu. Tämän voi tarkistaa vaikkapa osioiden alku- ja loppusektorien perusteella.

  • /dev/hda1 = Windowsin C: -asema (n. 1GB)

  • /dev/hda5 = Windowsin D: -asema (n. 1GB)

  • /dev/hda3 = Linuxin juuriosio, jolta kone käynnistetään (n. 970MB)

  • /dev/hda6 = Linuxin sivutusosio (n. 40 MB)


SCSI-liitäntäiset asemat

SCSI-liitäntäisiä asemia vastaavat laitetiedostot löytyvät myös /dev/ -hakemistosta pienillä eroavaisuuksilla. Kiintolevyt löytyvät nimillä /dev/sd? (esim. /dev/sda) ja vastaavasti niiden osiot nimillä /dev/sda?. Poikkeuksena IDE-väyläisiin romppuasemiin - jotka löytyvät samoilla säännöillä kuin IDE-väyläiset kiintolevyt - SCSI-liitäntäiset CD-ROM-asemat löytyvät eri laitetiedostoina /dev/scd? (esim. /dev/scd0). Nauha-asemat näkyvät laitetiedostoina /dev/st? ja /dev/nst?. Kummatkin viittaavat samaan nauha-asemaan, mutta nst?-laitetiedostoja käytettäessä nauhaa ei kelata alkuun nauhaoperaation lopuksi. Nauhoja ei voi liittää tiedostojärjestelmään, vaan niille voi ottaa esim. varmuuskopioita tar-komennolla antamalla lähde- tai kohdetiedostoksi nauha-aseman laitetiedoston nimen.

Lisäksi ytimessä on tuki yleiselle SCSI-ajurille (SCSI generic support) jonka avulla SCSI-väylän laitteita voidaan käsitellä dynaamisesti laitetiedostojen /dev/sg? avulla. Nämä laitetiedostot mahdollistavat skannereiden, tallentavien CD-asemien ja muiden hieman erikoisempien SCSI-laitteiden käyttämisen Linux-ympäristössä.

[1]

laitetiedostot (eli /dev/ hakemiston tiedostot) ovat Linuxin (ja muiden UNIX-varianttien) ominaisuus, joiden toiminnallisuuden selittäminen vaatisi tarkempaa perehtymistä Linuxin virtuaaliseen tiedostojärjestelmään ja ytimen saloihin. Tähän tarkoitukseen on olemassa kuitenkin omat dokumenttinsa ja koska asiasta ei tarvitse käytön kannalta tietää aivan kaikkea, niin sen selittäminen on jätetty tämän FAQ:n ulkopuolelle.

[2]

Jos haluat käsitellä osioita ohi tiedostojärjestelmän, kuten kopioida koko kovalevysi toiselle samanlaiselle kovalevylle, voit käyttää laitetiedostoja suoraan. Tätä ei kuitenkaan kannata tehdä, jollet ymmärrä täysin varmasti mitä olet tekemässä ja mitä laitetiedostot todella ovat.