CD-Writing-HOWTO Winfried Trümper , prevedel Andrej Grauf v2.4.1, 16. december 1997, prevod 17. december 1998 Ta dokument opisuje proces zapisovanja na CD-je v Linuxu. ______________________________________________________________________ Kazalo 1. Uvod 1.1 Jamstvo 1.2 Priporočljivo branje 1.3 Terminologija...Laserje na maksimalno moč...Ogenj! 1.4 Podprti zapisovalniki CD-jev 1.5 Podprte "zmogljivosti" 1.6 Poštni seznami 1.7 Dostopnost 2. Priprava Linuxa na zapisovanje CD-ROM-ov 2.1 Nastavitev strojne opreme 2.2 Opomba glede zapisovanja na CD-je v Linuxu 2.3 Ustvarjanje splošnih naprav 2.4 Omogočanje uporabe splošnih naprav SCSI in 2.5 Izgradnja in namestitev jedra 2.6 Za učinkovanje sprememb ponovno zaženite računalnik 2.7 Ustvarjanje povratnih naprav 2.8 Uporabniška programska oprema za zapisovanje na CD-je 2.8.1 Programi za ukazno vrstico 2.8.2 Grafični uporabniški vmesnik (ni obvezen) 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." 3.1 Določevanje, na katero splošno napravo tipa SCSI je priključen zapisovalnik 3.2 Zbiranje programske opreme 3.3 Shranjevanje podatkov na CD 3.4 Ustvarjanje datotečnega sistema iso9660 3.5 Testiranje slike CD-jev 3.6 Nasveti o praznih zapisljivih CD-jih 3.7 Zapisovanje slike CD-ja na CD 3.8 Če gre kaj narobe... 4. Pogosto zastavljena vprašanja z odgovori 4.1 "Kako občutljiv je proces zapisovanja?" 4.2 Ali razdrobljenost slabo vpliva na pretok?" 4.3 "Ali je možno shraniti sliko CD-ja na UMSDOS datotečni sistem?" 4.4 "Ali je možno odpraviti omejitve iso9660?" 4.5 "Kako brati in zapisovati glasbene CD-je?" 4.6 "Kako po zagonu poiskati naprave vrste SCSI?" 4.7 "Ali je možno narediti 1:1 kopijo CD-ja?" 4.8 "Ali lahko Linux bere CD-je z zapisom Joliet?" 4.9 "Kako lahko berem/povežem CD-ROM-e z zapisovalnikom CD-jev?" 5. Iskanje in odpravljanje problemov 5.1 Ne deluje: v Linuxu 5.2 Ne deluje: v DOS-u in sorodnih operacijskih sistemih 5.3 Napake SCSI med procesom zapisovanja 6. Zasluge ______________________________________________________________________ 1. Uvod Prve izkušnje z zapisovalniki CD-jev sem si pridobil s pomočjo spisa "Linux CD Writer mini-HOWTO", katerega avtor je Matt Cutts . Hvala ti, Matt! Čeprav je bil moj prvotni namen samo posodobitev spisa, sem ga, ko sem spoznal, koliko se je od leta 1994 spremenilo, v celoti ponovno napisal. 1.1. Jamstvo JAZ (Winfried Truemper) NE ZAGOTAVLJAM NOBENE GARANCIJE ZA TA DOKUMENT, VKLJUČNO Z VSEMI VŠTETIMI GARANCIJAMI GLEDE TRŽENJA IN PRIMERNOSTI ZA DOLOČENE NAMENE; V NOBENEM PRIMERU NE ODGOVARJAM ZA POSEBNO, NEPOSREDNO ALI POSLEDIČNO ŠKODO ALI KAKRŠNO KOLI ŠKODO, KI JE NASTALA ZARADI IZGUBE PODATKOV, UPORABNOSTI ALI DOBIČKA ZARADI SKLEPANJA POGODB, ZANEMARJANJA ALI IZVAJANJA DRUGIH KAZNJIVIH DEJANJ, POSREDNO ALI NEPOSREDNO POVEZANIH Z UPORABO TEGA DOKUMENTA. Povedano na kratko: ta dokument berete in uporabljate na lastno odgovornost. 1.2. Priporočljivo branje CD-R FAQ je osnovni spis FAQ o zapisovalnikih kompaktnih diskov (CD- R). Linux CD-ROM HOWTO vsebuje vse, kar mora posameznik vedeti o pogonih CD-ROM v Linuxu. Poleg tega lahko preberete tudi spisa Linux SCSI HOWTO in Linux Kernel HOWTO. 1.3. Terminologija...Laserje na maksimalno moč...Ogenj! CD-ROM je kratica za pomnilnik kompaktnih diskov, ki je namenjen samo branju (Compact Disc Read Only Memory), medij za shranjevanje podatkov, pri katerem se uporablja laser, ki zazna mikroskopsko majhne razjede na srebrni svetlikajoči se površini (to svetlikanje je posledica aluminizirane plasti, ki je nosilec podatkov). Razjede predstavljajo delce informacij (na nek način) in so tako "petites" (op. prev.: majhne), da jih je na disku nekaj milijard. Iz tega sledi, da je CD-medij namenjen masovnemu shranjevanu podatkov. Izraz CD-R pomeni krajši zapis za zapisljiv CD-ROM in se nanaša na CD, ki na površini nima "mikroskopsko majhnih razjed" ... se pravi, da je prazen. Namesto aluminijaste plasti (srebrne) ima CD-R posebno prevleko (obarvano), v katero je mogoče vžgati "mikroskopsko majhne razjede". To naredimo s pomočjo laserja, ki se običajno uporablja samo za zaznavanje razjed, tako da mu povečamo moč. CD-R je namenjen enkratnemu zapisovanju. Nekatera področja lahko izpustite za kasnejše zapisovanje, kar se imenuje večstopenjsko zapisovanje CD-jev. Ta mini-HOWTO opisuje opravila, potrebna za zapisovanje na CD-R. Dobrodošli na krovu, kapitan! 1.4. Podprti zapisovalniki CD-jev Podroben seznam modelov, ki (ne) delujejo učinkovito, lahko najdete na . Ta seznam bo vključen v naslednje verzije tega spisa mini-HOWTO. Večina zapisovalnikov CD-jev SCSI je podprta, novejše verzije programja za zapisovanje pa podpira celo zapisovalnike CD-jev vrste ATAPI. Če vaša strojna oprema ni podprta, lahko Linux vseeno uporabljate za kreiranje slik bodočih CD-jev, vendar boste za njeno zapisovanje morali uporabiti programsko opremo za DOS. To možnost boste izkoristili zato, ker večina programske opreme za DOS ne podpira dolgih imen datotek, ki so na voljo v Linuxu. V tem primeru lahko izpustite razdelke, ki se nanašajo na strojno opremo (deli, ki opisujejo osnovne naprave SCSI in cdwrite/cdrecord). 1.5. Podprte "zmogljivosti" Trenutna programska oprema za zapisovanje CD-jev v Linuxu podpira naslednje osnovne izbire: Izbira cdwrite-2.1 cdrecord-1.7 -------------------------------------------------------- podpora ATAPI ne da večstopenjsko samo delno da zapisovanje RockRidge da (mkisofs) da (mkisofs) El Torito da (mkisofs) da (mkisofs) HFS da (mkhybrid) da (mkhybrid) Joliet da (mkhybrid) da (mkhybrid) RockRidge je razširitev, ki omogoča daljša imena datotek in globljo strukturo imenikov. El Torito se lahko uporablja za tvorjenje zagon­ skih (bootable) CD-jev. Za podrobnosti glede teh opcij si prosim pre­ berite pripadajočo dokumentacijo. HFS omogoča, da CD-ROM bere tudi macintosh, kot da bi bil ta vsebina HFS. Joliet (med drugim) pretvori dolga imena datotek v nekaj variant za Windows (95, NT). Razdelek ,,Uporabniška programska oprema za zapisovanje na CD-je`` navaja, kje je omenjena programska oprema na voljo. 1.6. Poštni seznami Če bi se radi priključili razvojni skupini (z namenom da bi aktivno sodelovali), pošljite elektronsko sporočilo na cdwrite- request@pixar.com v telo sporočila pa vnesite besedo subscribe. 1.7. Dostopnost Zadnja različica tega dokumenta je vedno na voljo na . 2. Priprava Linuxa na zapisovanje CD-ROM-ov Pred novembrom 1997 programska oprema za Linux ni podpirala zapisovalnikov CD-jev vrste ATAPI. To se odraža tudi v trenutni verziji tega spisa, ki se osredotoča na delo z napravami SCSI. Dobra novica je, da je delo z napravami ATAPI veliko lažje in da boste ta HOWTO lahko uporabljali tudi, če ste pozabili na "splošne naprave SCSI". Da bi ugotovili, kako nastaviti naprave ATAPI, uporabite ukaz cdrecord -scanbus. Naslednje različice tega spisa bodo vsebovale več podrobnosti o delu z zapisovalniki CD-jev vrste ATAPI. 2.1. Nastavitev strojne opreme Ugasnite računalnik, ga izklopite in priključite zapisovalnik CD-jev na vodilo SCSI. Prepričajte se, da so vodila SCSI ustrezno zaprta in izberite prost SCSI-ID za zapisovalnik. Če niste popolnoma prepričani, preberite Linux SCSI-HOWTO. V primeru da ste popolnoma brez idej, povprašajte izkušene uporabnike. Ponovno prižgite računalnik in preberite sporočila, ki jih takoj po vključitvi izpiše BIOS SCSI krmilnika. V primeru da ne prepozna vašega zapisovalnika, se vrnite na korak (b). Opaziti bi morali tudi sporočilo z naslednjo obliko :-) 2.2. Opomba glede zapisovanja na CD-je v Linuxu V nasprotju z govoricami jedra Linux ni potrebno ponovno prevajati, da bi lahko zapisovali na CD-je. Čeprav datoteka drivers/scsi/scsi.c, ki je v izvorni kodi jedra, vsebuje vrstice case TYPE_WORM: case TYPE_ROM: SDpnt->writable = 0; to pomeni le, da na CD-je in WORM-e ni možno zapisovati preko stan­ dardnih naprav /dev/sda-/dev/sdh - kar pa je tudi dobro. Namesto s pomočjo teh naprav, se zapisovanje na CD-je vrši preko tako imenovanih splošnih naprav SCSI, ki omogočajo skoraj vse - celo zapisovanje na CD-je. 2.3. Ustvarjanje splošnih naprav V Linux SCSI-HOWTO je o napravah SCSI zapisano: Gonilnik za splošno napravo SCSI nudi vmesnik za pošilajnje ukazov za SCSI vsem napravam SCSI - diskom, trakom, CD-ROM- om, mehanizmom za izmenjavo medijev, itd. Ko govorimo o splošnih napravah kot o vmesnikih, hočemo povedati, da poleg dostopa preko standardnih naprav, nudijo tudi alternativen način za dostop do strojne opreme vrste SCSI. Ta alternativni način je potreben zato, ker so standardne naprave oblikovane tako, da berejo podatkovne bloke z diska, traku ali CD-ROM- a. V primerjavi s tem je uporaba zapisovalnikov CD-jev (ali scannerja) bolj eksotična, npr. potrebno je posredovati ukaze za pozicioniranje laserja. Da bi imeli čisto (in s tem tudi hitro) vgradnjo standardnih naprav, se morajo vse te eksotične operacije izvajati preko splošnih naprav SCSI. Ker lahko preko splošnih naprav s strojno opremo SCSI počnemo skoraj vse, njihov namen ni fiksno določen - prav zaradi tega tudi ime "splošne". Pojdite v imenik /dev in poiščite splošne naprave SCSI; ukaz ls bi moral pokazati sga-sgh: bash> cd /dev bash> ls -l sg* crw------- 1 root sys 21, 0 Jan 1 1970 sga crw------- 1 root sys 21, 1 Jan 1 1970 sgb crw------- 1 root sys 21, 2 Jan 1 1970 sgc crw------- 1 root sys 21, 3 Jan 1 1970 sgd crw------- 1 root sys 21, 4 Jan 1 1970 sge crw------- 1 root sys 21, 5 Jan 1 1970 sgf crw------- 1 root sys 21, 6 Jan 1 1970 sgg crw------- 1 root sys 21, 7 Jan 1 1970 sgh V primeru da teh naprav-datotek nimate, jih lahko ustvarite z uporabo zapisa /dev/MAKEDEV: bash> cd /dev/ bash> ./MAKEDEV sg Sedaj bi se morale naprave-datoteke prikazati. 2.4. Omogočanje uporabe splošnih naprav SCSI in povratnih naprav Jedro Linuxa potrebuje modul, ki mu omogoča upravljanje s splošnimi napravami SCSI. Če ima vaše delujoče jedro to opcijo, bi morala biti navedena v psevdo-datoteki /proc/devices: bash> cat /proc/devices Character devices: 1 mem 2 pty 3 ttyp 4 ttyp 5 cua 7 vcs 21 sg <----- označuje "splošne naprave SCSI" 30 socksys Block devices: 2 fd 7 loop <----- uporabljamo lahko celo povratne naprave 8 sd 11 sr <----- označuje "SCSI CD-ROM" Mogoče boste morali za naložitev modula v jedro uporabiti ukaze insmod sg, insmod loop ali insmod sr_mod. Ko boste to storili, ponovno poskusite. Če eden izmed njih ne uspe izvesti svoje funkcije, boste morali preoblikovati jedro in ga ponovno prevesti. bash> cd /usr/src/linux bash> make config [..] * * Additional Block Devices * Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M [..] * * SCSI support * SCSI support (CONFIG_SCSI) [Y/m/n/?] Y * * SCSI support type (disk, tape, CD-ROM) * SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M [..] ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M Opomba: izpustil sem vsa manj pomembna vprašanja. 2.5. Izgradnja in namestitev jedra V primeru da imate vprašanja, ki se nanašajo na naslov tega razdelka, predlagam, da si preberete Linux Kernel-HOWTO. Nekaj dokumentacije o tem bi morala vsebovati tudi vaša distribucija Linuxa. Namig: Medtem ko prevajate jedro, lahko nadaljujete s točkami od 2.7 do 2.9 2.6. Za učinkovanje sprememb ponovno zaženite računalnik Naj vas ne zgrabi panika, če bo jedro Linuxa hitreje izpisovalo podatke, kot jih boste lahko vi brali; z ukazom dmesg lahko ponovno preberete vsaj inicializacijo naprav SCSI: scsi0 : NCR53c{7, 8}xx (rel 17) scsi : 1 host. scsi0 : target 0 accepting period 100ns offset 8 10.00MHz scsi0 : setting target 0 to period 100ns offset 8 10.00MHz Vendor: FUJITSO Model: M1606S-512 Rev: 6226 Type: Direct-Access ANSI SCSI Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 Vendor: NEC Model: CD-ROM DRIVE:84 Rev: 1.0a Type: CD-ROM ANSI SCSI Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0 scsi : detected 1 SCSI disk total. SCSI device sda: hdrw sector= 512 bytes. Sectors= 2131992 Zgornje vrstice so samo del inicializacijskega sporočila, ki daje informacije o zaznavanju fizično prisotnih naprav SCSI. 2.7. Ustvarjanje povratnih naprav Pojdite v imenik /dev in poiščite povratne naprave. Nič hudega, če teh naprav nimate, je pa priporočljivo (glej ,,Testiranje slike CD- jev``). V primeru da te naprave že obstajajo, bi moral ukaz ls prikazati loop0 - loop7: bash> cd /dev bash> ls -l loop* crw------- 1 root sys 7, 0 Sep 23 17:15 loop0 crw------- 1 root sys 7, 1 Sep 23 17:15 loop1 crw------- 1 root sys 7, 2 Sep 23 17:15 loop2 crw------- 1 root sys 7, 3 Sep 23 17:15 loop3 crw------- 1 root sys 7, 4 Sep 23 17:15 loop4 crw------- 1 root sys 7, 5 Sep 23 17:15 loop5 crw------- 1 root sys 7, 6 Sep 23 17:15 loop6 crw------- 1 root sys 7, 7 Sep 23 17:15 loop7 Če teh naprav-datotek nimate, jih ustvarite z uporabo skripte /dev/MAKEDEV: bash> cd /dev/ bash> ./MAKEDEV loop Zadnji ukaz bo učinkovit le v primeru, da imate v jedro vključen loop- modul (o delu z moduli si preberite v ,,Omogočanje uporabe splošnih naprav SCSI in povratnih naprav``). Če ismod loop ne pomaga, boste morali počakati, da bo novo jedro pravilno nameščeno (glej ,,Izgradnja in namestitev jedra``). 2.8. Uporabniška programska oprema za zapisovanje na CD-je 2.8.1. Programi za ukazno vrstico Za tvorjenje prototipov CD-R-jev je potreben naslednji paket: (mkisofs) (mkhybrid) V odvisnosti od modela vašega zapisovalnika CD-jev (glej ,,Termi­ nologija...Laserje na maksimalno moč...Ogenj!``) je za zapisovanje prototipov CD-R-jev potrebna naslednja programska oprema: (cdrecord) (cdwrite) Prosim, da uporabite najbližji zrcalni strežnik teh dveh strežnikov FTP, ali pa si programe priskrbite na CD-ju. Prepričajte se, da imate program cdwrite različice 2.0 ali novejše. Nobena starejša, še posebej pa ne beta-različica, ne bo pravilno delovala! Ne upoštevajte man strani (starejših) različic programa mkisofts, kjer je navedeno, da potrebujete program cdwrite različice 1.5. Informacije o prenosu programa cdwrite na operacijska sistema Irix in AIX najdete na: Če uporabljate jedro, ki je starejše od različice 2.0.31, boste ver­ jetno ponovno prevedli mkisofts in se tako izognili napaki v kodi datotečnega sistema za Linux. Distribucija Debian nudi popravke za različico 1.05 programa mkisoft (deloval bi tudi za različico 1.11), ki doda stikalo '-K' (glej ,,Ustvarjanje datotečnega sistema iso9660``); dobite jo lahko na Ta popravek je nujen samo v primeru, če želite sliko CD-ja povezati preko povratne naprave (glej ,,Testiranje slike CD-jev``). 2.8.2. Grafični uporabniški vmesnik (ni obvezen) X-CD-Roast je program, zasnovan popolnoma za X, za zapisovanje na CD- je in je naslednik programa cdwtools-0.93. Najdete ga na Trenutna različica programa X-CD-Roast je osnovana na popravljeni različici programa cdwrite-2.0 in zaradi tega vsebuje enake izbire (glej ,,Podprti zapisovalniki CD-jev``). Naslednje različice bodo mogoče osnovane na alternativni programski opremi cdwrite. 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: * zapakiranje želene programske opreme v eno veliko datoteko s pomočjo programa mkisofs/mkhybrid * zapisovanje te velike datoteke na CD-R s pomočjo programa cdwrite ali cdrecord. 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 "--" 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: * dovoljeno je samo 8 stopenj podimenikov (šteto od zgornje stopnje imenikov na CD-ju). Za povečanje tega števila uporabite RockRidge. * maksimalna dolžina imena datotek: 32 znakov * kapaciteta 650 MB 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: * mkisofs ne zna upravljati z zapisovalniki CD-jev (glej razdelek ,,Ustvarjanje splošnih naprav``) * zapisovanje ne bi bilo zanesljivo (glej razdelek ,,Pogosto zastavljena vprašanja z odgovori``). 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: * "no-name" diski so ponavadi slabše kvalitete in jih raje ne uporabljajte * če je zapisljiv CD pokvarjen, to ponavadi velja tudi za celo serijo (če ste jih kupili več naenkrat); mogoče boste imeli srečo in boste lahko uporabljali vsaj prvih 500 MB takšnih CD-jev... * pred zapisovanjem se ne dotikajte svetlikajočih površin 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š zapiso­ valnik. 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... ... 4. Pogosto zastavljena vprašanja z odgovori 4.1. "Kako občutljiv je proces zapisovanja?" Odgovor: To je odvisno od vašega zapisovalnika. Moderni zapisovalniki imajo 1 MB predpomnilnika in lahko zdržijo od 1 do 2 sekundi brez podatkov. Preberite priročnik ali vprašajte proizvajalca, če bi radi izvedeli podrobnosti. Ne glede na velikost predpomnilnika, boste morali zagotoviti konstanten pretok podatkov 300 kB/s ali 600 kB/s na daljše časovno obdobje. Aktivno delovanje diska, kot je npr. posodabljanje lokalne baze podatkov, zmanjša maksimalno stopnjo prenosa, kar bo zagotovo pokvarilo CD; pred zapisovanjem na CD se raje prepričajte, da takšnih procesov med zapisovanjem ne bo sprožil cron, at ali anacron. Po drugi starni pa so nekateri ljudje med prevajanjem jedra brez težav "zapekli" CD. Seveda za takšne poskuse potrebujete hitre računalnike. 4.2. Ali razdrobljenost slabo vpliva na pretok?" Razdrobljenost je ponavadi tako nizka, da ne vpliva na pretok. Če niste prepričani, preglejte sporočila, ki se izpišejo med zagonom Linuxa. Stopnja razdrobljenosti se izpiše med preverjanjem datotečnih sistemov. To vrednost lahko poiščete tudi z uporabo zelo nevarnega ukaza bash> e2fsck -n /dev/sda5 # '-n' je pomemben! [stuff deleted - ignore any errors] /dev/sda5: 73/12288 files (12.3% non-contiguous) V tem primeru se zdi, da je stopnja razdrobljenosti zelo visoka - ven­ dar je na tem datotečnem sistemu (ki se uporablja kot /tmp) samo 73 zelo majhnih datotek, zato ni razloga za preplah. 4.3. "Ali je možno shraniti sliko CD-ja na UMSDOS datotečni sistem?" Da. Edini sistem s katerega zapisovanje na CD-je ni zanesljivo, ker ni dovolj hiter je omrežni datotečni sistem (NFS - network filesystem). Sam za deljenje prostora na disku med Linux-om in DOS/Win na PC-ju (486/66) namenjenemu zapisovanju na CD-je uporabljam UMSDOS. 4.4. "Ali je možno odpraviti omejitve iso9660?" Da. Na CD lahko shranite kateri koli datotečni sistem, vendar CD-ja ne boste mogli uporabljati v nobenem drugem operacijskem sistemu. Tukaj je navodilo: * Ustvarite prazno datoteko velikosti 650MB dd if=/dev/zero of="prazna_datoteka" bs=1024k count=650 * Na tej datoteki ustvarite datotečni sistem extended-2 bash> /sbin/mke2fs prazna_datoteka prazna_datoteka is not a block special device. Proceed anyway? (y, n) y * Povežite to prazno datoteko preko povratnih naprav mount -t ext2 -o loop=/dev/loop1 prazna_datoteka /mnt * Prekopirajte datoteke na /mnt in potem prekinite povezavo (umount) * Na prazna_datoteka (ki ni več prazna) uporabite cdwrite ali cdrecord, kot da bi bila iso9660 slika. Če bi radi naredili vnos v /etc/fstab za takšen CD, onemogočite njegovo preverjanje, npr.: /dev/cdrom /cdrom ext2 defaults, ro 0 0 Prva ničla pomeni "ne vključi ga v odlagališča", druga (=pomembna) pomeni "na začetku ne išči napak" (fsck ne bo iskal napak na CD-ju). 4.5. "Kako brati in zapisovati glasbene CD-je?" Priskrbite si paketa "cdda2wav" in "sox", ki sta na voljo na sunsite in njegovih zrcalnih strežnikih: Program cdda2wav vam omogoča zajetje določenega intervala (ali celega posnetka) z glasbenega CD-ja in ga pretvori v .wav datoteko. Program sox pretvori wav-datoteke nazaj v (audio-CD) cdda-format, da jih je možno s pomočjo programa cdwrite zapisati na CD-R. 4.6. "Kako po zagonu poiskati naprave vrste SCSI?" Datoteka drivers/scsi/scsi.c vsebuje informacije /* * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi * with "0 1 2 3" replaced by your "Host Channel Id Lun". * Consider this feature BETA. * CAUTION: This is not for hotplugging your peripherals. AS * SCSI was not designed for this you could damage your * hardware ! * However perhaps it is legal to switch on an * already connected device. It is perhaps not * guaranteed this device doesn't corruot an ongoing data transfer. */ 4.7. "Ali je možno narediti 1:1 kopijo CD-ja?" Da, vendar se morate zavedati dejstva, da lahko vsaka napaka med branjem originala (zaradi prahu ali prask) povzroči okvaro na kopiji. Prvi primer: imate zapisovalnik CD-jev in ločen pogon CD-ROM. Z uporabo ukaza cdwrite -v -D /dev/sgc --pad -b $(isosize /dev/scd0) /dev/scd0 ali cdrecord -v dev=3, 0 speed=2 -isosize /dev/scd0 berete podatkovni pretok s pogona CD-ROM, ki je priključen kot /dev/scd0 in ga zapisujete neposredno preko /dev/sgc na CD-R. Drugi primer: nimate ločenega pogona CD-ROM. V tem primeru boste za branje CD-ROM-a morali uporabiti zapisovalnik. dd if=/dev/scd0 of=cdimage bs=1c count='isosize /dev/scd0/ Ta ukaz je enakovreden rezultatu mkisofs, torej boste morali nadalje­ vati, kot je opisano v 3. poglavju. Ta metoda ne bo delovala za glas­ bene CD-je! 4.8. "Ali lahko Linux bere CD-je z zapisom Joliet?" Da, vendar boste morali popraviti in ponovno prevesti jedro. Več informacije boste našli na: 4.9. "Kako lahko berem/povežem CD-ROM-e z zapisovalnikom CD-jev?" Prav tako, kot to storite z običajnim pogonom CD-ROM. Tu ni nobenih trikov. Ne pozabite, da je potrebno za branje CD-jev uporabiti naprave scd (SCSI CD-ROM). Primer vnosa za /etc/fstab: /dev/scd0 /cdrom iso9660 ro,user,noauto 0 0 5. Iskanje in odpravljanje problemov 5.1. Ne deluje: v Linuxu Najprej preverite ali zapisvalnik deluje v drugih operacijskih sistemih. Konkretno: * ali krmilnik prepozna zapisovalnik kot SCSI napravo? * ali programska oprema zazna zapisovalnik? * ali je možno "zapeči" CD s priloženo programsko opremo? Če "ne deluje" niti v drugih operacijskih sistemih, imate konflikte z drugo strojno opremo ali okvajeno strojno opremo. 5.2. Ne deluje: v DOS-u in sorodnih operacijskih sistemih Poskusite uporabiti Linux. Namestitev in nastavitev naprav SCSI v DOS- u je pravi pekel. Linux je preveč zapleten? Ha! 5.3. Napake SCSI med procesom zapisovanja Te napake najpogosteje nastanejo zaradi: * manjkajoča napačno-/nepovezano izbira na vodilih SCSI * premalo hlajena strojna oprema * okvara strojne opreme (to bi morali zaznati že v ,,Ne deluje: v Linuxu``) Zaradi različnih okoliščin se naprave SCSI nepravilno povežejo ali prekinejo povezavo z vodili SCSI. Če ta izbira ni na voljo (preverite parametre krmilnika in jedra), lahko pride med procesom zapisovanja do okvar na nekaterih zapisovalnikih. NCR 53c7, 8xx ima glede na privzeto vrednost to izbiro izključeno, zaradi tega jo najprej preverite: NCR53c7, 8xx SCSI support [N/y/m/)] y always negotiate synchronous transfers [N/y/?] (NEW)n allow FAST-SCSI [10MHz] [N/y/?] (NEW)y allow DISCONNECT [N/y/?] (NEW)y 6. Zasluge Andreas Erdmann priskrbel primer z YAMAHA zapisovalnikom Art Stone je imel zamisel, da bi zapisal ne-iso9660 datotečne sisteme na CD Bartosz Maruszewski opozoril na pravopisne napake Bernhard Gubanka opazil potrebo po zadnji verziji programa mount za uporabo povratnih naprav Brian H. Toby izpilil delo Bruce Perens posredoval informacije o cdwrite-poštnem seznamu Dale Scheetz pomagal pri izboljšavi razdelka o ustvarjanju cd slike URL mkhybrid orodja Edwin H. Kribbs posredoval informacijo, da '-K' zahteva popravek v mkisofs Gerald C Snyder preiskusil zapisovanje ext2 CD-ROM-a (glej ,,Ali je možno odpraviti omejitve iso9660?``) Ingo Fischenisch priskrbel primer z dvema krmilnikoma, ki gostita dve napravi Janne Himanka opozoril, da je potrebno za branje Joliet CD-jev popraviti jedro Joerg Schilling informacije o cdrecord Jos van Geffen opazil problem v 4.9 Markus Dickebohm Pierre Pfister pomagal pri razvoju navodila za 1:1 kopije Rick Cochran namig o napačno-/nepovezano opciji onemogočeni glede na privzeto vrednost v ncr pogonu Stephan Noy informacije in izkušnje o zapisovanju glasbenih CD-jev Stephen Harris predlagal uporabo okvarjenih CD-jev kot podstavke za pijačo Volker Kuhlmann opazil, da paket "cdwrite" ne vsebuje programa mkisofs Konec Linux CD-Writing mini-HOWTO