Naprej Nazaj Vsebina

3. Ko je zažgal svoje CD-je s klasiko, je imperator Neron dejal (64 n.š. popolnoma napak je razumel): "Tudi ko boš gorel in se spreminjal v dim, ne bom nehal igrati."

Ponavadi se zapisovanje na CD-je v Linuxu izvaja v dveh korakih:

Ta dva koraka je s pomočjo cevovoda možno tudi združiti, vendar se zaradi nezanesljivosti to ne uporablja.

3.1 Določevanje, na katero splošno napravo tipa SCSI je priključen zapisovalnik

Opozorilo: trenutna shema za naslavljanje naprav SCSI v Linuxu je po nepotrebnem zapletena in premalo zanesljiva. Dejstvo, da je v tem spisu podrobneje opisana, ne pomeni, da jo odobravam. Ljudje, ki imajo zapisovalnike CD-jev vrste ATAPI, naj za zaznavanje prave naprave preizkusijo "cdrecord -scanbus" in preskočijo nadaljevanje tega poglavja.

Če ste sledili korakom v drugem razdelku, bi moral biti vaš sistem usposobljen za zapisovanje na CD-je. To poglavje lahko uporabite za preverjanje nastavitev, ali vse deluje tako, kot bi moralo.

Uporabite ukaz dmesg. Izpisati bi se morala sporočila jedra Linuxa, vključno s tistimi med zagonom računalnika (omejitev: samo zadnjih 200), ki vsebujejo nekaj informacij o zapisovalnikih CD-jev priključenih na vodila SCSI.

Preprost primer:

  Vendor: YAMAHA MOdel: CDR100    Rev: 1.11
  Type:   WORM                    ANSI SCSI revision: 02
Detected scsi CD-ROM sr1 at scsi0, channel 0, id 3, lun 0
Ta računalnik ima priključene štiri naprave SCSI (tega iz primera ne morete razbrati, zato vam povem) s SCSI ID-ji od 0 do 3. Zapisovalnik je četrta fizično prisotna naprava SCSI in zaradi tega je priključena na /dev/sgd (četrta splošna naprava SCSI se ob štetju začne s črko a). V tem primeru bi z ukazom
cdwrite --eject --device /dev/sgd
odprli pogon in s tem preverili, če je vse pravilno nastavljeno.

Zahtevnejši primer:

scsi0 : AdvanSys SCSI 1.5: ISA (240 CDB)
scsi1 : Adaptec 1542
scsi : 2 hosts.
 Vendor: HP    Model: C4324/C4325    Rev: 1.20
 Type:   CD-ROM                      ANSI SCSI revision: 02
Detected scsi CD-ROM sr0 at scsi0, channel 0, id 2, lun 0

 Vendor: IBM   Model: DPES-31080     Rev: S31Q
 Type:   Direct-Access               ANSI SCSI revision: 02
Detected scsi disc sda at scsi1, channel 0, id 0, lun 0

scsi : detected 1 SCSI cdrom 1 SCSI disk total.
SCSI device sda: hdwr sector= 512 bytes.
V tem primeru dva krmilnika SCSI gostita vsak po eno napravo SCSI. Kakšna potrata (sposobni so gostiti do 7 naprav hkrati). To ni moja nastavitev, zato prenehajte spraševati ali imam res preveč denarja... Kakor koli že, prikazan primer služi svojemu namenu. :-)

V zgornjem primeru ima zapisovalnik CD-jev SCSI-ID 2, vendar je povezan s prvim splošnim SCSI-pogonom /dev/sga, ker je to prva fizično prisotna naprava SCSI, ki jo je Linux zaznal. Upam, da je iz tega primera razvidno, da SCSI-ID naprave nima nobene zveze s povezano splošno napravo.

Odprti ostaneta še dve vprašanji: kaj se zgodi, če izberete napačno napravo? Če niste podali niti stikala "--<MANUFACTURER>" niti zapisali nobenega podatka na napravo, se ponavadi izpiše opozorilno sporočilo, vendar se ne zgodi nič hudega:

bash> cdwrite --eject --device /dev/sgb

Unknown CD-Writer; if this model is compatible with any
suported type, please use the appropriate command line
flag.

Manufacturer:    IBM
Model:           DPES-31080
Revision:        S31Q
V tem primeru je naprava /dev/sbg trdi disk vrste SCSI (IBM-ov).

