.img ei ole niin yksikäsitteinen tiedostopääte kuin vaikka .zip tai .iso, mutta usein se tarkoittaa joko partitiosta tai kokonaisesta levystä tehtyä image-tiedostoa. Mitä ohjeita yrität seurata?
Jos kysymyksessä on kokonaisesta kiintolevystä (tai USB-tikusta, tai vastaavasta) tehty image-tiedosto, silloin sitä voi yleensä käsitellä suoraan varsinaisesti purkamatta sitä. Tällaiseen vapaamuotoiseen image-tiedostojen käyttöön tarvitaan roottivoimaa, eli seuraavat komennot annetaan joko roottina tai sitten niiden eteen pitää laittaa sudo-komento.
Kokolevyn image kannattaa ensin kytkeä ns. looppilaitteeksi:
Koodi:
# losetup -P /dev/loop0 /jossain/tiedosto.img
Tämän jälkeen image-tiedoston osiotaulua voi vilkaista esim. komennolla
Image-tiedoston osiotaulun määrittelemiä "levyosioita" pääsee looppilaitteeksi kytkennän jälkeen käyttämään suoraan siten, että ensimmäinen osio on /dev/loop0p1 ja niin edespäin. Levyosion voi esimerkiksi mountata:
Koodi:
# mkdir /mnt/osio1
# mount /dev/loop0p1 /mnt/osio1
Tämän jälkeen image-tiedoston ensimmäisen osion sisältö on käsiteltävissä /mnt/osio1-hakemistohaaran alla.
Osion tiedostojärjestelmätyypistä sitten riippuu voiko sisältöä muokata suoraan, vai onko vain lukuoperaatiot sallittu (iso9660, squashfs).
Jos sieltä löytyy toinen .img-tiedosto, sen voi vastaavasti kytkeä /dev/loop1:een ja näin kaivautua niin syvälle kuin tarvitaan. Kun tarvittavat muutokset on tehty, mountit ja looppilaite-kytkennät pitää muistaa purkaa vastakkaisessa järjestyksessä kuin ne on tehty:
Koodi:
# umount /mnt/osio1
# rmdir /mnt/osio1 #ei pakollinen, mutta siistimpää näin
# losetup -d /dev/loop0
Jos kysymyksessä on yksittäisestä levyosiosta/tiedostojärjestelmästä tehty image-tiedosto, silloin sen saa käsiteltäväksi helpommin:
Koodi:
# mkdir /mnt/image-tiedosto
# mount -o loop /jossain/tiedosto.img /mnt/image-tiedosto
### ja purkuun riittää vastaavasti...
# umount /mnt/image-tiedosto
# rmdir /mnt/image-tiedosto
Jaa miksi annoin komentorivikomentoja? No, niiden voi olettaa toimivan samalla tavalla suunnilleen kaikissa suht tuoreissa Linux-jakeluissa. GUI-työkalujen kanssa pitäisi tietää mitä jakelua käytät (esim. Ubuntu, Fedora, Arch tms.), tai vähintään mitä työpöytäympäristöä käytät (Gnome, KDE, muu, mikä?).
Boottaavuus voi olla sitten vähän kimurantimpi juttu, etenkin perinteisen BIOS/MBR-tyylin levyissä ja niistä tehdyissä image-tiedostoissa. Niiden kanssa on nimittäin sellainen juttu, että boottitiedot ovat varsinaisten levyosioiden ulkopuolella, eikä niitä voi käsitellä tiedostoina. Tämä tekee boottaavuudesta "näkymättömän" ominaisuuden, jos ei tiedä miten asia pitää tarkistaa (tästä voisi kirjoittaa oman pitkän postauksen tai pari). Tästä seuraa myös se, että pelkästään kopioimalla tiedostot yhdestä levyimagesta toiseen boottaavuus ei tule mukana, vaan se pitää tehdä uuteen imageen erikseen.
UEFI-boottityyli helpottaa tässä aika lailla: sen kanssa on yksiselitteisesti niin, että jos siirrettävällä levyllä tai levyimagella on FAT32-tyyppinen osio josta löytyy tiedosto \EFI\BOOT\BOOTX64.EFI, ko. siirrettävä levy tai levyimage on UEFI:n kannalta boottikelpoinen, ja muuta ei tarvita.
.iso-tiedostoilla on sitten aivan omat kuvionsa boottikelpoisuuden suhteen, ja jos .iso-tiedosto halutaan sellaiseksi että sen voi kirjoittaa USB-tikulle ja bootata sieltäkin, matkaan tulee vielä yksi mutka lisää (ns. isohybrid-tekniikka).