CD-Writing-HOWTO

Winfried Trümper <winni@xpilot.org> v2.9.3, 23. julija 2000, prevod 27. avgusta 2002

Ta dokument opisuje, kako v Linuxu zapišemo CD-ROM.

Kazalo

1 Uvod 3 1.1 Jamstvo ter pogoji razširjanja in uporabe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 Dostopnost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 Priporočljivo branje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Terminologija... Laserji na maksimalno moč... Ogenj! . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 Podprti zapisovalniki plošč CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.6 Podprte možnosti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.7 Poštni seznami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

2 Priprava Linuxa na zapisovanje plošč CD-ROM 8

2.1 Za nestrpne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.1.1 Posebni napotki za zapisovalnike CD na vodilu SCSI . . . . . . . . . . . . . . . . . . . 11 2.1.2 Posebni napotki za zapisovalnike CD na vzporednih vratih . . . . . . . . . . . . . . . 11 2.1.3 Prevajanje manjkajočih modulov jedra (neobvezno) . . . . . . . . . . . . . . . . . . . . 12

2.2 Uporabniški programi za zapisovanje na CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.1 Programi za ukazno vrstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.2 Grafični uporabniški vmesnik (neobvezno) . . . . . . . . . . . . . . . . . . . . . . . . . 13

3 Pisanje CD 14

3.1 Zapisovanje diskov CD-ROM s podatki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3.1.1 Priprava slike diska CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2 Preizkušanje slike plošč CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 Zapisovanje slike plošče CD na CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.4 Zapis glasbenih CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4.1 Zapis glasbenih CD v načinu TAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4.2 Zapis glasbenih CD v načinu DAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

3.5 Mešani glasbeno-podatkovni CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 Dragi Winfried 19

4.1 Kako občutljiv je proces zapisovanja? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 Ali fragmentiranost diska vpliva na hitrost pretoka? . . . . . . . . . . . . . . . . . . . . . . . 19 4.3 Ali je mogoče hraniti slike CD v datotečnem sistemu UMSDOS? . . . . . . . . . . . . . . . . 20 4.4 Ni nobene poti, po kateri bi se obšlo omejitve ISO 9660? . . . . . . . . . . . . . . . . . . . . . 20 4.5 Kako preberem skladbe z glasbenih plošč? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.6 Kako po zagonu poiskati naprave vrste SCSI? . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.7 Ali je mogoče narediti 1:1 kopijo CD? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 4.8 Ali lahko Linux bere CD z zapisom joliet? (odvečno) . . . . . . . . . . . . . . . . . . . . . . . 22 4.9 Kako lahko berem/priklopim CD-ROM z zapisovalnikom CD? . . . . . . . . . . . . . . . . . . 22 4.10 Kako lahko shranim na CD-R še več podatkov? . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4.11 Kako izdelamo CD-ROM, s katerega lahko zaženemo sistem? . . . . . . . . . . . . . . . . . . 23 4.12 Kako lahko na disk CD-ROM pišemo kot na računalniški disk? . . . . . . . . . . . . . . . . . 23 4.13 Je mogoče uporabljati več zapisovalnikov naenkrat? . . . . . . . . . . . . . . . . . . . . . . . 23 4.14 Kaj pa Solaris, *BSD, AIX, HP-UX ipd.? Je moja različica Unixa podprta? . . . . . . . . . . 23 4.15 Kje je najbolje trajno shraniti lokalne nastavitve? . . . . . . . . . . . . . . . . . . . . . . . . . 24 4.16 Kako lahko preberemo podatke o CD? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.17 Kaj pa pisanje prek diskov CD-RW? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.18 Kako lahko dodajamo podatke na disk CD-R? . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.19 Ali naj uporabim krmilnik SCSI, ki sem ga dobil z zapisovalnikom? . . . . . . . . . . . . . . . 26 4.20 Zapisovanje CD po omrežju . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.21 Na koncu vsake skladbe slišim klikanje in prasketanje . . . . . . . . . . . . . . . . . . . . . . . 26 4.22 Kako nastavim, da lahko zapisovalnik uporabljajo tudi navadni uporabniki, ne le skrbnik

sistema? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.23 Kje lahko dobim specifikacije standardov “Yellow Book” in “Orange Book”? . . . . . . . . . . 27 4.24 Kje najdem podatke o zapisovanju Video-CD v Linuxu? . . . . . . . . . . . . . . . . . . . . . 27 4.25 Je laže pripraviti za delo zapisovalnike IDE ali SCSI? . . . . . . . . . . . . . . . . . . . . . . . 27 4.26 Kako lahko spravimo na disk CD več od nazivne zmogljivosti? . . . . . . . . . . . . . . . . . . 27 4.27 Kaj napravi Cdrecord, ko tok podatkov iz cevovoda presahne? . . . . . . . . . . . . . . . . . 27 4.28 Je pri posnemanju ide-scsi kaj enakovrednega izbiri “ignore=hdX”? . . . . . . . . . . . . . . . 28 4.29 Kolikokrat lahko zbrišemo in spet uporabimo diske CD-RW? . . . . . . . . . . . . . . . . . . 28 4.30 Katera oblika zapisa je najboljša, če želimo CD-ROM brati v različnih strojnih okoljih? … 28 4.31 Je mogoče dodajanje skladb na glasbene CD? . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.32 Kakšen računalnik potrebujem za zapisovanje CD? Je stari Pentium dovolj? . . . . . . . . . . 28 5 Iskanje in odpravljanje težav 28

5.1 Ne deluje: v Linuxu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2 Napaka: enota ’dev=0,6,0’ ni dostopna za branje . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.3 Ne deluje: v sistemu DOS in sorodnih operacijskih sistemih . . . . . . . . . . . . . . . . . . . 29

5.4 Napake SCSI med procesom zapisovanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.5 Napake na nosilcu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5.6 Novo zapisanih diskov CD nekateri predvajalniki ne znajo brati . . . . . . . . . . . . . . . . . 30

5.7 Ko sem naložil modul ide-scsi, je nehal delovati skener . . . . . . . . . . . . . . . . . . . . . . 30

6 Zasluge 30

1 Uvod

Mnogi uporabljajo Linux za peko cedejev, ker je to početje z njim zanesljivo in enostavno. Nobenih modrih zaslonov s sporočili o kritičnih napakah, nobenih glavobolov pri usklajevanju strojne in programske opreme. Ko je enkrat sistem postavljen, preprosto deluje. Ta spis razlaga nastavitev, kako zapisati podatke na disk, podaja pa tudi nekaj zanimivih uporab, ki so jih prijazno prispevali bralci.

1.1 Jamstvo ter pogoji razširjanja in uporabe

Copyright Winfried Trümper 1996-2002. Vse pravice pridržane.

Razširjanje in uporaba izvirne ali modificirane različice tega spisa sta dovoljeni pod pogojem, da se ime avtorja ne uporablja za promocijo izdelkov, izvirajočih iz te programske opreme, brez vnaprejšnjega pisnega dovoljenja. Prevodi so dobrodošli in zanje ni treba imeti posebnega dovoljenja.

Avtor z ničimer ne jamči za ta spis, tudi impliciranega jamstva ne daje, denimo za trženje ali primernost za določen namen; v nobenem primeru ni odgovoren za posebno, neposredno ali posledično škodo, ki bi nastala zaradi izgube rabe, podatkov ali dobička, bodisi zaradi pogodbenih obveznosti, zanemarjanja ali drugih kaznivih dejanj, posredno ali neposredno povezanih z uporabo tega dokumenta.

Povedano na kratko: ta dokument berete in uporabljate na lastno odgovornost. Nobenega jamstva z vračilom denarja nimate. Če vas zanima, zakaj se ta dokument lahko razširja pod pogoji šibke licence, ne pa GPL ali podobne, si morate prebrati članek v nemški računalniški reviji c’t, <http://www.heise.de/tp/deutsch/

inhalt/te/8375/1.html> (v nemščini).

1.2 Dostopnost

Kot urednik tega spisa večinoma zbiram in urejam podatke, ki mi jih pošljejo drugi. Nisem ne programer ne izvedenec za strojno opremo, zato se morate za specifične težave s programjem ali železjem obrniti na koga drugega. Vedno pa se je smiselno obrniti name s poročili o rešitvah, ki v spisu še niso opisane.

Vsako leto prejmem več sto e-dopisov, nanašajočih se na ta spis. Zato prosim za nekaj potrpljenja, saj ne morem vedno odgovoriti v nekaj urah. Vendar pa vedno takoj preberem vsa sporočila in vaše postavim v vrsto CDR. Preden mi zastavite vprašanje, prosim, preverite, ali ni že odgovorjeno nanj v zadnji izdaji tega spisa. Ta je vedno dostopna na naslovu <http://wt.xpilot.org/>.

1.3 Priporočljivo branje

Kar zadeva namestitev novega jedra, se obrnite na priročnik za vašo distribucijo Linuxa. Na to se res ne spoznam, kadar gre za distribucije, ki jih ne uporabljam.

CD-R FAQ je splošni spis z vprašanji in odgovori o zapisovanju kompaktnih diskov (CD-R), zapisovalnikih in potrebnem programju. Ker lahko z večino zapisovalnikov CD diske tudi berete, so morda vredni branja tudi Linux CD-ROM HOWTO, Linux SCSI HOWTO in Linux Kernel HOWTO.

1.4 Terminologija... Laserji na maksimalno moč... Ogenj!

CD-ROM je kratica za Compact Disc Read Only Memory, bralni pomnilnik na kompaktnem disku. Laser zazna mikroskopsko majhne vdolbinice na srebrni svetlikajoči se površini. Te vdolbinice predstavljajo bite informacije in so tako drobne, da jih gre na ploščo več milijard. CD je torej hranilnik za obsežne količine podatkov.

Izraz CD-R pomeni krajši zapis za CD-ROM recordable (zapisljivi CD-ROM) in se nanaša na kompaktni disk, ki na površini nima vdolbinic, zatorej je prazen. CD-R ima namesto tega posebno kemično prevleko, v katero lahko laser vžge vdolbinice. To napravimo tako, da laser, s katerim navadno vdolbinice le zaznavamo, nastavimo na nekaj večjo moč, tako da v prevleko vžge vdolbinico. To lahko na prevleki napravimo le enkrat. Lahko pa pustimo na disku nekaj prostora, kamor lahko pozneje še kaj dosnamemo. Takim diskom se po angleško pravi multi-session CD.

Da bi odpravili omejitev enega zapisa na ploščah CD-R, so razvili tehnologijo CD-RW (CD-ROM rewritable, vnovično zapisljivi CD-ROM). Pri teh diskih lahko laser vžge vdolbinice, pa tudi stali jih, tako da je mogoče na disk znova pisati. Slednje je mogoče, ker laser v resnici ne vžiga luknjic v sredstvo. Boljša je primerjava s hokejsko tekmo: z drsanjem po ledeni ploskvi igralci (laser) puščajo na njej raze. Vzorec na ledu (disku) je potemtakem zapis dogajanja v eni četrtini tekme. V odmoru pride rolba Zamboni in zgladi raze v ledu. Vzorec na ledu je tako počiščen in led je pripravljen za novo četrtino. Skupni znanstveni izraz za izhlapevanje, kondenzacijo, taljenje, zmrzovanje ipd. je fazna sprememba (angl. phase change), zato se za naprave CD-RW uporablja tudi izraz "phase change devices".

Ta spis obravnava zapisovanje diskov CD-R in CD-RW. Dobrodošli na krovu, kapitan!

