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

Sisällys
Miten Linux ymmärtää kovalevysi partitiot?
Miten saan Linuxin käynnistymään?
Miten liitän levyosion?
Miten Linux ja lilo poistetaan koneesta?
Miten Linux saadaan tunnistamaan yli 64MB muistia?
Miksi lilo antaa virheen?
Miten voin defragmentoida ext2-osion?
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.

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 DOSsista 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 partitioden 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 monimutkaista tiedostojärjestelmää ennen varsinaista käyttöä.

Microsoftin tuotteiden kanssa käytetään yleensä kahta primääristä partitiota (C: asema + "laajennettu osio") ja muutamaa loogista partitiota (D:,E:,...), jotka jaetaan "laajennetusta osiosta". Ohessa esimerkki erään kiintolevyn partitionnista. Levyn kapasiteetti on noin 3 Gigatavua ja partitiointi on selvitetty Linuxin fdisk ohjelman avulla:

# 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 primääripartitioita ja loput kaksi (5 ja 6) ovat loogisia asemia.

  • Kaksi asemaa on varattu Windowsin käyttöön (1 ja 5), kaksi asemaa Linuxille (3 ja 6) ja osio 2 on "laajennettu osio", jolle loogiset asemat on luotu. Tarkista vaikkapa partitioiden alku- ja loppusektorien mukaan...

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

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

  • /dev/hda3 = Linuxin pääpartitio, jolta kone bootataan (n. 970MB)

  • /dev/hda6 = Linuxin swap partitio (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 aseman partitiot nimellää /dev/sda?). Poikkeuksena IDE-väyläisiin CD-ROM asemiin - jotka löytyivä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).

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. Lisäksi tämä tuki mahdollistaa 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.