Ponavadi se zapisovanje na CD-je v Linuxu izvaja v dveh korakih:
mkisofs/mkhybrid
cdwrite
ali cdrecord
.
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.
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).
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:
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 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.
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 programamount
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 programmount
, 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.
Nemška računalniška revija "c't" v novembrski izdaji 1996 vsebuje seznam nasvetov glede praznih CD-jev:
Skoraj smo že gotovi. Preden vam povem še zadnji ukaz, naj vas opozorim, da imajo zapisovalniki CD-jev majhne predpomnilnike in zato se prenos podatkov ne sme prekiniti. Če se med procesom zapisovanja slike CD-ja prenos podatkov prekine, bo posledica tega pokvarjen CD.
Da procesa ne bo moglo nič prekiniti, s sistema vrzite vse uporabnike
in izklopite mrežni kabel... Da bi to lahko storili, boste morali imeti
pravi odnos - preberite Podli operater iz pekla
(Bastard operator from hell). ;-)
Ko boste psihično pripravljeni, se oblecite v črna oblačila, pomnožite SCSI-ID zapisovalnika CD-ja z njegovim SCSI-revision in prižgite čimveč sveč. Izgovorite dva verza ASR-FAQ in na koncu vnesite
cdwrite --device /dev/sgd cd_slika
ali
cdrecord -v speed=2 dev=4, 0 cd_slika
odvisno od tega, kateri program želite uporabiti. Seveda morate device
nadomestiti s svojo napravo SCSI, na katero je priključen vaš
zapisovalnik.
Ne pozabite, da noben zapisovalnik ne more ponovno namestiti laserja in nadaljevati z zapisovanjem na tistem mestu, kjer je bil prekinjen. Zaradi tega se lahko CD pokvari že zaradi močnejših vibracij.
...