1.5 Podprti zapisovalniki plošč CD

Glede podpore zapisovalnikom na vodilu USB si oglejte Linux USB HOWTO. Sicer pa lahko s precejšnjo gotovostjo domnevate, da večina naprav IDE/ATAPI in SCSI v Linuxu deluje. Večina novejših pogonov je združljivih s standardom MMC in potemtakem podprtih. Če je podprta izvedba SCSI določenega zapisovalnika, potem najverjetneje deluje tudi izvedba IDE/ATAPI, in nasprotno. Ker pa nekatere ljudi prevzameta neizmerna toplina in sreča, če med podprtimi napravami vidijo izrecno naveden njihov model, tu navajamo še seznam naprav, ki jih podpira cdrecord:

     Tabela:  Zapisovalniki CD, podprti v Linuxu

1. Uvod 5

Acer:           CDRW 4432A, CDRW 6206A, CD-R/RW 6X4X32, 8432A
BTC:            BCE 621E (IDE)
Compro:         CW-7502, CW-7502B
Creative:       MK 4211, RW 4224E,
Delta:          OME-W 141
Dysan:          CRW-1622
Elite:          Elite b444.41
Goldstar:       CED-8041B
Grundig:        CDR 100 IPW
Guillemot:      Maxi CD-R 4X/8X
HP:             SureStore 4020i, SureStore 6020i,
                C4324, C4325
                CD-writer+ 7100, 7200i, 7500e, 8100i, 8110i, 8200i Plus,
                           8250i, 9100i, 9110i, 9200e, 9210, 9300i, 9310i
Hi-Val:         CDD 2242, CDD-3610,
Iomega:         ZIPCD 4x650
JVC:            XR-W 2001, XR-W 2010, XR-W 2040, XR-W 2042, XR-RW 2224,
                YR 2626
Kiss:           CDRW (model ni naveden)
Kodak:          PCD 200, PCD 225, PCD 260, PCD 600
Matsushita:     Matsushita je japonsko ime za znamko Panasonic, glej tam
Memorex:        CRW-620, CDR-622, CRW-1622, CRW-2224, CDRW-4420
Microboards:    PlayWrite 2000, PlayWrite 4000 RW, PlayWrite 4001 RW
MicroNet:       MasterCD Plus 4x4, MasterCD Plus 4x6
Mitsubishi:     CDRW-226
Mitsumi:        CR-2401-TS, CR-2600 TE,  CR-2801 TE,
                CR-4801 TE, CR-4802 TE,  CR-4804 TE
Nomai:          680.RW
Olympus:        CDS 615E, CDS 620E
Optima:         DisKovery 650 CD-R
OTI:            CDRW 965, CDRW 975 (Socrates 1.0)
Panasonic:      CW-7285, CW-7502, CW-7503, CW-7582
Philips:        CDD-521/10, CDD-522,
                CDD-2000, CDD-2600, CDD-3600, CDD-3610, CDD 4201
                PCA 267cr, PCA 460 RW, PCRW 404,
                Omniwriter 26, Omniwriter 26A,
                CDRW800
Pinnacle:       RCD-100, RCD-1000, RCD-5020, RCD-5040
Pioneer:        DW-S114X
Plasmon:        CDR 480, CDR 4220, RF-4100, RF-4102, CDR 4400
Plextor:        CDR PX-24 CS, PX-412 C, PX-R412 C
                PX-R 810Ti, PX-R 820T, PX-W 4220Ti, PX-W 8220T, PX-W 8432T
                Plexwriter RW 4/2/20
Procom:         PCDR 4
REC:            820s
Ricoh:          RO-1420C+, MP 1420C, MP 6200S, MP 6201S, MP 7040A, MP-7060A
Samsung:        SW-204
Sanyo:          CRD-R24S
Smart and
Friendly:       CD-RW 226, CD-R 1002, CD-R 1002/PRO, CD-R 1004,
                CD-R 2004, CD-R 2006 PLUS, CD-R 2006 PRO, CD-RW 2224,

                     CD-R 4000, CD-R 4006, CD-R 4012, CD-RW 4424A
                     CD-R 8020, CD-R 8220
     Sony:           CDRX 100E, CDRX 120E, CDRX 140S-RP,
                     CDU 920S, CDU 924, CDU 926S, CDU 928E, CDU 948S
     Taiyo Yuden:    EW-50
     TEAC:           CD-R50S, CD-R55S, CDR-55S, CDR-55K,
                     CDR-56S-400, CD-R56S-600, R56S-614
     Traxdata:       CRW 2260,
                     CDR 4120, CDR 4120 Pro, CDRW 4260, CDRW 4424, CDR 4800
     Turtle Beach:   2040R
     Waitec:         wt 2036, wt 2444ei
     WPI (Wearnes):  CDRW-622, CDR-632P
     Yamaha:         CDR-100, CDR 102, CDR-200, CDR-200t, CDR-200tx
                     CDR-400, CDR-400c, CDR-400t, CDR-400tx, CDR-400Atx
                     CDW-2216E, CRW-2260, CRW-2260t,
                     CRW-4250tx, CRW-4260t, CRW-4260tx, CRW-4261, CRW-4416S,
                     CRW-6416S, CRW-8424E

Podroben seznam modelov, ki delujejo ali ne delujejo z različnimi Unixu podobnimi operacijskimi sistemi,

najdete na <http://www.guug.de:8080/cgi-bin/winni/lsc-orig.pl>.

Če vaša strojna oprema ni podprta, lahko Linux vseeno uporabljate za ustvarjanje slik bodočih plošč CD, vendar boste za zapisovanje morali uporabiti programsko opremo za DOS. Slike diskov je smiselno izdelati v Linuxu, ker večina programske opreme za DOS ne podpira dolgih imen datotek, ki so na voljo v Linuxu.

1.6 Podprte možnosti

Pri pripravljanju diskov imamo opravka z dvema vrstama programov. S prvimi ustvarimo sliko diska, z drugimi pa sliko zapišemo na disk. Slednji podpirajo naslednje možnosti:

     Tabela:  možnosti zapisovalnikov diskov
     Podprta lastnost    cdwrite-2.1     cdrecord-1.6    cdrdao
     ----------------------------------------------------------
     IDE/ATAPI           da              da              da
     Parallel Port       ne              da              da
     CD-RW               ne              da              da
     Audio CD            da              da              da
     Data CD-ROM         da              da              delno
     Multisession        delno           da              ne
     TAO (track at once) da              da              da
     DAO (disk at once)  ne              delno           da
     paketni zapis       ne              ne              ne

Program cdwrite ni več podprt in je naveden samo zaradi popolnosti. Namesto njega uporabite cdrecord, ker podpira širši razpon naprav in ima mnogo več možnosti. Poglavitna prednost rabe programa cdrdao je možnost zapisa glasbenih plošč, pri katerih med zapisi ni dvesekundnega premora. To doseže z zapisom celotnega diska naenkrat (Disk at Once, DAO).

Spodnja orodja so oblikovalniki podatkov, ki podatke pred zapisom uredijo v predpisani obliki.

     Tabela:  možnosti programov za izdelavo slik diskov
     Možnost         mkisofs         mkhybrid        mkvcdfs
     -------------------------------------------------------
     ISO 9660        yes             yes             no
     RockRidge       yes             yes             no
     El Torito       yes             yes             no
     HFS             no              yes             no
     Joliet          yes             yes             no
     Multisession    yes             yes             no
     CD-Extra        yes             yes             no
     Video-CD        no              no              yes

Najočitnejša razlika med datotečnim sistemom ISO 9660 ter datotečnimi sistemi, kot sta ReiserFS ali ext2, je seveda ta, da zapisanih datotek ne morete več spreminjati. Druge omejitve datotečnega sistema ISO 9660 pa zajemajo še:

• 8 ravni podimenikov, šteto od vrhnjega imenika CD

• do 32 znakov dolga imena datotek

• velikost 650 MB

RockRidge je razširitev, ki omogoča daljša imena datotek in globljo strukturo imenikov kot ISO 9660. Ko disk CD-ROM z razširitvami RockRidge preberemo v Linuxu, vidimo vse znane podatke o datotekah, kot so lastnik, skupina, dovoljenja; delujejo tudi simbolne povezave. RockRidge se torej navidez obnaša kot običajen datotečni sistem Unix. Teh razširitev ne podpirajo sistemi DOS in Windows.

El Torito se lahko uporablja za izdelavo zagonskih (bootable) plošč CD. Da ta možnost deluje, jo mora podpirati BIOS računalnika. Grobo rečeno, prvih 1,44 MB (ali 2,88 MB, če BIOS podpira to možnost) na disku vsebuje sliko zagonske diskete. To sliko BIOS obravnava kot disketo in z nje zažene sistem. Slednje posledično tudi pomeni, da do prave diskete (/dev/fd0) morda ne boste mogli.

HFS omogoča, da računalniki Macintosh berejo CD-ROM, kot da bi bil ta disk z datotečnim sistemom HFS (domači datotečni sistem za računalnike Macintosh).

Joliet med drugim prinaša podporo dolgim imenom v nekaterih novejših različicah sistemov Windows (od Windows 95 dalje). Avtorju ni znano nobeno orodje, s katerim bi omogočil dolga imena v sistemih DOS ali Windows 3.11.

Video-CD lahko neposredno predvajamo v predvajalnikih DVD.

Razdelek 2.2 (Uporabniška programska oprema za zapisovanje na plošče CD) navaja, kje je moč dobiti omenjeno programsko opremo.

1.7 Poštni seznami

Če bi se radi priključili razvojni skupini (z namenom, da bi aktivno sodelovali), pošljite elektronsko sporočilo

cdwrite-request@pixar.com, v telo sporočila pa napišite subscribe.

2 Priprava Linuxa na zapisovanje plošč CD-ROM

Ta razdelek se nanaša na naslednje vrste zapisovalnikov CD: SCSI, IDE/ATAPI ter enote, ki se priključijo na tiskalniška vrata. Med pisanjem tega spisa (maj 2000) zapisovalniki na vodilu USB niso bili podprti. Zapisovalniki, ki ne uporabljajo vodila SCSI, potrebujejo posebne gonilnike, s katerimi se predstavljajo kot zapisovalniki SCSI. Po eni strani je taka strategija poenotenja ("vse je SCSI") koristna, ker se na ravni namenskih programov z vsemi zapisovalniki dela enako. Po drugi strani pa zahteva, da znova nastavite nekatere namenske programe kot predvajalnike plošč ali ukaz mount – če ste bili navajeni svoj zapisovalnik ATAPI uporabljati prek datoteke /dev/hdc, bo to treba z aktivacijo združljivosti spremeniti, denimo na

/dev/scd0.

Ko ste uspešno nastavili svoje železje in preostanek sistema Linux, ukaz cdrecord -scanbus prikaže seznam vseh enot na vodilih SCSI. Namen tega razdelka je, da bi vam pomagal pri nastavljanju sistema Linux, tako da boste čim prej zagledali nekaj takega kot:

     shell> cdrecord -scanbus
     Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
     scsibus0:
           0,0,0) 'Quantum ' 'XP34300         ' 'F76D' Disk
           0,1,0) 'SEAGATE ' 'ST11200N        ' '8334' Disk
           0,2,0) *
           0,3,0) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
           0,4,0) 'WANGTEK ' '5150ES SCSI 36  ' 'ESB6' Removable Tape
           0,5,0) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
           0,6,0) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
           0,7,0) *
     scsibus1:
           1,0,0) 'Quantum ' 'XP31070W        ' 'L912' Disk
           1,1,0) *
           1,2,0) *
           1,3,0) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
           1,4,0) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
           1,5,0) *
           1,6,0) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
           1,7,0) *
     Programski izpis:  Zaznavanje naprav na vodilu SCSI.

