18. oktĂłber 2006

Virtuálna CD-ROMka pod Linuxom

Tento krátky tutorial, ako a čím pod Linuxom vytvoriť virtuálnu CD-ROMku (alebo DVD-ROMku, disketovú mechaniku, alebo akékoľvek podobné zariadenie) vznikol dnes, na ICQ, pri rozhovore s mojim kamarátom. A keď riešenie zafungovalo, povedal som si: “Prečo to nepublikovať,” a teraz už píšem tento návod.

Virtuálna CD-ROMka, alebo teda, akékoľvek iné podobné zariadenie, je situácia, kedy potrebujete vložiť obraz akéhokoľvek disku do vášho neexistujúceho zariadenia. (Napríklad, sprístupniť obsah CD-čka, ktoré máte na disku vo formáte ISO.) Samozrejme, zariadenie môžete mať, len sa vám napríklad nechce obraz CDčka napaľovať a tak ho do tej existujúcej CD-ROMky pchať.

No, každopádne, celá táto situácia má jeden háčik: Softvér na virtuálnu CD-ROMku pod Linux nenájdete.

Dôvod: Riešenie tohto problému pozostáva z použitia niekoľkých (minimálne jedného) programov, ktoré sú súčasťou najzákladnejšieho systému.

Čiže…

Ako pripojiť ISO obraz k virtuálnej CD-ROMke?

# mount cdobraz.iso /mnt/cdrom -t iso9660 -o loop=/dev/loop0

Ak príkaz zafungoval, hurá!

Ak chcete vedieť, čo jednotlivé voľby znamenajú, čítajte ďalej. V prípade, že v systéme postrádate loop zariadenie, ajtak čítajte ďalej, dozviete sa.

Pričom, mount je systémová aplikácia, ktorá pripája kadejaké diskové zariadenia, kam sa jej povie. Syntax je mount čo_pripájame kam_pripojiť. Ak Linux trochu lepšie poznáte, zrejme s tým už máte skúsenosti.

V našom prípade pripájame cdobraz.iso, t.j. súbor s takýmto názvom a cestou, do adresára /mnt/cdrom, čo môže byť napríklad aj adresár kde máte CD-ROMku (tú skutočnú) zvyčajne. Ak nepracujete súčasne aj s ňou, môžeme tento adresár využiť. Inak, špecifikujte iný adresár.

Ďalším parametrom príkazu, ktorý voláme je určenie súborového systému, ktorý pripájame voľbou -t a hodnotou iso9660, čo značí, že to bude CD-čko.

A poslednou voľbou je parameter -o (options), kde udávame možnosť loop s hodnotou /dev/loop0. Týmto určujeme, že zariadenie, ktoré pripájame nie je skutočné, ale je potrebné využiť, tzv. loopback device, zariadenie, ktoré vytvára slučku. Namiesto loop0 môžete určit akékoľvek loop zariadenie z vášho priečinka /dev. (Napr. /dev/loop0, /dev/loop1, ... – uistite sa, že máte tieto zariadenia v systéme k dispozícii.)

Čo ak nemám žiadne loop blokové zariadenie (loopback device)?

Ak vám predchádzajúci príkaz vypísal chybu, informujúcu vás o neexistujúcom /dev/loop0, zrejme ste zadali nesprávnu cestu (skontrolujte to, pozrite sa do /dev), alebo takéto zariadenie nemáte a potrebujete si nejaké vytvoriť.

A blokové zariadenie vytvoríte napr. takto:

mknod /dev/loop0 b 7 0

Kde, /dev/loop0 je zariadenie, ktoré vytvárate, parameter b znamená, že vytvárate blokové zariadenie a čísla 7 a 0 sú čosi, čo je v manuále pomenované ako major a minor.

Tieto major a minor sú čísla, kde prvé z nich, major, hovorí kernelu, aký ovládač pre zariadenie má použiť. Minor presnejšie určuje zariadenie.

Ja osobne, som mal už vytvorené loop zariadenia od loop0 až po loop7 a ich major a minor boli 7 a 07. Použitie nasledujúceho major a minor, t.j. 7 a 8, fungovalo. Zariadenia typu loopback teda majú major 7 a minor-om sú očíslované postupne od 0.

Správne vytvorené zariadenie uvidíte pomocou ls -la asi takto:

brw-rw---- 1 root disk 7, 0 okt 15 23:38 loop0

Kde na začiatku riadku vidíte b, ako blokové zariadenie a major a minor (7, 0), cca v strede riadku.

Ták, vyčerpávajúce informácie podané z mojej strany, dúfam, že som sa niekde nepomýlil a dúfam, že som niekomu pomohol.

Ak sa vám tento článok páči, dajte mu svoj hlas na vybrali.sme.sk.

Zdielať:     Poslať na vybrali.sme.sk

Komentáre k článku [5] rozbaliť ↓ zbaliť ↑

  1. skoda ze az teraz si napisal tento clanok.. inak super, akurat minule som maturoval pri mountovani iso :)


    kane77    okt 18, 21:45    #
  2. jo, tak tohle se hodi. na tohle pak staci napsat grafickou aplikaci, a jede to.


    — error414    okt 19, 07:17    #
  3. nuz, myslel som, ze to musi poznat vsetci linuxaci :) btw staci -o loop, netreba uvadzat zariadenie (vid mount(8) )

    dalsie riesenie je cdemu, mountuje aj raw (2352B sektory) image

    a uplne najlepsie riesenie je pridat usera do skupiny fuse a pouzit fuseiso – netreba mat prava a mountuje iso, img, bin, mdf a nrg.


    — disorder    okt 19, 15:23    #
  4. [3] No, myslel som aj ja, ale nakoniec som prisiel na to, ze sa to predsa len moze niekomu zist.

    A co sa tyka fuseiso, o tom som este nepocul a prave dnes sme sa rozpravali ci neexistuje nieco, co vie mountnut aj ine ako iso obrazy. Tak diky za tip.


    faster    okt 19, 18:28    #
  5. [3] dik za tip urcite checkujem…
    [4] nj mas pravdu rozpravali ;) (teda vlastne uz vcera a o nejaku minutku predvcerom…)


    kane77    okt 20, 21:21    #

Komentáre sú uzatvorené

Volám sa Matúš Marcin a mám tento blog.