Ero sivun ”Levykuva” versioiden välillä
LP (keskustelu | muokkaukset) (→Tyhjän levytilan ongelma: pakkaus lisää virheherkkyyttä) |
|||
Rivi 43: | Rivi 43: | ||
*[[Loop]] | *[[Loop]] | ||
*[[Dd]] | *[[Dd]] | ||
*[[Linuxin asentaminen USB-muistille]] | |||
==Aiheesta muualla== | ==Aiheesta muualla== |
Versio 8. helmikuuta 2009 kello 21.08
Levykuva eli image on tietyn massamuistilaitteen (esimerkiksi kiintolevyn) tai levyosion sisällöstä yksi yhteen luotu ja tiedostoon tallennettu kuva. Kun esimerkiksi cd-levyn sisällöstä luotu levykuva poltetaan toiselle cd:lle, tulee toisen levyn sisällöksi täsmälleen sama kuin ensimmäisen. Jos tiedostot vain kopioitaisiin normaalein menetelmin, jäisivät esimerkiksi monet tiedostojärjestelmään ja mahdolliseen osiorakenteeseen liittyvät tiedot siirtymättä.
Cd- ja dvd-levyistä tehtyjen levykuvien tiedostopäätteenä on yleensä .iso ja levykkeistä ja usb-muisteista tehtyjen .img.
Levykuvan luominen
Levykuvan luominen tapahtuu kopioimalla laitteen laitetiedoston sisältö haluttuun tiedostoon. Esimerkiksi cd- tai dvd-levystä luotaisiin levykuva komennolla
cat /dev/cdrom > image.iso
tai
dd if=/dev/cdrom of=image.iso
Levykuvan liittäminen
Levykuva voidaan liittää kuten mikä tahansa muu tiedostojärjestelmä. Tämä tapahtuu antamalla mount-komennolle loop-määrite sekä levykuvan polku ja haluttu liitospiste, esimerkiksi
mount -o loop image.iso /mnt/levykuva
Irrotus onnistuu komennolla umount, esimerkiksi
umount /mnt/levykuva
Levykuvan liittämisessä käytetään hyväksi loop-laitetiedostoja, joita on rajallinen määrä. Ytimen moduuli loop on oltava ladattuna, jotta laitetiedostot olisivat käytettävissä. Muussa tapauksessa mount tulostaa virheilmoituksen
mount: could not find any device /dev/loop#
Fuseiso
Jos liittäminen halutaan tehdä tavallisen käyttäjän oikeuksilla, voidaan käyttää FUSEa hyödyntävää Fuseiso-ohjelmaa. Liitoskomento on tällöin
fuseiso levykuva liitospiste
ja irrotuskomento
fusermount -u liitospiste
FUSEn käyttö edellyttää, että ytimen moduuli fuse on ladattuna.
Fuseiso löytyy useimpien jakeluiden paketinhallinnasta nimellä fuseiso. Lisätietoja ohjelmien asentamisesta löytyy artikkelista Ohjelmien asentaminen.
Tyhjän levytilan ongelma
Koska massamuistin sisältöä käsitellään raakamuodossa (bitti bitiltä) tulee luotavaan levykuvaan väistämättä mukaan myös levyn sisältämä tyhjä tila, ts. levykuvasta yhtä suuri kuin massamuistin nimelliskoko. Esimerkiksi 512 Mt:n usb-muistista tehty levykuva on aina kooltaan 512 Mt, riippumatta käytettävästä tiedostojärjestelmästä/osioinnista sekä muistin täyttöasteesta. Cd- ja dvd-levyjä tämä ei kuitenkaan koske, sillä niiden tiedostojärjestelmien lopun jälkeinen osa ei näy käyttöjärjestelmälle (vertaa esimerkiksi komennon df näyttämä tilatieto).
Yksi ratkaisu ongelmaan on täyttää massamuistin tyhjä tila nollabitillä ja luoda pakattu levykuva. Nollabitin lisäämisellä päästään eroon poistettujen tiedostojen jäänteistä jotka lisäävät pakatun tiedoston kokoa. Pakkaus kuitenkin lisää virheherkkyyttä (yhden bitin virhe voi tehdä koko kuvasta käyttökelvottoman), joten sitä ei kannata käyttää varmuuskopiointiin ilman täydentäviä toimia.
Massamuistin täyttö nollabitillä:
dd if=/dev/zero of=isotiedosto; rm isotiedosto
Pakatun levykuvan luonti ensimmäisen kiintolevyn ensimmäisesti osiosta (/dev/sda1):
dd if=/dev/sda1 | gzip | dd of=levykuva.img.gz
Levykuvan purku samalle osiolle:
dd if=levykuva.img.gz | zcat | dd of=/dev/sda1
Gzip on yleensä nopeutensa takia Bzip2:ta suositeltavampi pakkausmenetelmä.