Zgled, ki ga je prispeval Jörg Schilling, kaže skupaj štiri zapisovalnike SCSI na dveh vodilih. Izbira -scanbus prikaže tudi druge naprave SCSI, kot so enote CD-ROM, diski in tračne enote. Zadnji stolpec prikazuje opis enote SCSI, iz katerega pa ni mogoče zlahka ločiti zapisovalnikov CD od enot CD-ROM, s katerimi lahko le beremo. V oznaki izdelka (srednji stolpec) pa je pogosto kakšen namig (pripone R, -R ali -RW), ki nam pomaga pri prepoznavanju, katera enota je zapisovalnik.

2.1 Za nestrpne

Ta razdelek skuša ponuditi hiter in enostaven opis nastavitve. Res ne pokriva vseh mogočih situacij, kljub temu pa ste vabljeni, da nadaljujete in poskusite. Najprej z ukazom uname -r preverite, katero različico jedra Linuxa poganjate. Rezultat bo verjetno 2.4.nekaj ali 2.2.nekaj (pri čemer je ta drugi nekaj večji od 11). Če uporabljate jedro, starejše od različice 2.0.36, si morate pomagati, kakor veste in znate. Enako velja tudi, če uporabljate katero od razvojnih različic jedra (2.5.nekaj ipd.). Z namestitvijo novega jedra ni nič več dela kot s popravljanjem starega, zato tu ne navajamo nobenih receptov za krpanje napak v jedru.

Spodnji izpis prikazuje nabor ukazov, ki jih potrebujete za začetek. Z ukazi ustvarimo datoteke naprav v imeniku /dev, razen če ti že obstajajo.

     test `whoami` = 'root' || echo "You must be root to execute the commands."
     cd /dev/
     umask -S u=rwx,g=rwx,o-rwx
     [ -f loop0 ] \
         || ./MAKEDEV loop \
         || for i in 0 1 2 3 4 5 6 7; do mknod loop$i b 7 $i; done
     [ -f sg0 -o -f sga ] \
         || ./MAKEDEV sg \
         || for i in 0 1 2 3 4 5 6 7; do mknod sg$i  c 21 $i; done
     Programski izpis:  ustvarjanje datotek naprav

Dostop do strojne opreme se v Linuxu izvaja prek datotek naprav. Preden se torej lotimo česarkoli, moramo preveriti, ali te datoteke obstajajo v imeniku /dev. Resda mi še nihče ni prepričljivo razložil, zakaj to ne gre samodejno, denimo z datotečnim sistemom naprav (devfs). Ta je na voljo že nekaj let in je standardna oprema jeder 2.4. Ponuja varnejši in veliko jasnejši način poimenovanja naprav, tako da se te samodejno pojavijo v imeniku /dev. Nekaj pomembnih ljudi resda trdi, da devfs ni idealna rešitev, vendar ne le, da niso ponudili ničesar boljšega – ponudili niso niti ničesar primerljivega ali vsaj česa, kar bi bilo dostopno in preizkušeno. Začnimo že enkrat uporabljati devfs, da bom lahko zgornji programski izpis izpustil iz tega spisa.

Naslednja pomembna stvar, ki jo moramo preveriti, je, ali je jedro Linuxa opremljeno s potrebnimi gonilniki. Z naslednjimi ukazi v več datotekah preverimo, ali so gonilniki naloženi v jedro. Navadno ukaz cdrecord -scanbus samodejno sproži nalaganje vseh potrebnih gonilnikov v jedro. Če se to ne zgodi, dobimo sporočilo o napaki in modularni gonilnik lahko z ukazom insmod ročno naložimo v jedro.

     test `whoami` = 'root' || echo "You must be root to execute the commands."
     cdrecord -scanbus > /dev/null
     if ! (pidof kerneld || test -f "/proc/sys/kernel/modprobe"); then
         echo "Neither kerneld nor kmod are running to automatically load modules".
     fi
     report_no_autoload() {
         echo "Ensure the module $1 is loaded automatically next time."
     }
     if test ! -f "/proc/scsi/scsi"; then
         report_no_autoload scsi_mod  &&  insmod scsi_mod
     fi
     if ! grep "^........ sg_" /proc/ksyms > /dev/null; then
         report_no_autoload sg  &&  insmod sg
     fi
     if ! grep "^........ sr_" /proc/ksyms > /dev/null; then
         report_no_autoload sr_mod  &&  insmod sr_mod
     fi
     if ! grep "^........ loop_" /proc/ksyms > /dev/null; then

         report_no_autoload loop  &&  insmod loop
     fi
     if ! grep iso9660 /proc/filesystems > /dev/null; then
         report_no_autoload iso9660  &&  insmod iso9660
     fi
     echo "The following is only needed for IDE/ATAPI CD-writers."
     if ! grep ide-scsi /proc/ide/drivers > /dev/null; then
         report_no_autoload ide-scsi  &&  insmod ide-scsi
     fi
     cdrecord -scanbus
     Programski izpis:  Preverjanje gonilnikov

Če ukaz insmod sporoči napako o manjkajočem gonilniku, si, prosimo, preberite naslednje poglavje. Če delujete v terminalskem načinu, boste ob nalaganju gonilnikov videli izpisano vrsto diagnostičnih sporočil. Te lahko v grafičnem okolju (X11, KDE, GNOME) prikličete nazaj z ukazom dmesg.

Dva načina sta, da potrebne module samodejno naložimo v jedro ob zagonu:

• Ustrezen ukaz insmod vnesemo v zagonski skript (rc.local ali ustrezno).

• Poganjamo kerneld ali kmod, ki ju nastavimo v datoteki /etc/modules.conf (pravzaprav je to nastavitvena datoteka za ukaz modprobe, ki ga kliče en ali drug demon)

.

Uporabniki zapisovalnika na vodilu SCSI lahko preostanek tega razdelka preskočijo, ker je ukaz cdrecord najverjetneje že zaznal njihovo strojno opremo. Če je ni, prosim, pošljite avtorju tega spisa elektronsko sporočilo z osnovnimi podatki o vašem sistemu, tako da bo lahko izboljšal razdelek o zapisovalnikih SCSI.

Zdaj pa k uporabnikom, ki uporabljajo zapisovalnike CD na vodilu IDE/ATAPI. Kot smo že omenili v prejšnjem poglavju, morate naložiti združljivostni modul ide-scsi. Vendar pa ima ta gonilnik lahko dostop do zapisovalnika le, če ga že ne uporablja kak drug gonilnik. Z drugimi besedami: svojemu običajnemu gonilniku IDE morate dopovedati, naj zapisovalnika ne prepozna in naj ga pusti pri miru, tako da ga lahko pograbi gonilnik ide-scsi.

     hda = IDE vodilo/vtič 0 master
     hdb = IDE vodilo/vtič 0 slave
     hdc = IDE vodilo/vtič 1 master
     hdd = IDE vodilo/vtič 1 slave
     Tabela:  datoteke naprav za naprave IDE/ATAPI

Zgornja razpredelnica kaže povezavo med imeni datotek naprav in položajem naprav na katerem od vodil IDE. Ime datoteke naprave, ki predstavlja vaš zapisovalnik CD, je treba podati jedru Linuxa, na primer hdb=ide-scsi. Tako nastavitev moramo dodati v datoteki lilo.conf ali chos.conf, če je gonilnik statični del jedra, kar je najpogostejši primer. Če morate podati jedru več kot en parameter, parametre ločite s presledki, tako kot v zgledu za chos spodaj. V programskih izpisih zgleda nastavitev, ki sledita, je prikazano več vrstic, ne le tista, ki jo je treba dodati. Vedite, da so vrstice append- in cmdline- odvisne od jedra, zatorej jih ne dodajajte na začetek datoteke.

     image=/boot/zImage-2.2.14
       label=Linux
       read-only
       append="hdb=ide-scsi"
     Programski izpis:  Zgled nastavitve za LILO (/etc/lilo.conf)
     linux "Linux 2.1.14" {
             image=/boot/zImage-2.0.37
             cmdline= root=/dev/hda5 readonly hdb=ide-scsi
     }
     Programski izpis:  Zgled nastavitve za chos (/etc/chos.conf)

Če gonilnik IDE/ATAPI nalagamo kot modul, nam zgornja dva izpisa nista v pomoč. Namesto tega vključimo vrstico "options"iz naslednjega izpisa. Vključitev zadnjih treh vrstic navadno svetujejo zato, da se nadalje avtomatizira samodejno nalaganje potrebnih modulov.

     options ide-cd ignore=hdb            # tell the ide-cd module to ignore hdb
     alias scd0 sr_mod                    # load sr_mod upon access of scd0
     #pre-install ide-scsi modprobe imm    # uncomment for some ZIP drives only
     pre-install sg     modprobe ide-scsi # load ide-scsi before sg
     pre-install sr_mod modprobe ide-scsi # load ide-scsi before sr_mod
     pre-install ide-scsi modprobe ide-cd # load ide-cd   before ide-scsi
     Programski izpis:  Zgled nastavitve /etc/modules.conf

Če je zapisovalnik CD edina enota CD-ROM v sistemu, vedite, da jo morate zdaj uporabiti prek datoteke naprave /dev/scdx , kjer je x številka od 0 do 7. Verjetno boste želeli tudi simbolno ime cdrom spremeniti tako, da bo kazalo na novo ime naprave. Spodnji programski izpis kaže, kako to izvedemo za napravo scd0.

     cd /dev && rm cdrom && ln -s scd0 cdrom
     Programski izpis:  Nastavitev cdrom kot simbolno ime za scd0

Če sta zapisovalnik CD in enota CD-ROM dve različni napravi, potem pustite simbolno ime cdrom pri miru.

2.1.1 Posebni napotki za zapisovalnike CD na vodilu SCSI

Preverite, ali je BIOS krmilnika SCSI prepozna zapisovalnik. Krmilniki SCSI ob zagonu preiščejo vodilo SCSI in izpišejo vse najdene naprave. Izpis obsega identifikacijsko številko SCSI ID naprave in oznako izdelka. Nobenega smisla nima nadaljevati, če vaš pisalnik ob zagonskem pregledu naprav SCSI ni naveden.

Če načrtujete priklop naprave SCSI prek vzporednih vrat (ne zamenjujte tega s priključitvijo naprav IDE prek vzporednih vrat), potrebujete posebni aktivni kabel in posebni gonilnik za jedro. Več podatkov o takih

sistemih najdete na naslovu <http://www.torque.net/parport/parscsi.html>.

2.1.2 Posebni napotki za zapisovalnike CD na vzporednih vratih

Pisec priznava, da o tem nima pojma, in bralca vljudno vabi, naj obišče stran <http://www.torque.

net/parport/paride.html> ali prebere datoteko /usr/src/linux/Documentation/paride.txt v svojem

računalniku.

2.1.3 Prevajanje manjkajočih modulov jedra (neobvezno)

Ta razdelek lahko preskočite, če je bila vaša strojna oprema pravilno prepoznana in nastavljena, kot je bilo opisano zgoraj.