V primeru da zapišete podatke na napačno napravo, boste prepisali njegovo izvorno vsebino in verjetno nepopravljivo poškodovali sistem. Bodite torej previdni, meni se je to po nesreči že zgodilo.

3.2 Zbiranje programske opreme

Ponavadi to traja dlje, kot bi človek pričakoval. Ne pozabite, da manjkajočih datotek ne morete dodati, ko je CD enkrat zapisan. :-)

Prav tako ne pozabite, da se za shranjevanje informacij datotečnega sistema iso9660 porabi določena količina prostora (ponavadi nekaj MB).

3.3 Shranjevanje podatkov na CD

Izraz iso9660 se nanaša na zapis v katerem so podatki na CD-ju organizirani. Če smo bolj natančni: na CD-ju je datotečni sistem.

Seveda izgled podatkov, shranjenih v tem zapisu, jedro Linuxa prav tako poenoti kot vse ostale datotečne sisteme. Torej, če povežete CD v datotečno strukturo, njegovih datotek ne boste razločili od ostalih (mehanizem za poenotenje izgleda datotek se imenuje navidezni datotečni sistem, na kratko VFS.)

Zmogljivosti datotečnega sistema iso9660 niso tako obsežne kot datotečnega sistema extended-2, ki ga Linux običajno uporablja. Po drugi strani pa lahko CD zapišete samo enkrat in nekatere zmogljivosti tako ali tako nimajo smisla. Omejitve datotečnega sistema iso9660 so:

3.4 Ustvarjanje datotečnega sistema iso9660

Preden lahko določen medij (npr. disketo, trdi disk ali CD) uporabite, mu je treba priskrbeti datotečni sistem (v DOS-u je to opravilo poznano pod imenom formatiranje). Ta datotečni sistem je odgovoren za organizacijo in vgradnjo datotek, ki jih želite shraniti na medij.

Torej, na zapisljiv CD lahko zapišemo samo enkrat in če bi nanj zapisali prazen datotečni sistem, bi ga sicer formatirali - ampak bi ostal za vedno prazen. :-)

Potemtakem rabimo orodje, ki bo med kopiranjem podatkov na CD ustvarilo datotečni sistem. To orodje se imenuje mkisofs. Preprost primer uporabe izgleda nekako takole:

mkisofs -r   -o cd_slika         osebna_zbirka/
             '----------'       '--------------'
                  |                    |
           zapiši izhod na    vzami imenik kot vhod
Stikalo '-r' nastavi dovoljenja vseh datotek tako, da so dostopne vsem in omogoči razširitev RockRidge. To kar vsi uporabniki običajno želimo. Uporaba tega stikala je priporočljiva vse dokler se zavedate, kaj počnete (namig: brez stikaka '-r' bi dobila točka priklopa enako dovoljenje, kot ga ima privatna_zbirka!).

Če uporabljate jedro Linuxa, ki je starejše od različice 2.0.31, boste morali dodati še stikalo '-K', ki odpravi napake v kodi datotečnega sistema. Za to potrebujete popravljeno različico programa mkisofs. To stikalo je enakovredno stikalu '-P' v programu cdwrite. Prosim, da si preberete priročnik programa mkisofs. Uporabnikom novejših razliŘic Linuxa se ni potrebno ukvarjati s temi težavami.

Program mkisofs bo poskušal vse datotečne sisteme prevesti v zapis 8.3, ki ga uporablja DOS in s tem zagotoviti maksimalno možno združljivost. V primeru sporov glede imen (različne datoteke imajo enako ime 8.3), se v imenih datotek uporabijo številke, informacije o izbrani datoteki pa se izpišejo preko STDERR (običajno na zaslon).

BREZ PANIKE:

V Linuxu teh imen datotek 8.3 nikoli ne boste videli, ker Linux uporablja razširitev RockRidge, ki vsebuje izvorne informacije o datotekah (dovoljenja, imena datotek, itd.).
Verjetno ste se vprašali, zakaj se izhod programa mkisofs ne pošlje neposredno na zapisovalno napravo. Za to obstajata dva razloga: Ker časovno usklajevanje zapisovalnika CD-jev predstavlja kritično točko, podatkov ne zapisujemo neposredno iz programa mkisofs (ne pozabite, da Linux ni operacijski sistem, ki deluje v realnem času in so stvari lahko slabo časovno usklajene). Zaradi tega je priporočljivo, da izhod programa mkisofs shranite v ločeno datoteko na trdem disku. Ta datoteka je potem 1:1-slika bodočega CD-ja in se dejansko zapiše na CD s pomočjo orodja cdwrite v drugem koraku.

