CD-Writing-HOWTO Winfried Trümper <winni@xplot.org>, prevedel Andrej Grauf <andrej.grauf@club.win-ini.si> 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 <cutts@cs.unc.edu>. 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 <http://www.shop.de/cgi-bin/winni/lsc.pl>. 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 <http://www.shop.de/~winni/linux/cdr/>. 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: <ftp://tsx-11.mnt.edu/pub/linux/packages/mkisofs/> (mkisofs) <ftp://ftp.ge.ucl.ac.uk/pub/mkhfs> (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: <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/> (cdrecord) <ftp://sunsite.unc.edu/pub/Linux/units/disk-management/> (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: <http://lidar.ssec.wisc.edu/-forrest/> È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 <ftp://ftp.debian.org/pub/debian/bo/source/oth erosfs/mkisofts_1.11-1.diff.gz> 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 <http://www.fh-muenchen.de/home/ze/rz/services/pro jects/xcdroast/e_overview.html> 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 "--<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: * 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: <ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz> <ftp://sunste.unc.edu/pub/Linux/apps/sound/convert/sox-11gamacb3.tar.gz> 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: <http://www-plateau.cs.berkeley.edu/peo ple/chaffe/joliet.html> 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 <erdmann@zpr.ini-koeln.de> priskrbel primer z YAMAHA zapisovalnikom Art Stone <stone@math.ubc.ca> je imel zamisel, da bi zapisal ne-iso9660 datoteène sisteme na CD Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl> opozoril na pravopisne napake Bernhard Gubanka <beg@ipp-garching.mpg.de> opazil potrebo po zadnji verziji programa mount za uporabo povratnih naprav Brian H. Toby izpilil delo Bruce Perens <bruce@pixar.com> posredoval informacije o cdwrite-po¹tnem seznamu Dale Scheetz <dwarf@polaris.net> 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 <gcsnyd@loop.com> preiskusil zapisovanje ext2 CD-ROM-a (glej ,,Ali je mo¾no odpraviti omejitve iso9660?``) Ingo Fischenisch <ingo@mi-uni-koeln.de> priskrbel primer z dvema krmilnikoma, ki gostita dve napravi Janne Himanka <shem@oyt.oulu.fi> opozoril, da je potrebno za branje Joliet CD-jev popraviti jedro Joerg Schilling <schilling@fokus.gmd.de> informacije o cdrecord Jos van Geffen <jos@tnj.phys.tue.ln> opazil problem v 4.9 Markus Dickebohm <m.dickebohm@uni-koeln.de> Pierre Pfister <pp@uplift.fr> pomagal pri razvoju navodila za 1:1 kopije Rick Cochran <rickVmsc.cornell.edu> namig o napaèno-/nepovezano opciji onemogoèeni glede na privzeto vrednost v ncr pogonu Stephan Noy <stnoy@mi.uni-koeln.de> informacije in izku¹nje o zapisovanju glasbenih CD-jev Stephen Harris <sweh@mnp.com> predlagal uporabo okvarjenih CD-jev kot podstavke za pijaèo Volker Kuhlmann <kuhlmav@elec.canterbury.ac.nz> opazil, da paket "cdwrite" ne vsebuje programa mkisofs Konec Linux CD-Writing mini-HOWTO