Jedro Linuxa je lahko opremljeno z gonilniki za različne naprave. Gonilniki so lahko statično naloženi v jedru, lahko pa jih prevedemo tudi kot module, ki se naložijo po potrebi. Zadnji način je priporočljiv za gonilnike, ki niso nujno potrebni ob zagonu sistema, ker bo tako jedro manjše in se bo hitreje naložilo. Pri gonilnikih za naprave, ki so nujno potrebne za zagon sistema, izbire nimamo, temveč jih moramo vključiti v jedro. Če imamo sistem naložen na disku IDE, je gonilnik IDE zgled za tak gonilnik – vključiti ga moramo neposredno v jedro in ne kot modul, sicer se sistem ne bo pravilno zagnal.

Poznamo tri različne vrste zapisovalnikov CD: take na vodilu SCSI, na vodilu IDE/ATAPI in zunanje naprave, ki jih priključimo na vzporedna vrata. Spodnja tabela kaže, kako nastaviti jedro Linuxa za vsako od treh navedenih vrst. Prvi stolpec tabele podaja razdelek na nastavitvenem menuju jedra, kjer lahko najdemo nastavitev. Drugi stolpec navaja kratek opis, prav tako pobran z nastavitvenega menuja. V tretjem stolpcu najdemo ime modula. Zadnji trije stolpci navajajo, kateri moduli so potrebni za katero vrsto vodila: SCSI, IDE in PP (parallel port, vzporedna vrata).

     Razd.  Opis                        Modul    SCSI  IDE   PP
     ------------------------------------------------------------
     BLOCK  Enhanced IDE/MFM/RLL...                     Y
     BLOCK  IDE/ATAPI CDROM             ide-cd          M
     BLOCK  SCSI emulation support      ide-scsi        M
     BLOCK  Loopback device             loop       M    M     M
     PARIDE Parallel port IDE device    paride               Y/M
     PARIDE Parallel port ATAPI CD-ROMs                       M
     PARIDE Parallel port generic ATAPI                       M
     PARIDE (select a low-level driver)                       Y
     SCSI   SCSI support                scsi_mod  Y/M  Y/M
     SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M
     SCSI     Enable vendor-specific               Y    Y
     SCSI   SCSI generic support        sg        Y/M  Y/M
     SCSI   (select a low-level driver)            Y
     FS     ISO 9660 CDROM filesystem   iso9660   Y/M  Y/M   Y/M
     FS     Microsoft Joliet cdrom...   joliet     Y    Y     Y
     Tabela:  izbira gonilnikov za različne vrste zapisovalnikov

Oznaka Y pomeni, da moramo gonilnik vključiti kot del jedra, M pa, da ga moramo prevesti kot modul. Pri oznaki Y/M imamo na izbiro, ali gonilnik vključimo neposredno v jedro ali pa kot modul. Če ni navedeno nič, to pomeni, da te izbire ni treba spreminjati. Veliko večje so možnosti, da bo ob vnovičnem zagonu vse še naprej delovalo, če jih v tem primeru tudi res ne spreminjamo. Posebej v mešanih okoljih (IDE/SCSI) je pametno, če prevedemo čim več gonilnikov kot module.

Prevajanje povratnozančne naprave (loopback device) ni obvezno, vendar pa nam omogoča preizkušanje slike CD, preden jo zapišemo na ploščo. Če želimo brati CD, moramo vključiti podporo datotečnemu sistemu ISO 9660. Ta že vključuje razširitve Rock Ridge, podporo razširitvam, ki jih prinaša Microsoftov zapis Joliet, pa moramo izrecno dodati. V vsakem primeru pa potrebujemo nizkonivojski gonilnik za našo vrsto strojne opreme. To je gonilnik, ki občuje neposredno z izbrano napravo. Za gonilnike na vodilu SCSI in vzporednih vratih imamo na voljo široko paleto gonilnikov.

Nameščanje tako prevedenega jedra Linuxa presega zastavljeni okvir tega spisa, zato se za podrobnosti obrnite na dokumentacijo za vašo distribucijo Linuxa.

Uporabniki sistemov Red Hat Linux morajo poleg navedenega vključiti še podporo za "Ramdisk support"in "Initial ramdisk", poleg tega pa morajo z ukazom mkintrd –preload ide-cd initrd-2.2.16.img 2.2.16ustvariti nov pomnilniški disk z novimi moduli.

2.2 Uporabniški programi za zapisovanje na CD

Podrobnejši pregled orodij za izdelavo diskov CD je na voljo na naslovu <http://www.fokus.gmd.de/

research/cc/glone/employees/joerg.schilling/private/cdb.html>.

2.2.1 Programi za ukazno vrstico

Za pripravo slik CD-R je potreben eden od naslednjih paketov:

        <ftp://tsx-11.mnt.edu/pub/linux/packages/mkisofs/> (mkisofs) <ftp://ftp.ge.ucl.
     ac.uk/pub/mkhfs> (mkhybrid)

Za zapisovanje slik CD-R na diske pa boste potrebovali enega od naslednjih programov:

        <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/> (cdrecord) <http://www.ping.de/
     sites/daneb/cdrdao.html> (cdrdao)
        <http://www.munich-vision.de/vcd/> (mkvcdfs)

Ne verjemite navodilom za starejše izdaje programa mkisofs, ki trdijo, da morate uporabljati izdajo 1.5 programa cdwrite. Namesto tega raje uporabite cdrecord. Novejše različice programa cdrecord vsebujejo poleg tega še izboljšano izdajo programa mkisofs in nekaj dodatnih orodij v podimeniku misc/ (readcd, isosize...), ki jih ne najdete nikjer drugje.

2.2.2 Grafični uporabniški vmesnik (neobvezno)

Navedeni grafični uporabni vmesniki so čelni programi – za delovanje poleg njih potrebujemo še prej navedene programe, ki jih poganjamo iz ukazne vrstice.

X-CD-Roast je program za Linux, ki poenostavlja pripravo plošč CD in ponuja enovit vmesnik tako za pripravo slik CD (mkisofs) kot za zapis le-teh na disk (cdrecord).

        <http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.
     html>

BurnIT je javanski čelni program za cdrecord, mkisofs and cdda2wav, kar je vse, kar potrebujemo za pripravo CD v okolju Unix. Dostopen je na naslovu:

        <http://sunsite.auc.dk/BurnIT/>

CD-Tux je terminalski čelni program za programa mkisofs in cdrecord. Z uporabo (ne)slavne knjižnice ncurses ustvarja enostavno okolje, v katerem lahko počnemo s CD skoraj vse, in to v barvah. Pri vsem skupaj je koda prevedenega programa manjša od 75 KB.

        <http://www.datadictator.co.za/cdtux/>

3 Pisanje CD

»Še ko goriš, izginjaš v dim, piščalke te ne odložim.« (rimski cesar Neron, 64 n. št., o zažiganju svojih klasičnih cedejev. Popolnoma napak je razumel in požgal Rim do tal.)

Zapisovanje na diske CD se v Linuxu ponavadi izvaja v dveh korakih:

• zbiranje želenih podatkov (datoteke, glasba ali oboje) in zapis slike diska v posebni obliki

• zapisovanje slike diska na CD-R s programom cdrecord

V tem poglavju nekoliko podrobneje opisujemo ta dva koraka za pripravo podatkovnih in glasbenih cedejev.

3.1 Zapisovanje diskov CD-ROM s podatki

Priprava podatkov za zapis na CD navadno traja dlje, kot si predstavljamo. Vedeti moramo, da datotek ne moremo dodajati na CD-ROM, ko je ta enkrat zapisan in zaprt. Enako velja za diske CD-RW, ki jih za zdaj lahko samo v celoti prepišemo. Uporaba večkratnega zapisa je za posamične datoteke preveč potratna, ker moramo vsakič na novo zapisati še celoten imenik datotek na disku (TOC). Datotečni zapis UDF za Linux pa je za zdaj še v preizkusni fazi.

Pomnite tudi, da je določeni del diska (navadno nekaj MB) uporabljen za shranjevanje informacij datotečnega sistema ISO 9660. Gotovi pa smo lahko, da na disk CD-R velikosti 650 MB shranimo 620 MB svojih podatkov.

3.1.1 Priprava slike diska CD-ROM

Preden lahko na kakršenkoli pomnilniški nosilec (disketa, disk ali CD) zapišemo svoje podatke, moramo na njem ustvariti datotečni sistem. V terminologiji MS-DOS se je temu postopku reklo tudi formatiranje diska. Datotečni sistem je način organizacije podatkov na nosilcu, ki ga uporablja operacijski sistem za zapis in branje podatkov.

Navadno programi za ustvarjanje datotečnega sistema ustvarijo prazen datotečni sistem na prostem razdelku na disku, tega z ukazom mount priklopimo v korenski datotečni sistem, potem pa uporabniki po potrebi na njem ustvarjajo svoje datoteke. Z diski CD-R ne gre tako. Na tak disk lahko podatke zapišemo samo enkrat. Če bi takrat zapisali prazen datotečni sistem, bi disk ostal prazen za vedno. Podobno velja tudi za diske CD-RW – na disku ne moremo spremeniti vsebine poljubnega sektorja, temveč lahko le ves disk zbrišemo in spet zapišemo.

Kar potrebujemo, je orodje, ki hkrati ob prepisu datotek na CD ustvari še datotečni sistem. Orodju se pravi mkisofs. Uporabljamo ga, kakor kaže zgled:

     mkisofs -r   -o slika_cd         osebna_zbirka/
                  \----------/       \--------------/
                       |                    |
                  kam gre izhod     odkod beremo vhod

Stikalo -r nastavi dovoljenja vseh datotek tako, da so dostopne vsem, in vklopi razširitev Rock Ridge. Za veliko večino uporabnikov je to natančno tisto, kar želijo; izpustite jo le, če res dobro veste, zakaj tako ravnate (namig: brez izbire -r obdrži priklopna točna lastnika in zaščito imenika osebna_zbirka).

Program mkisofs bo poskušal vsa imena datotek prevesti v zapis 8.3 (osem znakov imena in trije znaki pripone), ki ga uporablja DOS, in s tem zagotoviti kar največjo mogočo združljivost. V primeru sporov glede imen (različne datoteke z enakimi imeni 8.3), se v imenih datotek uporabijo številke, informacije o sporni datoteki pa se izpišejo na standardni izhod za napake (navadno na zaslon). Samo brez panike! V Linuxu s čudnimi imeni 8.3 tako ali tako nikoli ne boste imeli opravka, ker Linux uporablja razširitve Rock Ridge, s katerimi povrne izvirne podatke o datoteki (dovoljenja, ime datoteke itd.).

Če želite ustvariti disk z dolgimi imeni datotek, berljiv v okolju MS

Windows, uporabite izbiro -J (razširitve MS Joliet) ali pa ukaz mkhybrid. Za pripravo diskov v Macintoshevem zapisu HFS pa raje podrobneje preučite navodila za večjega brata programa mkisofs, program

mkhybrid.

Verjetno ste se vprašali, zakaj se izhod programa mkisofs ne pošlje neposredno zapisovalni napravi. Za to so vsaj trije razlogi:

• Program mkisofs ne zna upravljati zapisovalnikov CD.

• Sliko diska lahko na ta način preizkusimo, preden jo zares zapišemo.

• Na starejših in počasnejših računalnikih tako zapisovanje ne bi bilo zanesljivo.

Na voljo je tudi način, da disk CD-R zapišemo v eni potezi. Predstavili ga bomo pozneje.