1:1-slika se shrani v veliki datoteki, torej potrebujete enako količino prostora na disku, kolikor ga zaseda zbrana programska oprema. To pa je slaba stran.

V te namene bi lahko ustvarili dodatno particijo in sliko zapisovali vanjo, namesto v imenik. Jaz bi glasoval proti takšni strategiji, kajti če zapišete na napačno particijo (zaradi tipkarske napake), lahko izgubite celoten sistem Linux. Je pa tudi zapravljen prostor, kajti slika CD-ja predstavlja začasne podatke, ki jih lahko po zapisovanu izbrišete.

3.5 Testiranje slike CD-jev

Linux ima to sposobnost, da v njem lahko priklopite imenike, kot da bi bili diskovne particije. To lastnost lahko s pridom uporabite pri preverjanju, ali je imeniški izgled slike CD-ja dober. Za priklop prej ustvarjene cd_slike v imenik /cdrom, uporabite ukaz

mount -t iso9660 -o ro,loop=/dev/loop0 cd_slika /cdrom
Sedaj lahko preverite, če datoteke v /cdrom - izgledajo natanko tako, kot da bi bile na CD-ju. Za prekinitev povezave slike CD-ja uporabite umount /cdrom. Opozorilo: če niste uporabili stikala '-K' v mkisofs, potem zadnje datoteke na /cdrom mogoče ne bo možno popolnoma prebrati.

Opomba:

Nekatere stare različice programa mount niso sposobne dela s povratnimi napravami. Če imate takšno verzijo, vam svetujem, da nadgradite Linux sistem.

Številni ljudje so že predlagali, da bi v ta spis vnesel tudi informacije, kje dobiti najnovejšo različico programa mount. To vedno odločno zavrnem. Če vaša distribucija Linuxa vsebuje star program mount, javite to kot napako. Če vaše distribucije Linuxa ni mogoče enostavno nadgraditi, javite to kot napako.

V primeru da bi vključil vse informacije, ki so potrebne za odpravo napak slabo zgrajenih distribucij Linuxa, bi bil tale mini-HOWTO mnogo bolj obsežen in težje razumljiv.

3.6 Nasveti o praznih zapisljivih CD-jih

Nemška računalniška revija "c't" v novembrski izdaji 1996 vsebuje seznam nasvetov glede praznih CD-jev:

3.7 Zapisovanje slike CD-ja na CD

Skoraj smo že gotovi. Preden vam povem še zadnji ukaz, naj vas opozorim, da imajo zapisovalniki CD-jev majhne predpomnilnike in zato se prenos podatkov ne sme prekiniti. Če se med procesom zapisovanja slike CD-ja prenos podatkov prekine, bo posledica tega pokvarjen CD.

Da procesa ne bo moglo nič prekiniti, s sistema vrzite vse uporabnike in izklopite mrežni kabel... Da bi to lahko storili, boste morali imeti pravi odnos - preberite Podli operater iz pekla (Bastard operator from hell). ;-)

Ko boste psihično pripravljeni, se oblecite v črna oblačila, pomnožite SCSI-ID zapisovalnika CD-ja z njegovim SCSI-revision in prižgite čimveč sveč. Izgovorite dva verza ASR-FAQ in na koncu vnesite

cdwrite --device /dev/sgd cd_slika
ali
cdrecord -v speed=2 dev=4, 0 cd_slika
odvisno od tega, kateri program želite uporabiti. Seveda morate device nadomestiti s svojo napravo SCSI, na katero je priključen vaš zapisovalnik.

Ne pozabite, da noben zapisovalnik ne more ponovno namestiti laserja in nadaljevati z zapisovanjem na tistem mestu, kjer je bil prekinjen. Zaradi tega se lahko CD pokvari že zaradi močnejših vibracij.

3.8 Če gre kaj narobe...

...


Naprej Nazaj Vsebina