Za zapis diskov CD bi lahko tudi ustvarili dodaten razdelek na disku in sliko zapisovali nanj. Tako strategijo močno odsvetujemo, saj lahko drobna tipkarska napaka pri tipkanju imena razdelka pomeni, da izgubite vse podatke na disku (primer ni izmišljen, avtor govori iz lastnih izkušenj). Poleg tega je to tudi zapravljanje prostora na disku, saj slika diska CD predstavlja zgolj začasne podatke in jo lahko zbrišemo, brž ko smo zapisali (in preizkusili) disk CD. Edina prednost uporabe ločenega razdelka je majhen prihranek časa, ki ga potrebujemo za brisanje 650 MB dolge datoteke.

3.2 Preizkušanje slike plošč CD

V Linuxu lahko tudi posamezne datoteke “priklopimo” tako, kakor da bi bile razdelki na disku. To lastnost lahko s pridom uporabimo pri preverjanju slike CD. Čeprav so zapisljivi diski CD dandanes nemarno poceni, pa zapis diska vseeno vzame nekaj časa. Ta čas si s kratkim preizkusom lahko prihranimo.

Prej ustvarjeno datoteko slika_cd priklopimo v imenik /mnt/cdrom z ukazom

     mount -t iso9660 -o ro,loop=/dev/loop0 slika_cd /mnt/cdrom

Zdaj lahko preverite datoteke v imeniku /mnt/cdrom – videti so natanko tako, kakor da bi bile na disku CD. Sliko diska odklopimo z ukazom umount /mnt/cdrom. (Opozorilo: v starih izdajah jedra Linuxa – 2.0.31 ali starejše – morda ne boste mogli do zadnje datoteke v imeniku /mnt/cdrom. V tem primeru nadgradite jedro - v izdajah od 2.0.36 naprej ni opisa težav. Izbira -pad programa cdrecord se nanaša samo na glasbene CD, izbrani -pad v programu mkisofs pa zahteva krpanje le-tega, s tem pa je prav toliko dela kakor z zamenjavo jedra z novejšo izdajo.)

Opomba:

Nekatere res stare izdaje programa mount ne znajo delati s povratnozančnimi napravami. Če imate take težave, vam svetujem, da nadgradite sistem Linux. Dobil sem že veliko predlogov, naj v ta spis vnesem tudi informacije, kje dobiti najnovejšo različico programa mount. To vedno odločno zavrnem. Če je v vaši distribuciji Linuxa star program mount, spročite to kot napako. Če vaše distribucije Linuxa ni mogoče enostavno nadgraditi, sporočite to kot napako.

Če bi vključil vse informacije, ki so potrebne za odpravo napak slabo zgrajenih distribucij Linuxa, bi bil ta spis dosti obsežnejši in teže razumljiv.

3.3 Zapisovanje slike plošče CD na CD

Ta razdelek pokriva le zapis podatkov na disk CD v načinu TAO (track at once, ena steza naenkrat), kar je najpogostejši način zapisa podatkov. Za podrobnejši opis razlike med zapisoma TAO in DAO (disk at once, ves disk naenkrat) si oglejte poglavje o zapisu glasbenih CD. Če

uporabljate način DAO z orodjem, kot je cdrdao, dodajte prazno glasbeno “stezo” na konec imenika TOC (podrobnosti so v datoteki README).

Skoraj smo že gotovi. Če ukaza niste poskusili že prej, je zdaj pravšnji trenutek za ukaz

     cdrecord -scanbus

Izpis programa vam bo povedal številko enote SCSI, ki ustreza vašemu zapisovalniku. Program cdrecord opravi to dovolj dobro, da ni vredno navajati drugih načinov, kako bi še lahko uganili ta podatek.

Preden vam povem še zadnji ukaz, naj vas opozorim, da želijo biti zapisovalniki CD krmljeni z nepretrganim tokom podatkov. Postopka zapisovanja zatorej ne smemo prekinjati, drugače bo končni izdelek neberljiv disk. Brisanje zelo velike datoteke, denimo stare slike diska CD, zlahka pomeni usodno prekinitev pisanja, saj mora jedro Linuxa obnoviti podatke za 650.000 blokov na disku (ob predpostavki, da je bila datoteka dolga 650 MB in je velikost bloka 1 KB). Običajne dejavnosti, denimo branje pošte, brskanje po spletu ali celo prevajanje jedra, pa na sodobnih računalnikih ne bi smele biti usodne.

Vedite tudi, da noben zapisovalnik ne zmore znova nastaviti laserja na isto mesto, kjer je bil prekinjen. Tudi močni tresljaji ali drugi

mehanski vplivi bodo zato verjetno zmotili zapis CD.

Ko boste psihično pripravljeni, si oblecite črno čarovniško haljo, pomnožite identifikacijsko številko SCSI-ID zapisovalnika CD z izdajo standarda SCSI, ki ga podpira, ter prižgite čim več sveč. Izgovorite dva verza ASR-FAQ (novičarska skupina alt.sysadmin.recovery) in končno vnesite:

     shell> SCSI_BUS=0   # vzeto s programskega izpisa 1 "scsibus0:"
     shell> SCSI_ID=6    # vzeto s programskega izpisa 1 "TOSHIBA XM-3401"

     shell> SCSI_LUN=0
     shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
                        -data slika_cd
     # isto kot zgoraj, a krajše
     shell> cdrecord -v speed=2 dev=0,6,0  -data  slika_cd

Zaradi preglednosti smo naslov zapisovalnika v prvem zgledu shranili v tri spremenljivke okolja: SCSI_BUS, SCSI_ID in SCSI_LUN.

Da bi prepisali disk CD-RW, dodajte še stikalo “blank=...”, s čimer zbrišete staro vsebino. Več o različnih načinih brisanja diskov CD-RW najdete v priročniku cdrecord(1).

Dandanes, ko ima že bolj ali manj vsakdo stroj s procesorjem vsaj 400 MHz, nekateri izhod iz mkisofs napeljejo neposredno na vhod cdrecord:

     shell> IMG_SIZE=`mkisofs -R -q -print-size osebna_zbirka/  2>&1 \
     | sed -e "s/.* = //"`
     shell> echo $IMG_SIZE
     shell> [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r  osebna_zbirka/  \
     |cdrecord  speed=2  dev=0,6,0
                 tsize=${IMG_SIZE}s  -data  -
     #         ne pozabite na s --^^-- beremo s standardnega vhoda

S prvim ukazom mkisofs pripravimo do tega, da izračuna, kako velika bo izhodna datoteka, ki pa je ne naredi (potrebujemo izdajo mkisofs, ki je priložena cdrecord). Pri tem ukazu moramo določiti vse izbire, ki jih bomo uporabili pri dejanskem zapisu na disk, npr. -J, -hfs ipd. Nekateri zapisovalniki ne potrebujejo podatka o tem, kako velika je slika diska; pri teh lahko ta, prvi korak v celoti izpustimo. Izpisano velikost podamo kot parameter tsize programu cdrecord (shranjena je v spremenljivki IMG_SIZE). Pri drugem ukazu sta mkisofs in cdrecord sklopljena s cevovodom.

3.4 Zapis glasbenih CD

Zapisovanje glasbenih plošč je zelo podobno pravkar opisanemu zapisovanju podatkov. Izbirate lahko med dvema načinoma zapisa: DAO ali TAO. Način TAO (track at once, ena steza naenkrat) je za glasbo manj primeren, ker med posameznimi stezami (skladbami) slišimo klikanje. Vseeno ga bomo prvega opisali, ker je nekoliko enostavnejši in ker način DAO še ni na voljo za vse zapisovalnike.

Poglavitna razlika med zapisovanjem glasbenih in podatkovnih CD-R je v zapisu slike diska. Pri slednjih je v zapisu ISO 9660 (in izbranimi razširitvami), ki pa za glasbo ni primeren, ker ga noben laserski gramofon ne zna brati. Namesto tega mora biti glasba zapisana kot 16-bitni stereo zapis, vzorčen s frekvenco 44.100 Hz in PCM-kodiran.

Eden od pripomočkov, s katerim lahko pretvorimo zvočne zapise v zapis, primeren za zapis na CD, je sox. Uporaba je enostavna:

     shell> sox  killing-my-software.wav  killing-my-software.cdr

Ukaz pretvori skladbo “killing-my-software” iz zapisa WAV v glasbeni zapis CDR. Priročnik sox(1) vsebuje podrobnosti o zapisih in priponah datotek, ki jih program prepozna. Ker ročno pretvorjene datoteke zasedajo tako veliko prostora, je v cdrecord vgrajena tudi možnost branja zapisov WAV in AU s primerno hitrostjo vzorčenja (16 bitov, stereo, 44.100 Hz). Če so vaše skladbe v katerem od teh dveh zapisov, jih ni treba pretvarjati v zapis CDR s programom sox, ker jih zna cdrecord uporabiti v njihovem izvirnem zapisu. Vendar pa ima cdrecord določene omejitve: velikost zvočnih podatkov mora biti večkratnik 2352, obenem pa mora biti daljša od 705.600 bajtov. Vse datoteke WAV tem pogojem ne ustrezajo, in te morate s programom sox dopolniti do zahtevane dolžine.

3.4.1 Zapis glasbenih CD v načinu TAO

Glasbeni CD ima več stez (skladb) in vsaka od njih je v načinu TAO zapisana kot ločena slika diska. Če želite imeti na disku deset skladb, morate pripraviti deset slik.

Cdrecord zapiše slike na disk kot skladbe, če je podana izbira -audio. Druge izbire so enake tistim pri zapisu podatkovnih CD, razen če nimate kakšnih zelo posebnih zahtev. Naslednji trije zgledi izvedejo isto, le da vsak bere skladbe iz različnih zapisov:

     shell> cdrecord -v speed=2 dev=0,6,0  -audio  skladba1.cdr skladba2.cdr ...
     shell> cdrecord -v speed=2 dev=0,6,0  -audio  skladba1.wav skladba2.wav ...
     shell> cdrecord -v speed=2 dev=0,6,0  -audio  skladba1.au  skladba2.au  ...

Na tako izdelanem glasbenem CD so dvesekundni presledki med skladbami.

Omembe vreden zapis, ki ga Cdrecord ne bere neposredno, je MPEG Layer 3. Datoteke v tem zapisu moramo najprej pretvoriti v zapis CDR, denimo z ukazom “mpg123 –cdr - skladba1.mp3 > skladba1.cdr”. Z izborom –-cdr smo izbrali način izhodnega zapisa (CDR). Izbor - pomeni izpis na standardni izhod; v starejših izdajah Mpg123 dosežemo isto z izborom -s. Pretvorbo v nasprotno smer (iz WAV v MP3) lahko opravimo s programom LAME, skladbe s plošče pa lahko shranimo v zapisu WAV s programom cdda2wav.

Če bi radi pripravili disk CD-R s kopico skladb v zapisu MP3, si lahko pomagamo s skriptom:

     for I in *.mp3
     do
         mpg123 --cdr - "$I" | cdrecord -audio -pad -nofix -
     done
     cdrecord -fix

Odvisno od hitrosti vašega računalnika lahko izberete zapisovanje pri nižji hitrosti, npr. speed=1. Če uporabite speed=4, mora biti vaš računalnik sposoben predvajati datoteke MP3 pri štirikratni hitrosti! Predvajanje datotek MP3 je računsko precej intenzivno. Če ste v dvomih, poskusite najprej $ldquo;zapisati” z ugasnjenim laserjem (izbira -dummy).

3.4.2 Zapis glasbenih CD v načinu DAO

Če se želite znebiti nadležnih presledkov med skladbami, morate zapisati ves disk naenkrat v načinu DAO (disk at once). Spomnimo se, v načinu TAO (track at once) ustreza posamezni skladbi svoja slika na disku. Podpora za način DAO je trenutno najboljša v programu cdrdao. Za podrobnosti si oglejte njegovo domačo stran.

Če pripravljate CD v načinu DAO, uporabljate monolitno sliko (datoteka z zapisom glasbe) in nadzirate podatke o posameznih skladbah z nastavitveno datoteko.

     CD_DA
     TRACK AUDIO
     FILE "live.wav" 0 5:0:0
     INDEX 3:0:0
     TRACK AUDIO
     FILE "live.wav" 5:0:0 5:0:0
     TRACK AUDIO
     FILE "live.wav" 10:0:0 5:0:0
     INDEX 2:0:0

3.5 Mešani glasbeno-podatkovni CD

O tem niti nimamo kaj dosti povedati. Pri posamezni stezi z izbirama -data ali -audio označimo, ali gre za podatkovno ali glasbeno stezo. Zgled:

     cdrecord  -v dev=0,6,0  -data  slika_cd  -audio  skladba*.cdr

4 Dragi Winfried

Ta razdelek je navadno označen kot “pogosta vprašanja” (z odgovori). Če imate težave s partnerjem, otroki ali psom, kar pišite, da je le povezano z zapisovanjem CD-R ali pa vsaj kako drugače zabavno.

4.1 Kako občutljiv je proces zapisovanja?

Preverite. Z izbiro -dummy poženite Cdrecord in počnite vse, kar bi sicer počeli, in videli boste, ali bo pisanje preživelo.

Če krmite Cdrecord neposredno z izhoda Mkisofs, potem lahko procesi, ki imajo veliko opraviti s pisanjem po disku (npr. obnavljanje zbirke locate), toliko upočasnijo pretok podatkov, da zapisovanje CD ne bo uspelo. Preverite, ali med pisanjem ukazi cron, at ali anacron ne bodo pognali kakega takega procesa.

4.2 Ali fragmentiranost diska vpliva na hitrost pretoka?

Fragmentiranost diska je navadno tako majhna, da tega ni zaznati. Prav nič težko pa ni doseči tudi patološke fragmentiranosti, ki zniža hitrost dostopa na vrednosti pod 100.000 KB/s. Izogibajte se jim. :) V resnici se fragmentiranost diska z leti povečuje. Čim bolj je datotečni sistem poln, tem hitreje narašča. Vedno puščajte kakih 10 ali 20 % prostora praznega, pa z zapisovanjem CD-R ne boste imeli težav.

Če niste gotovi, si lahko ogledate sporočila, ki se izpišejo ob zagonu sistema. Delež fragmentiranosti je izpisan pri preverjanju konsistentnosti datotečnega sistema. Vrednost lahko izveste tudi z zelo nevarnim ukazom

     shell> e2fsck -n  /dev/sda5        # '-n' je pomemben!
     [veliko izpuščenega...]
     /dev/sda5: 73/12288 files (12.3% non-contiguous)

V tem zgledu je videti fragmentiranost zelo visoka. Vendar pa je po drugi strani v razdelku vsega 73 majhnih datotek, tako da stanje še ni alarmantno.

V poskusni fazi je na voljo pripomoček e2defrag, s katerim lahko defragmentiramo datotečne sisteme ext2. Trenutna izdaja ni dovolj zanesljiva niti za domačo rabo. Če bi res radi defragmentirali razdelek, naredite varnostno kopijo (še bolje: dve kopiji!), preverite, ali znate z nje povrniti podatke, potem pa prek starega datotečnega sistema ustvarite novega (s tem zbrišete starega) in povrnite podatke z varnostne kopije. To je gotovo najvarnejša pot.

4.3 Ali je mogoče hraniti slike CD v datotečnem sistemu UMSDOS?

Da. Edini datotečni sistem, ki ni ne dovolj zanesljiv ne dovolj hiter za zapisovanje CD, je omrežni datotečni sistem (NFS). Avtor je sam uporabljal UMSDOS za deljenje diskovnega prostora med okolji Linux in DOS/Windows v starem osebnem računalniku (486/66), namenjenem zapisovanju CD.

4.4 Ni nobene poti, po kateri bi se obšlo omejitve ISO 9660?

Seveda je. Na disku CD lahko ustvarite katerikoli datotečni sistem. Vendar pa v tem primeru drugi operacijski sistemi ne bodo mogli prebrati diska. Recept je naslednji:

• Ustvarimo prazno datoteko velikosti 650 MB.

          dd if=/dev/zero of="prazna" bs=1024k count=650

• V datoteki ustvarimo datotečni sistem ext2.

          shell> /sbin/mke2fs  -b 2048  prazna
          prazna is not a block special device.
          Proceed anyway? (y,n) y

• Prazno datoteko priklopimo prek povratnozančne naprave na novo priklopno točko (glej zgoraj).

          mount -t ext2 -o loop=/dev/loop1 prazna /mnt

• V datoteko, zdaj priklopljeno v imenik /mnt, prepišemo datoteke in datoteko odklopimo.

• Z ukazom cdrecord prepišemo datoteko prazna (ki v resnici ni več prazna) na disk CD enako, kot bi prepisali sliko diska z datotečnim sistemom ISO 9660.

Če želite vnesti to priklopno točko v /etc/fstab, onemogočite njeno preverjanje ob zagonu, denimo:

     /dev/cdrom  /mnt/cdrom  ext2  defaults,ro  0 0

Prva vrednost 0 pomeni “ne vključi v varnostno kopijo”, druga, za nas pomembnejša, pa “ne preverjaj napak ob zagonu”. Program Fsck namreč ne more uspešno “popravljati” napak na disku CD.

4.5 Kako preberem skladbe z glasbenih plošč?

Na voljo je več paketov. Najnovejši je Cdparanoia, ki ga dobite na naslovu

        <http://www.xiph.org/paranoia/>

Namesto njega lahko uporabite tudi kombinacijo Cdda2wav in Sox. Na voljo sta V strežniku Sunsite in 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-11gama-cb3.tar.gz>

Program cdda2wav omogoča zajetje določenega intervala (ali celotne skladbe) z glasbenega CD in ga pretvori v datoteko WAV. Program sox pretvori datoteke wav nazaj v zapis CDDA, ki ga uporabljajo glasbeni CD, tako da jih lahko s programom cdrecord zapišemo na CD-R. V novejše izdaje programa cdrecord je že vgrajena podpora branju zapisov WAV in AU, tako da programa sox niti ne potrebujete.

4.6 Kako po zagonu poiskati naprave vrste SCSI?

V datoteki drivers/scsi/scsi.c so 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.
      */

Pazite: Z opisanim ukazom lahko le dodaste napravo na konec verige SCSI. Vrivanje naprav v staro verigo zmoti poimenovanje naprav v imeniku /dev, kar lahko uniči vsebino vašega diska.

Nekatere izdaje jedra ne marajo vnovičnega pregleda vodila SCSI in lahko ob takem posegu zmrznejo. Opozorili smo vas.

4.7 Ali je mogoče narediti 1:1 kopijo CD?

Da, vendar se morate zavedati dejstva, da lahko vsaka napaka med branjem izvirnika (zaradi prahu ali prask) povzroči okvaro na kopiji. Obe opisani metodi odpovesta pri glasbenih ploščah! Za te morate uporabiti programe, kot sta Cdrdao ali Cdda2wav.

Prvi zgled: imate zapisovalnik CD in ločen pogon CD-ROM. Z ukazom

     cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0

berete tok podatkov s pogona CD-ROM, ki je priključen kot /dev/scd0, in ga zapisujete neposredno na zapisovalnik CD.

Drugi zgled: nimate ločenega pogona CD-ROM. V tem primeru boste za branje CD-ROM morali uporabiti zapisovalnik.

     dd if=/dev/scd0 of=slika_cd

Ukaz prebere vsebino diska CD-ROM z naprave /dev/scd0 in jo zapiše v datoteko “slika_cd”. Vsebina je enakovredna rezultatu mkisofs, tako da lahko nadaljujete, kakor smo prej opisali, torej jo s programom Cdrecord zapišete na disk CD. Če bi radi še merilnik poteka in podobne lepote, pa uporabite program sdd Jörga Schillinga.

Če so pri prepisu nastale napake, namestite najnovejšo različico programa Cdrecord. V imeniku misc/ najdete orodje readcd, ki počne isto kot dd, vendar vsak sektor na CD-ROM prebere večkrat, tako da se morebitne napake izpovprečijo.

4.8 Ali lahko Linux bere CD z zapisom joliet? (odvečno)

Da. Vse novejše izdaje jedra (od 2.0.36 dalje) imajo vgrajeno podporo zapisu joliet. Zapomnite si, da morate v datoteki /etc/fstab navesti tako iso9660 kot joliet (slednji ni datotečni sistem, temveč le razširitev).

Več podrobnosti najdete na naslovu: <http://www-plateau.cs.berkeley.edu/people/chaffe/joliet.
html>.

4.9 Kako lahko berem/priklopim CD-ROM z zapisovalnikom CD?

Povsem enako, kot to storite z običajnim pogonom CD-ROM. Tu ni nobenih zvijač. Za branje CD morate uporabiti naprave scd (SCSI CD-ROM), čeprav imate CD-ROM na vodilu IDE/ATAPI (spomnite se, da ste zapisovalnik nastavili kot enoto SCSI). Zgled vnosa v /etc/fstab:

     /dev/scd0  /mnt/cdrom  iso9660  ro,user,noauto  0  0

4.10 Kako lahko shranim na CD-R še več podatkov?

Podatke stisnite s programom bzip2, ki doseže večjo stopnjo stiskanja kot programa gzip ali pkzip. Tako lahko pri večjih datotekah (100 KB in več) prihranite do 30 % prostora na disku. Najdete ga na naslovu:

        <http://www.muraroa.demon.co.uk/>

Namesto zapisovanja glasbenih CD lahko datoteke WAV pretvorite v datoteke MP3 in jih shranite na disk ISO 9660 kot navadne datoteke. Zapis MP3 navadno doseže stopnjo stiskanja 1 : 10. Seveda takega diska v večini laserskih gramofonov ne boste mogli prebrati, kar je slabost tega postopka. Po drugi strani pa, zakaj ne bi na naslednji zabavi vrteli glasbe kar z diska? 40 GB je dovolj za kakih 8000 skladb. :)

Programski kodirnik MP3 je na voljo na naslovu:

        <http://www.sulaco.org/mp3/>

Predvajalnik MP3 pa dobimo na naslovu

        <http://www.mpg123.org/>

Posneti govor lahko skrčite v velikosti s programom shorten, ki vsebuje isti postopek, kot se uporablja v telefoniji GSM:

        <ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/>
        <http://kbs.cs.tu-berlin.de/~jutta/toast.html>

4.11 Kako izdelamo CD-ROM, s katerega lahko zaženemo sistem?

Imeti morate zagonsko disketo velikosti 1,44 MB. Natančno sliko te diskete izdelamo z ukazom

     dd if=/dev/fd0 of=boot.img bs=18k

Prepišite to sliko v imenik, v katerem je zbirka datotek, ki bi jih radi shranili na CD-ROM. Če želite, jo lahko shranite tudi v poseben podimenik. Programu mkisofs podaste sliko zagonske diskete s stikalom -b; uporabiti boste morali tudi izbiro -c. Podrobnosti si oglejte v datoteki README.eltorito, ki je del paketa Mkisofs.

Zanimiva uporaba po meri izdelanih zagonskih CD je izdelava sistemov DOS ali Windows, varnih pred virusi. Na ta način lahko tudi prihranite denar za diske, če so računalniki vključeni v omrežje in imajo dostop do uporabniških podatkov v strežniku Samba. Nemška računalniška revija c’t je obravnavala tak zgled v novembrski številki leta 1999, na strani 206 (glej tudi <http://www.heise.de/>).

Nekaj podrobnosti o zagonskem disku Red Hat je na voljo na naslovu <http://members.bellatlantic.

net/~smithrod/rhjol-technical.html>.

4.12 Kako lahko na disk CD-ROM pišemo kot na računalniški disk?

Na voljo je prekrivni datotečni sistem za Linux, ki ga priklopimo prek diska CD-ROM, tako da prestreže vse poskuse pisanja. Nove in spremenjene datoteke so v resnici shranjene nekje drugje, na ravni uporabnika pa je videzi, kot da se je spremenila vsebina diska CD-ROM. Za več informacij si oglejte <http://home.att.

net/~artnaseef/ovlfs/ovlfs.html>.

Če vam to ne zadošča, si oglejte datotečni sistem UDF ( <http://trylinux.com/projects/udf/>). Sistem še razvijajo, na voljo pa so že delujoči moduli.

4.13 Je mogoče uporabljati več zapisovalnikov naenkrat?

Da. Obstaja poročilo o nekom, ki je hkrati uporabljal tri zapisovalnike na enem vodilu SCSI pri polni (šestkratni) hitrosti na osebnem računalniku s taktom 233 MHz z jedrom 2.2.12. Potrebujete jedro izdaje 2.2.12 ali novejšo.

4.14 Kaj pa Solaris, *BSD, AIX, HP-UX ipd.? Je moja različica Unixa podprta?

Samo drugo poglavje tega spisa je omejeno zgolj na Linux. Vse, povedano v tretjem in četrtem poglavju, pa velja tudi za druge operacijske sisteme. Oglejte si datoteke README.NetBSD, README.aix, RE-ADME.hpux, README.next, README.solaris, README.sunos, README.vms ali README.xxxBSD iz paketa Cdrecord.

Odgovor je najverjetneje pritrdilen. Prevedite Cdrecord v vašem sistemu in poženite cdrecord -scanbus. V imeniku z izvirno kodo Cdrecorda poiščite datoteko README za svojo različico Unixa in jo preučite.

Vedite pa, da vse različice Unixa, čeprav jih boste znali zapisati, ne znajo brati razširitev Rock Ridge, Joliet ali HFS.

4.15 Kje je najbolje trajno shraniti lokalne nastavitve?

Dve možnosti imate. Uporabite lahko privzeto datoteko z nastavitvami programa Cdrecord ali pa ovojni skript, kot je prikazan spodaj. Ovojni skript prebere nastavitveno datoteko, v kateri so naštete izbire in parametri programa Cdrecord. Imena izbir so natanko enaka, kot bi jih navedli v ukazni vrstici, manjka jim le uvajalna črtica. Dovoljeni so tudi komentarji. Zgled:

     # z razlago poteka
     v
     # nastavitev hitrosti
     speed=2
     # naslov naprave v obliki BUS,ID,LUN
     dev=0,6,0

Nastavitvena datoteka spada v imenik /etc/cdrecord in jo moramo navesti v ukazni vrstici, na primer: “cdrecord.sh mojcdr.cfg -audio track1...”, če se sklicujemo na nastavitveno datoteko /etc/cdrecord/mojcdr.cfg. Vse izbire za mojcdr.cfg se prenesejo programu Cdrecord.

     #! /bin/bash
     CFGDIR="/etc/cdrecord"
     CFG="$1"
     shift
     ARGS_LEFT="$@"
     if [ ! -f "$CFGDIR/$CFG" ]
     then
         echo "Nastavitvene datoteke $CFGDIR/$CFG ni moč najti. Končujemo."
         exit 1
     fi
     while read LINE
     do
         case $LINE in
             \#*|"") continue;;
         esac
         old_IFS="$IFS"
         IFS="$IFS="
         set -- $LINE
         IFS="$old_IFS"
         O_NAME="$1"
         O_VALUE=""
         while shift
         do
             case $1 in

                 "") continue;;
             esac
             O_VALUE="$1"
         done
         if [ -z "$O_VALUE" ]
         then
             O_CDRECORD="$O_CDRECORD -$O_NAME "
             continue
         fi
         O_CDRECORD="$O_CDRECORD $O_NAME=$O_VALUE "
     done < "$CFGDIR/$CFG"
     set -x    #DEBUG
     exec cdrecord $O_CDRECORD $ARGS_LEFT
     echo "Zagon Cdrecord ni uspel."

4.16 Kako lahko preberemo podatke o CD?

Nekje za prvimi 32 KB na CD je blok s podatki o CD. Te podatke lahko dosežete z naslednjim skriptom:

     #! /bin/bash
     RD=/dev/cdrom
     for i in 32768,7   32776,32 32808,32 32958,128 33086,128 33214,128 \
              33342,128 33470,32 33581,16 33598,16  33615,16  33632,16
     do
         old_IFS="$IFS"
         IFS=","
         set -- $i
         IFS="$old_IFS"
         OFFSET=$1
         LENGTH=$2
         echo "*`dd if=$RD bs=1 skip=$OFFSET count=$LENGTH   2> /dev/null`#"
     done

4.17 Kaj pa pisanje prek diskov CD-RW?

Pri pisanju prek popisanih diskov CD-RW dodajte programu Cdrecord parameter blank=fast. To je vse. Za podrobnosti o tem parametru si oglejte priročnik cdrecord(1).

4.18 Kako lahko dodajamo podatke na disk CD-R?

Slika CD, na katerega dodajamo podatke (diskom CD, na katere zapišemo podatke v več pisanjih, pravimo tudi “multi-session” CD), mora biti formatirana kot datotečni sistem ISO 9660 z razširitvami Rock Ridge. Pri zapisovanju moramo v programu Cdrecord uporabiti izbiro -multi, če nameravamo za tem zapisom dodati še kakega (zanesljivo moramo torej izbiro -multi navesti pri prvem zapisovanju).

Nekateri zapisovalniki ne podpirajo načina CD-ROM XA mode 2 SAO (session at once); pri teh morate podati programu Cdrecord tudi stikalo -data.

Slike drugega in naslednjih zapisovanj je malce bolj zapleteno izdelati. Program Mkisofs mora namreč vedeti, kje se začne prosti prostor na disku CD-R (privzeto je, da na začetku, kar je dobro le za povsem prazne diske). Ta podatek lahko izvemo z izbiro -msinfo, podano programu Cdrecord (zgled spodaj).

     shell> NEXT_TRACK=`cdrecord -msinfo dev=0,6,0`
     shell> echo $NEXT_TRACK
     shell> mkisofs -R -o slika_cd2 -C $NEXT_TRACK -M /dev/scd5
              osebna_zbirka/ \

Več podatkov si lahko preberete v datoteki README.multi, ki je del paketa Cdrecord.

4.19 Ali naj uporabim krmilnik SCSI, ki sem ga dobil z zapisovalnikom?

Sporočeno po elektronski pošti: Dokumentacija za večino zapisovalnikov priporoča namestitev zapisovalnika na ločeno vodilo SCSI, če obenem uporabljamo enoto CD-ROM in zapisovalnik CD. Tudi sam sem opazil naslednje:

Imam krmilnik Adaptec 2940UW, 24x SCSI CD-ROM in 4x4 SCSI zapisovalnik CD. Skupaj s slednjim sem dobil še preprost krmilnik SCSI na vodilu ISA, ki lahko krmili le eno napravo SCSI. Seveda sem ga ignoriral in zapisovalnik lepo priključil na krmilnik Adaptec, vendar pa sem med delom opazil, da medpomnilnik na zapisovalniku pri štirikratni hitrosti snemanja pogosto ne zmore kompenzirati prekinitve toka podatkov. Ko sem priključil zapisovalnik na krmilnik ISA, so težave izginile. Vem za vsaj še dva druga (oba s krmilnikom 2940), ki sta pri zapisovanju CD neposredno z enote CD-ROM naletela na podobne težave. Pri zapisovanju CD z diska, ki je bil na istem vodilu SCSI kot zapisovalnik, nisem nikoli imel težav.

4.20 Zapisovanje CD po omrežju

Hitrost prenosa s FTP po 10 MHz lokalnem omrežju je navadno dovolj visoka za krmljenje zapisovalnika CD pri štirikratni hitrosti zapisa. Odjemnika FTP lahko s programom Cdrecord sklopimo s poimenovano cevjo (FIFO). Najprej ustvarimo FIFO z imenom slikacd:

     mkfifo slikacd
     ftp oddaljeni.gostitelj.si
     get slika_cd slikacd

Zdaj lahko uporabljamo slika_cd kot navadno datoteko, torej jo lahko zapišemo na CD z ukazom Cdrecord:

     cdrecord dev=0,1,0 speed=2 slikacd

Odjemnik FTP bo opazil, kadar želi Cdrecord brati iz datoteke, in bo začel prenašati datoteko slika_cd iz

gostitelja oddaljeni.gostitelj.si.

4.21 Na koncu vsake skladbe slišim klikanje in prasketanje

. Če se hočete znebiti prasketanja, morate za zapisovanje glasbenih CD uporabiti način zapisa DAO (disk at once).

4.22 Kako nastavim, da lahko zapisovalnik uporabljajo tudi navadni uporabniki, ne le skrbnik sistema?

Ena možnost je, da prevedenemu programu Cdrecord nastavite bit SUID, kar pa lahko ustvari razpoko v varnosti sistema. Preprosta sprememba nastavitev datoteke naprave ne pomaga, ker Cdrecord pošilja ukaze, ki zahtevajo sistemske pristojnosti, tudi po generičnem vmesniku SCSI.

     which cdrecord
     chown root.root /usr/bin/cdrecord
     chmod 4111 /usr/bin/cdrecord

4.23 Kje lahko dobim specifikacije standardov “Yellow Book” in “Orange Book”?

Pri družbi Philips in to za drag denar.

4.24 Kje najdem podatke o zapisovanju Video-CD v Linuxu?

Nekaj podatkov o pripomočkih za ustvarjanje videov MPEG in Video-CD najdete na naslovu

        <http://www.mainconcept.de/>
        <http://www.johanni.de/munich-vision/vcd/>

Tisti, ki so politično korektni, omenjajo uporabo berkeleyjskih orodij in strategije YUV. Raba le-teh je zapletena, vzame veliko časa in prostora na disku in ne podpira zvoka v posnetkih MPEG. Namesto tega priporočam v predhodnem besedilu omenjena orodja, ki olajšajo delo.

4.25 Je laže pripraviti za delo zapisovalnike IDE ali SCSI?

Zapisovalnike SCSI v Linuxu malce laže pripravimo za zapisovanje. Po poročilih drugih imajo tudi boljše odpravljanje napak. Če to odtehta dejstvo, da so dražji, je težko v splošnem odgovoriti.

4.26 Kako lahko spravimo na disk CD več od nazivne zmogljivosti?

Pisanje prek nazivne zmogljivosti (angl. overburning) ni nič posebnega. Na svojo odgovornost lahko shranite na CD več od nazivne zmogljivosti diska (650 MB ali 700 MB), vendar do podatkov na drugih enotah morda ne boste mogli. Sicer pa v Linuxu ni nobene programske omejitve na 650 MB ali kaj takega.

4.27 Kaj napravi Cdrecord, ko tok podatkov iz cevovoda presahne?

Neha pisati. To pomeni, da lahko Cdrecord sklopite s svojim priljubljenim orodjem za izdelavo varnostnih kopij, denimo “ru -size=640m -f - | cdrecord dev=0,1,0 speed=2 -”. Če sega varnostna kopija prek več diskov CD, mora za to skrbeti program ta izdelavo varnostne kopije.

4.28 Je pri posnemanju ide-scsi kaj enakovrednega izbiri “ignore=hdX”?

Ne vem, bi pa podpiral vsakogar, ki bi v jedro Linuxa želel dodati to možnost.

4.29 Kolikokrat lahko zbrišemo in spet uporabimo diske CD-RW?

Dobro vprašanje.

4.30 Katera oblika zapisa je najboljša, če želimo CD-ROM brati v različnih strojnih okoljih?

Edini datotečni sistem za diske CD-ROM, ki ga zagotovo lahko beremo v vseh strojnih okoljih, je ISO 9660 brez razširitev HFS (Macintosh), Joliet (Microsoft) ali Rock Ridge (Unix). To obenem pomeni omejitev pri imenih datotek na 8+3. Nobenega skupnega standarda, ki bi podpiral daljša imena datotek, ni.

4.31 Je mogoče dodajanje skladb na glasbene CD?

Laserski gramofoni zmorejo brati le skladbe, zapisane v prvem zapisu, tistih, shranjenih v naslednjih zapisih (multi-session), pa ne. Pač pa lahko pozneje dopišemo podatkovni del in ga na ta način uspešno skrijemo pred laserskimi gramofoni. Ta postopek lahko uporabimo pri mešanih (glasbeno-podatkovnih) ploščah, če ne želimo, da laserski gramofon “vidi” podatkovni del kot “prazno” skladbo.

4.32 Kakšen računalnik potrebujem za zapisovanje CD? Je stari Pentium dovolj?

Odgovor je odvisen od vaših želja. Če potrebujete izgovor za nakup novega računalnika, vam lahko postrežemo z odgovorom Mednarodnega združenja izdelovalcev računalniške opreme: Karkoli že nameravate početi, potrebujete procesor s taktom vsaj 2,8 GHz. Ker ga vaša osnovna plošča ne podpira, to obenem pomeni tudi zamenjavo osnovne plošče. Če se želite izogniti napornemu in zamudnemu razstavljanju, sestavljanju in nastavljanju računalnika, je najlaže, če kupite že izdelan računalniški sistem, kot ga vidite v oglasih po televiziji. Preostanek tega razdelka lahko preskočite.

Če bi radi razumen odgovor – pisec tega spisa je uspešno zapekel kar spodobno število diskov na starem računalniku 486 s taktom 66 MHz. Čeprav Microsoft takega sistema niti ne šteje več med osebne računalnike, temveč priporoča, da na njem poganjamo Windows CE (predstavljeno na sejmu CeBIT), Linux ne le, da čisto lepo teče na teh prednikih Pentiuma, ampak jih lahko uporabljamo tudi za zapisovanje CD. Ali vaše železje zadošča za zapisovanje CD, lahko ugotovite z enostavnim preizkusom. Program Cdrecord poženite s stikalom -dummy, ki izklopi laser, in opazujte, kako se “peče” CD.

5 Iskanje in odpravljanje težav

Naj vas vnaprej potolažimo, da so po najnovejših raziskavah okvarjeni diski CD-R (angleški termin zanje je “coaster”, podstavek za kozarec) povsem enako uspešni pri motenju policijskih radarjev kakor pravilno zapisani. :)

5.1 Ne deluje: v Linuxu

Najprej preverite, ali zapisovalnik deluje s priloženim programjem (najverjetneje to pomeni tudi v nekem drugem operacijskem sistemu). Konkretno:

• Ali krmilnik prepozna zapisovalnik kot SCSI napravo?

• Ali programska oprema zazna zapisovalnik?

• Ali je mogoče s priloženo programsko opremo “zapeči” CD?

Če ne deluje niti v drugih operacijskih sistemih, gre najverjetneje za spor z drugo strojno opremo ali pa je strojna oprema okvarjena. Če deluje in uporabljate za zagon Linuxa program Loadlin, je najverjetneje vzrok napaka v njem. Loadlin izvede “topli zagon” sistema, pri katerem je večina strojne opreme že inicializirana, to pa lahko zmede jedro Linuxa.

5.2 Napaka: enota ’dev=0,6,0’ ni dostopna za branje

Nekatere izdaje knjižnice Libc so med seboj nezdružljive (kar je napaka), tako da program, povezan z eno izdajo knjižnice, ne deluje,

če je nameščena druga izdaja. Zgled take napake, do katere pride pri uporabi že prevedenih programov, je:

     [root@Blue /dev]# cdrecord -eject dev=0,6,0
     cdrecord: No such file or directory. No read access for 'dev=0,6,0'.

Napako odpravimo tako, da namestimo novejšo izdajo knjižnice Libc.

5.3 Ne deluje: v sistemu DOS in sorodnih operacijskih sistemih

Poskusite uporabiti Linux. Namestitev in nastavitev naprav SCSI v sistemu DOS je pravi pekel. Linux da je preveč zapleten? Ha!

5.4 Napake SCSI med procesom zapisovanja

Te napake najpogosteje nastanejo zaradi:

• manjkajoče možnosti za odklop in priklop naprav na vodilih SCSI,

• preslabo hlajene strojne opreme,

• okvare strojne opreme (to bi morali zaznati že v 5.1 (Ne deluje: v Linuxu)).

Zaradi različnih okoliščin naprave SCSI elektronsko prekinejo in znova vzpostavijo povezavo z vodilom SCSI. Če ta izbira ni na voljo (preverite parametre krmilnika in jedra), lahko pride na nekaterih zapisovalnikih med procesom zapisovanja do okvar.

Konkretno krmilnik NCR 53c7, 8xx ima privzeto to izbiro izključeno, zato 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

5.5 Napake na nosilcu

Če Cdrecord sporoči napako, kot so “Sense Key: ... Medium Error, Segment ...”, to pomeni, da pomnilniški nosilec ni prazen. Če gre za disk CD-RW, poskusite nadomestiti izbiro blank=fast z izbiro blank=all. Če gre za disk CD-R, preverite, ali disk še ni videl zapisovalnika od znotraj, ali pa poskusite diske drugega izdelovalca.

5.6 Novo zapisanih diskov CD nekateri predvajalniki ne znajo brati

Nekateri poročajo o težavah z diski CD-R lastne izdelave. Nekateri zelo stari laserski gramofoni in avtomobilski laserski gramofoni imajo včasih z njimi težave, vendar so te redke. Pogoste pa so težave pri branju diskov CD-RW v navadnih laserskih gramofonih, ker ti laserske svetlobe ne odbijajo enako dobro kakor tovarniško odtisnjeni, srebrni diski.

5.7 Ko sem naložil modul ide-scsi, je nehal delovati skener

Poimenovanje naprav SCSI se spremeni, ko vključimo posnemanje SCSI. Če ste prej skener uporabljali prek naprave /dev/sg0, se je ta zdaj morda spremenila v /dev/sg1 ali /dev/sg2. Pomembnim ljudem, odgovornim za razvoj jedra, se tako obnašanje ni zdelo nenavadno, zato so zavračali rešitve, kot je denimo devfs. To je resda že druga zgodba, zato raje najprej poskusite ustvariti simbolno povezavo /dev/scanner, ki kaže na dejansko generično napravo SCSI. Zgled:

     cd /dev
     ls -l scanner     # trenutna nastavitev
     ln -sf sg2 scanner
     # preizkusimo skener
     ln -sf sg1 scanner
     # preizkusimo skener
     # in tako naprej

Razvijalci namenskih programov bi morali pozorno razmisliti o podpori nevarni in k napakam nagnjeni shemi poimenovanja naprav. Če ne drugega, razmislite o vmesni rešitvi, kot je uporaba naslova SCSI, tako kot uporablja program Cdrecord.

6 Zasluge

Veliko zaslug imajo bralci tega spisa, ki so dejavno sodelovali pri nastajanju vsebine. Ker sam nekaj let nisem imel dostopa do zapisovalnika CD, so bila poročila s terena o dejanskih nastavitvah in izkušnjah zame neprecenljivega pomena.

Doug Alcorn <doug@lathi.net>

je pomagal izboljšati delovanje novejših izdaj jedra, Kalle Andersson <kalle@sslug.dk>

zapisovanje glasbenih CD neposredno iz datotek MP3, Alan Brown <alan@manawatu.net.nz>

, Rick Cochran <rick@msc.cornell.edu>

namig o odklopu in vnovičnem priklopu, privzeto onemogočenem pri krmilnikih NCR, Robert Doolittle <bob.doolittle@sun.com>

dobri argument, da v spisu povsem izpustimo program Cdwrite, Markus Dickebohm <m.dickebohm@uni-koeln.de>

, Thomas Duffy <tduffy@sgi.com>

večje čiščenje slovnice in črkovanja, Dave Forrest <dforrest@virginia.edu>

je popravil napako v imenih adapterjev, Jos van Geffen <jos@tnj.phys.tue.nl>

je opozoril na problem, opisan v razdelku 4.9, Bernhard Gubanka <beg@ipp-garching.mpg.de>

pa na to, da moramo za uporabo povratnozančne naprave imeti nameščeno sodobno izdajo programa mount.

Stephen Harris <sweh@mpn.com>

je prispeval namig o zapisovanju glasbenih CD, Janne Himanka <shem@oyt.oulu.fi>

kazalec na krpo jedra, potrebno za branje CD-ROM z razširitvami joliet, Stephan Noy <stnoy@mi.uni-koeln.de>

podatke in izkušnje z zapisovanjem glasbenih CD, Don H. Olive <don@andromeda.campbellsvil.edu>

URL orodja Mkhybrid, Jesper Pedersen <jews@imada.ou.dk>

, Pierre Pfister <pp@uplift.fr>

pa je pomagal pri izdelavi recepta za prepisovanje 1:1.

Daniel A. Quist <dquist@cs.nmt.edu>

je prispeval podatke o IDE CD-R in novejših izdajah jedra, Martti.Rahkila@hut.fi

poročilo o težavah s prednastavljenimi zapisovalniki pri zagonu s programom Loadlin, Dale Scheetz <dwarf@polaris.net>

, Joerg Schilling <schilling@fokus.gmd.de>

veliko podatkov o programu Cdrecord, Martin Schulze <joey@Infodrom.North.DE>

podatke o dopisnem seznamu programa Cdwrite, Gerald C Snyder <gcsnyd@loop.com>

je preizkusil zapis CD-ROM z datotečnim sistemom ext2 (razdelek 4.4). Art Stone <stone@math.ubc.ca>

je prispeval zamisel, da na CD-ROM zapišemo od ISO 9660 različen datotečni sistem, The Sheepy One <kero@escape.com>

je predlagal uporabo okvarjenih diskov CD-ROM kot podstavkov za kozarce, Erwin Zoer <ezoer@wxs.nl>

.

Rad bi se zahvalil tudi naslednjim ljudem, ki so me opozorili na tipkarske napake: Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>, Alessandro Rubini <rubini@prosa.it>, Ian Stirling <ian@opus131.com>, Brian H. Toby. Izdajo 2.4.1 tega spisa je decembra 1998 v slovenščino prevedel Andrej Grauf, to izdajo pa avgusta 2002 Primož Peterlin.