<winni@xpilot.org>
Sok ember használ Linuxot CD-írásra, mert megbízható és könnyű. Nincsenek ``kék képernyők'' írás közben, és nem okoz fejfájást a hardver és a szoftver helyes kombinációjának kiválasztása. Egyszerűen csak működik, miután egyszer megfelelően telepítették. A CD-írás HOGYAN elmagyarázza a telepítést, az égetés folyamatát és néhány érdekes alkalmazást, amelyekre az olvasók hívták fel a figyelmet.
Copyright Winfried Trümper 1996,1997,1998,1999. Minden jog fenntartva.
A terjesztés és felhasználás engedélyezett akár eredeti, akár módosított formában, csak a szerző nevét nem szabad felhasználni az ebből származó termék reklámozására a szerző írásos engedélye nélkül. Ebben az értelemben a dokumentumot szabad lefordítani, és ehhez nem kell a szerző engedélye.
A szerző semmilyen felelősséget nem vállal a dokumentum tartalmáért, semmilyen esetben nem lehet felelősségre vonni bármilyen különleges, indirekt vagy direkt kárért, vagy bármiért, ami a használhatóság, profit vagy adat elvesztésével jár, akár törvényes, gondatlan vagy törvénytelen cselekedet során követték el, és kapcsolatba hozható ezzel a dokumentummal.
Röviden: saját felelősségedre olvasd és használd. Nincs pénzvisszatérítési garancia.
Évente több száz levelet kapok a CD-írás HOGYAN-nal kapcsolatban. Kérlek, légy türelmes, nem tudok pár órán belül válaszolni. Ennek ellenére mindent azonnal elolvasok, és berakom a várakozási sorba. Mielőtt egy kérdést teszel fel, győződj meg arról, hogy a dokumentum legfrissebb verzióját használod. Ez mindig megtalálható a http://www.guug.de/~winni/linux/ címen.
A magyar fordítást Tímár András (atimar@itp.hu
) készítette.
Copyright Tímár András, 1999. Minden jog fenntartva.
A CD-R FAQ egy általános FAQ az írható CD-kről, a CD-írókról és a szükséges szoftverekről. Mivel a legtöbb CD-író képes a CD-ROM olvasására is, esetleg érdemes elolvasni a Linux CD-ROM HOWTO-t, a Linux SCSI HOWTO-t és a Linux Kernel HOGYAN-t.
A CD-ROM a Compact Disc Read Only Memory rövidítése. Ez egy olyan tárolóeszköz, amely egy optikai lézert használ egy ezüstösen fényes lemez felületén elhelyezkedő mikroszkópikus lyukak érzékelésére. Az ezüstös csillogást az alumínium hordozóréteg adja. A lyukak reprezentálják az információ bitjeit, és olyan kicsinyek, hogy több milliárd ráfér egy lemezre belőlük.
A CD-R kifejezés az írható CD-ROM rövid formája, és egy olyan CD-t értünk alatta, amelyen nincsenek meg azok a bizonyos mikroszkópikus lyukak, ezért üres. Az alumíniumréteg helyett A CD-R lemezen egy speciális (színezett) film van, amelybe bele lehet égetni a lyukakat. Ezt úgy érik el, hogy a lézert, amely alapesetben csak érzékelni képes a lyukakat, nagyobb teljesítménnyel működtetik, így az képes lyukakat égetni. Ezt az égetést csak egyszer lehet megcsinálni a CD-R lemezen. Bár lehet helyet hagyni a későbbi égetésekhez az úgynevezett multi-session CD létrehozásával.
Az újraírható CD-ROM-ot (röviden: CD-RW) azért fejlesztették ki, hogy kiküszöböljék a CD-R média korlátait. Egy CD-RW égetőben a lézer nem csak lyukakat tud égetni a felületre, hanem vissza is tudja alakítani a médiát az eredeti állapotára. Ez azért lehetséges, mert a lézer nem igazi lyukakat éget a felületre. Egy jó analógia a technikára a jéghoki. Játék közben a játékosok (lézer) összekarcolják a jeget. A kialakult mintázat (média) információt hordoz a játékrész menetéről. A játék szünetében egy Zamboni tisztítókocsi hajt a pályára, és kijavítja a karcolásokat a jég legfelső rétegének megolvasztásával. (A Zamboni a márka a jéghokipálya-tisztító járművek között.) Ezáltal a mintázat a jégről eltűnik, és egy új játékrész következhet. A tudományos elnevezés a párolgásra, lecsapódásra, olvadásra és fagyásra a ``fázisátalakulás'', ezért a CD-RW írókat ``fázisátalakító eszközöknek'' is nevezik.
Ez a HOGYAN a CD-R és CD-RW lemezek írásával foglalkozik. Üdvözlöm a fedélzeten, kapitány!
Nyugodtan felteheted, hogy a legújabb IDE/ATAPI és SCSI írók működnek Linux alatt. Az újabb meghajtók többnyire megfelelnek az MMC előírásainak, és ezért támogatottak. Ha egy adott író SCSI változata működik, akkor nagyon valószínű, hogy az IDE változata is működni fog, és fordítva. Ennek ellenére sok embert meleg és jóleső érzés tölt el, ha olvashatja meghajtója nevét és típusát egy kompatibilitási listán. Ezért nem dobtam ki ezt a listát a HOGYAN-ból.
Az alábbiakban egy részletes lista található azokról a meghajtókról, amelyek valahol valakinek
működtek a cdrecord
programmal:
Acer: CDRW 6206A
BTC: BCE 621E (IDE)
Compro: CW-7502, CW-7502B
Creative: RW 4224E, MK 4211
Dysan: CRW-1622
Elite: Elite b444.41
Grundig: CDR 100 IPW
Guillemot: Maxi CD-R 4X/8X
HP: SureStore 4020i, SureStore 6020i,
C4324, C4325
CD-writer+ 7100, CD-writer+ 7200i, CD-writer+ 7500e,
CD-writer+ 8100i, CD-writer+ 8110i,
Hi-Val: CDD 2242, CDD-3610,
JVC: XR-W2001, XR-W2010, XR-W2042, R-2626
Kodak: PCD 200, PCD 225, PCD 260, PCD 600
Matsushita: CW-7502
Memorex: CRW-620, CRW-1622, CRW-2224
Microboards: PlayWrite 2000, PlayWrite 4000RW, PlayWrite 4001RW
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
Nomai: 680.RW
Olympus: CDS 615E, CDS 620E
Optima: DisKovery 650 CD-R
OTI: CDRW 965, CDRW 975 (Socrates 1.0)
Panasonic: CW-7502, CW-7582
Philips: CDD-521/10, CDD-522
CDD-2000, CDD-2600, CDD-3600, CDD-3610
Omniwriter 26, Omniwriter 26A
Plasmon: CDR 480, CDR 4220, RF-4100, RF-4102, CDR 4400
Plextor: CDR PX-24 CS, PX-412 C, PX-R412 C
PX-R810Ti, PleXwriter 412C
Procom: PCDR 4
Ricoh: RO-1420C+, MP 1420C, MP 6200S, MP 6201S, MP 7040A
Samsung: SW-204
Sanyo: CRD-R24S
Smart and
Friendly: CD-RW226, CD-R1002, CD-R1002/PRO, CD-R1004,
CD-R2004, CD-R2006 PLUS, CD-R2006 PRO,
CD-R4000, CD-R4006, CD-R4012
Sony: CDU 920S, CDU 924, CDU 926S, CDU-928E,
CDU 948S, CDRX 100E, CDRX 120E
Taiyo Yuden: EW-50
TEAC: CD-R50S, CD-R55S, CDR-55S, CDR-56S-400
Traxdata: CRW 2260, CDR 4120, CDR 4120 Pro, CDRW 4260,
Turtle Beach: 2040R
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
CRW-2260, CRW-2260t,
CRW-4250tx, CRW-4260 t, CRW-4260 tx, CRW-4261,
CRW-4416 S
1.1. táblázat: Linux alatt támogatott CD-írók
A http://www.guug.de:8080/cgi-bin/winni/lsc.pl URL-en található egy részletes lista a Unix-szerű operációs rendszerek alatt működő és nem működő modellekről.
Ha a hardvered nem támogatott, még mindig használhatod a Linuxot a CD image elkészítésére. Ezt valószínűleg így akarod majd csinálni, mert a DOS alatti égetőprogramok nem foglalkoznak a RockRidge kiterjesztéssel. A következő lépésben egy DOS-os vagy Macintosh-os szoftverrel felírhatod az image fájlt a CD-re.
Az CD-R író proramok két csoportba oszhatók: hardvermeghajtók és adatformázók. A hardvermeghajtók a következő tulajdonságokkal rendelkeznek:
Támogatott sajátosság cdwrite-2.1 cdrecord-1.6 cdrdao
--------------------------------------------------------------
IDE/ATAPI nem igen igen
Párhuzamos Port nem igen igen
CD-RW nem igen igen
Audio CD igen igen igen
Data CD-ROM igen igen részben
Multisession részben igen nem
TAO (Track at once) igen igen igen
DAO (Disk at once) nem nem igen
1.2. táblázat: hardvermeghajtó segédprogramok
A cdwrite
fejlesztése abbamaradt, csak a teljesség kedvéért
került említésre. Használd inkább a cdrecord
programot,
mert több hardvert és sajátosságot támogat. A cdrdao
fő előnye,
hogy képes audio CD-k írására anélkül, hogy a számok között egy kb.
2 másodperces szünet lenne (disk-at-once módban írja a lemezt).
Az ``adatformázó'' csoportba tartozó segédprogramok a lemezre írandó adatok elrendezésében segítenek, egy fájlrendszert hoznak létre a lemezen.
Sajátosság mkisofs mkhybrid
----------------------------------------
ISO-9660 igen igen
RockRidge igen igen
El Torito igen igen
HFS nem igen
Joliet igen igen
Multisession igen igen
1.3. táblázat: adatformázó segédprogramok
A legszembetűnőbb különbség az ISO-9660 és az Extended-2 fájlrendszerek között az, hogy az ISO-9660 fájlrendszerre felírt fájlokat többé nem lehet módosítani. Az ISO-9660 fájlrendszer további korlátai többek között:
A RockRidge egy kiterjesztése az eredeti ISO-9660 fájlrendszernek, ami lehetővé teszi a hosszabb fájlnevek és a mélyebb könyvtárstruktúrák használatát. Ha egy RockRidge kiterjesztéssel készített CD-ROM-ot olvasunk Linux alatt, akkor a fájl összes ismert tulajdonságai megjelennek, mint például tulajdonos, csoport, engedélyek és szimbolikus linkek. Teljesen olyan, mint egy unixos fájlrendszer. Ezek a kiterjesztések nem érhetőek el ha DOS vagy Windows alatt olvassuk a CD-ROM-ot.
Az El Torito bootolható CD-ROM előállítására használható. A használatához az is szükséges, hogy a PC BIOS-a támogassa a CD-ről történő rendszerindítást. Nagy vonalakban arról van szó, hogy a CD-ROM első 1,44 vagy 2,88 megabájtja egy hajlékony lemez képét tartalmazza, amelyet nekünk kell megadni. Ezt a területet úgy kezeli a BIOS, mint egy valódi hajlékony lemezt, és elindítja a rendszert róla. Ennek következménye, hogy amíg erről a virtuális lemezről bootolnuk, addig nem érhető el az eredeti A: drive (/dev/fd0).
A HFS lehetővé teszi, hogy egy Macintosh gépen úgy olvassuk a CD-ROM-ot, mintha az egy HFS kötet lenne. (A HFS a Macintosh natív fájlrendszere.)
A Joliet (sok más mellett) lehetővé teszi a hosszú fájlnevek használatát a Windowsok újabb változatai (95, 98, NT) számára. A szerző nem ismer olyan segédprogramot, amivel hosszú fájlneveket kezelhetnénk DOS vagy Windows 3.11 alatt.
A 2.3. fejezet felsorolja az itt említett szoftverek elérhetőségét.
Ha szeretnél csatlakozni a fejlesztő csapathoz (azzal a szándékkal,
hogy aktívan segítsd őket), akkor küldj egy levelet a
cdwrite-request@other.debian.org
címre, és a levél törzsébe
írd bele: subscribe
.
Ez a fejezet a CD-írók minden fajtájára vonatkozik, tehát
SCSI-ra, IDE/ATAPI-ra és párhuzamos portra köthetőre egyaránt.
Az utóbbi két típus egy olyan speciális meghajtóprogramot
(compatibility driver) igényel, amely segítségével igazi SCSI
eszköznek látszik. Egyfelől hasznos ez az egységesítési stratégia
(``minden SCSI''), mert az alkalmazások szintjén megoszthatod
a tudásod a többi felhasználóval, függetlenül attól, hogy
nekik milyen CD-írójuk van. Másfelől viszont újra kell
konfigurálnod például az audio CD-lejátszót vagy a mount
segédprogramot, hiszen a meghajtók neve megváltozik.
Például ha eddig /dev/hdc
néven érted el az ATAPI
CD-íródat, akkor a SCSI compatibility driver telepítése után
/dev/scd0
néven kell rá hivatkoznod.
Miután sikeresen telepítetted a hardvert és a Linux rendszer többi
részét, a `cdrecord -scanbus
' parancs megmutatja a SCSI
buszra csatlakozó eszközöket.
A fejezet célja, hogy segítsen úgy beállítani a Linuxot, hogy
a végén valami ilyesmit kapj:
shell> cdrecord -scanbus
Cdrecord release 1.7a1 Copyright (C) 1995-1998 Jörg Schilling
scsibus0:
0) 'Quantum ' 'XP34300 ' 'F76D' Disk
1) 'SEAGATE ' 'ST11200N ' '8334' Disk
2) *
3) 'TOSHIBA ' 'MK537FB/ ' '6258' Disk
4) 'WANGTEK ' '5150ES SCSI 36 ' 'ESB6' Removable Tape
5) 'EXABYTE ' 'EXB-8500-85QUE ' '0428' Removable Tape
6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
7) *
scsibus1:
100) 'Quantum ' 'XP31070W ' 'L912' Disk
101) *
102) *
103) 'TEAC ' 'CD-R55S ' '1.0H' Removable CD-ROM
104) 'MATSHITA' 'CD-R CW-7502 ' '4.02' Removable CD-ROM
105) *
106) 'YAMAHA ' 'CDR400t ' '1.0d' Removable CD-ROM
107) *
2.1. lista: a SCSI buszra csatlakozó eszközök vizsgálata
A példa Jörg Schillingtől származik, és összesen négy CD-írót
mutat. Megjegyzendő, hogy a -scanbus
a többi eszközt is megjeleníti,
pl. közönséges CD-ROM-okat vagy merevlemezeket. Az utolsó oszlop megadja
az eszköz SCSI leírását, amiből nem lehet egyértelműen eldönteni, hogy
CD-íróról, vagy közönséges CD-ROM-ról van-e szó. Szerencsére a középső
oszlopbeli termékazonosító sokszor segít; CD-íróra utal az `R', a `-R' és
a `-RW'.
A Linux kernel sokféle meghajtóprogrammal felszerelhető. A meghajtóprogramokat belefordíthatjuk a kernelbe statikusan, vagy lefordíthatjuk őket modulként is. A modulokat csak akkor kell betölteni, ha szükség van rájuk. Ez az utóbbi módszer ajánlható akkor, ha olyan meghajtóprogramokról van szó, amelyek nem létfontosságúak a rendszer talpraállásához, ugyanis így kisebb és gyorsabb kernelt kapunk. Vigyázat, néhány meghajtóprogram létfontosságú a rendszer számára az induláskor, ezeket nem szabad modulba fordítani. Például tegyük fel, hogy a rendszer egy IDE merevlemezen foglal helyet. Ekkor az IDE meghajtóprogramnak a kernelben kell lenni, nem modulban.
Három fajtája van a CD-íróknak: SCSI, IDE/ATAPI és külső egységek, amelyek a párhuzamos porton keresztül működnek. Az alábbi táblázat bemutatja, hogy kell konfigurálni a Linux kernelt ezekhez a hardverekhez. A táblázat első oszlopa a kernel konfigurációs menüjének azt pontját jelöli, ahol a beállítás elvégezhető. A második oszlop a kernel konfigurációs menüjéből vett leírása az adott beállításnak. A harmadik oszlopban szerepel a kapott modul neve. A SCSI, IDE és PP oszlopok tartalmazzák a szükséges beállításokat az adott hardverhez (PP = párhuzamos port).
Menü Leírás Modul SCSI IDE PP
------------------------------------------------------------
BLOCK Enhanced IDE/MFM/RLL... Y
BLOCK IDE/ATAPI CDROM ide-cd M
BLOCK SCSI hostadaptor emulation 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 Y Y
FS Microsoft Joliet cdrom... joliet M/Y M/Y M/Y
2.1. táblázat: meghajtók kiválasztása a különböző írótípusokhoz
Az Y azt jelenti, hogy igen, és hogy ezt be kell rakni a kernelbe. Az M jelentése modul, azaz ezt modulba kell fordítani. Az Y/M esetén lehet választani a kettő közül. (A sorrend jelzi, hogy melyikkel lehet kevesebb probléma.) Ha valahova nincs semmi odaírva, akkor az azt jelenti, hogy ott nem kell megváltoztatni a kernel beállítását. Ha nem piszkálod ezeket az üresen hagyott a beállításokat, akkor jó esélyed van arra, hogy a kernel továbbra is működni fog (amennyiben eddig működött). Különösen olyan környezetben van értelme minél több dolgot modulba fordítani, ahol IDE és SCSI eszközök vegyesen vannak.
A loopback eszköz lefordítása nem kötelező. Ennek segítségével tesztelheted az image fájlt felírás előtt. Ha szeretnéd a CD-ROM-okat elolvasni, akkor szükség van az ISO-9660 fájlrendszer támogatására. Ez a meghajtóprogram magában foglalja a RockRidge kiterjesztés támogatását is. A Microsoft Joliet kiterjesztést explicite hozzá kell adni az ISO-9660 fájlrendszerhez. Minden esetben szükség lesz alacsonyszintű hardvermeghajtókra. Az alacsonyszintű azt jelenti, hogy ezek a meghajtóprogramok közvetlenül a hardverrel lépnek kapcsolatba. Rengeteg alacsonyszintű meghajtóprogram van a SCSI-hoz és a párhuzamos porthoz.
Ha szeretnéd a modulokat betölteni, akkor sorold fel őket
az /etc/modules
konfigurációs fájlban, vagy futtasd a
kerneld
vagy a kmod
démonokat, amelyek automatikusan
betöltik a modulokat, ha a kernelnek szüksége van rájuk. A modulokkal
kapcsolatos dolgok megkönnyítésére hozzáadhatod a következő sorokat az
/etc/conf.modules
fájlhoz:
alias scd0 sr_mod # betölti az sr_mod modult ha az scd0 eszközhöz kell fordulni
alias scsi_hostadaptor ide-scsi # SCSI kártya emuláció
options ide-cd ignore=hdb # ha a /dev/hdb a CD-író
2.2. lista: néhány beállítás IDE/ATAPI írókhoz
Az alias
-ok ugyanarra a modulra más nevet vezetnek be, nem létszükséglet
használni őket. Az options
segítségével állíthatod be, hogy a modul betöltése
mindig ugyanúgy történjen, például miután sikeresen használtad az modprobe/insmod
programokkal. Ha többet szeretnél megtudni a különböző modulok különböző beállításairól, akkor olvass tovább!
Leírás parancs
-------------------------------------------------------------
Megmutatja az aktív meghajtókat cat /proc/devices
Kilistázza az aktív modulokat cat /proc/modules
Kilistázza az elérhető modulokat modprobe -l
Eltávolít egy modult modprobe -r
Betölt egy modult manuálisan modprobe
Betölt egy modult rendszerindításkor echo "nézd meg az /etc/modules fájlt"
(olvasd el a disztribúciód dokumentációját)
Betölt egy modult, amikor szükséges echo "futtasd a kmod vagy a kerneld démont"
2.2. táblázat: kernelmodulokkal és meghajtóprogramokkal foglalkozó parancsok
Ha egy olyan modulra van szükséged, amely nem található meg a rendszeredben,
akkor újra kell fordítanod, és újra kell telepítened a kernelt. További információkért
olvasd el a Kernel HOGYAN-t. A kernelmodulokról szóló legfrissebb információk a
Modules HOWTO-ban olvashatóak. Ha sikeresen megtaláltad vagy lefordítottad a
szükséges modulokat, akkor vagy írd be a nevüket az /etc/modules
fájlba, vagy hagyd, hogy automatikusan betöltse őket egy megfelelő program
(kmod, kerneld). Ha nem vagy biztos a dologban, olvasd el a disztribúciódhoz adott
dokumentációt.
Ha a magad ura vagy, akkor telepítsd a ``Linux Kernel source'' csomagot, amelyet a disztribúciódhoz adtak, és add ki a következő parancsokat:
cd /usr/src/linux
make menuconfig # kövesd a menüket és az utasításokat
make dep
make zImage # vagy "make bzImage"
# helyezz be egy lemezt a meghajtóba
dd if=arch/i386/boot/zImage of=/dev/fd0
make modules
make modules_install
2.3. lista: rendszerindító hajlékony lemez készítése
A fenti parancsokkal egy rendszerindító hajlékony lemez készíthető. Ha tényleg fogalmad sincs, hogy ez az egész miről szól, akkor jobban teszed, ha előbb elolvasod a Kernel HOGYAN-t vagy valami hasonló írást, vagy segítséget kérsz egy barátodtól, mielőtt teljesen tönkreteszed a rendszered. Ne feledd, a kernel a rendszer szíve.
ATAPI CD-író tulajdonosok figyelem: ha a kernel ATAPI eszközként ismeri fel az írót a rendszerinduláskor, akkor nem lehet Linux alatt CD-íróként használni. Ha egyszer az IDE/ATAPI meghajtóprogram elkapta az eszközt, a SCSI meghajtóprogram (a SCSI-kártya emulációra ültetve) már nem tudja ezt megtenni. Fordítsd újra a kernelt úgy, hogy a CD-ROM-mal kapcsolatos dolgokat modulba rakod (lásd a fenti táblázat).
A 2.2 és e feletti kernelverzióknál beállíthatod az ide-cd meghajtóprogram
mohóságát az ``ignore='' paraméterrel. Ha ezt beállítod, akkor a meghajtóprogram
nem fogja megragadni a megadott eszközt, úgyhogy az rendelkezésre fog állni, amikor
a SCSI-kártya emuláció elindul. Például használd a `modprobe ide-cd ignore=hdb
'
parancsot, ha az ATAPI író a hdb, és azt szeretnéd, hogy az ide-scsi meghajtóprogram
SCSI eszközként kezelje a hdb-t (általában sr0 lesz). Ezt nem lehet sehogy megadni
a kernel parancssorában (mint a 2.0 sorozatnál).
A kernel 2.2.9-es verziójáig ne engedélyezd a CONFIG_SCSI_MULTI_LUN (``probe for multiple luns'') opciót és az ide-scsi támogatást egyszerre, mert egy hiba az ide-scsi meghajtóprogramban ezt nem teszi lehetővé.
Néhány felhasználó ütközéseket tapasztalt egyes előre lefordított binárisok és a 2.2 sorozat között. A problémát a Linux kernel okozza. A lehetséges megoldások:
cdrecord
-ot, így az alkalmazkodik
a linux/include/scsi/sg.h
-ban levő értékekhez. Ezek az értékek meg kell hogy egyezzenek
az aktuálisan futó kernel értékeivel, mivel az sg felhasználói felülete egyszerű.Úgy hallottam, hogy a 2.2.10 és e feletti kernelekben használhatjuk a 2.0.x sorozatban megismert lehetőséget éppúgy, mint a korábbi 2.2.x verziókban meglevő lehetőséget. Én azt a stratégiát javaslom, hogy mondd meg egyértelműen a kernelnek, hogy melyik eszközhöz melyik meghajtóprogram való, úgy ahogy a 2.0.37-es verziónál tehetnéd. A következő fejezet megvilágítja ezt a módszert.
A 2.0.31 előtti kernelekben számos hiba van, és nem tudják elolvasni a CD-ROM-ról az utolsó fájlt. Frissíts 2.0.37-re vagy újabbra. Ebben a verzióban az eddig ``SCSI emulation''-nak nevezett sajátosságot átnevezték a precízebben megfogalmazott ``SCSI host adaptor emulation''-ra.
A 2.0.37 és e feletti kernelverziókban kiválaszthatod, hogy melyik meghajtóprogramot
(IDE vagy SCSI) szeretnéd használni az adott ATAPI eszközhöz. Pontosabban hozzáadhatod
a ``SCSI host adaptor emulation'' sajátosságot a kernelhez, és az adott eszközhöz a
kernel parancssorában aktivizálhatod az emulációt rendszerindításkor. Például
ha a CD-író a /dev/hdb
, akkor add hozzá hdb=ide-scsi
kifejezést a
parancssorhoz. A következő listákban olvasható, hogy hogyan kell módosítani a
LILO
és a chos
bootmanagerek konfigurációs fájljait, hogy állandóvá tegyük ezeket a beállításokat.
image=/boot/zImage-2.0.37
label=Linux
read-only
append="hdb=ide-scsi"
2.4. lista: a lilo egy lehetséges beállítása (/etc/lilo.conf)
linux "Linux 2.0.37" {
image=/boot/zImage-2.0.37
cmdline= root=/dev/hda5 readonly hdb=ide-scsi
}
2.5. lista: a chos egy lehetséges beállítása (/etc/chos.conf)
Miután telepítetted az összes szükséges meghajtóprogramot, indítsd újra a gépet az új kernellel. Ez minden olyan tulajdonsággal rendelkezni fog, amire a következő fejezetekben szükség lesz.
A devfs felhasználóinak nem kell törődniük az eszközfájlok manuális beállításával. Ha devfs-t használsz, minden meg fog jelenni automatikusan a megfelelő helyen.
Lépj be a /dev
könyvtárba, és nézd meg, hogy megvannak-e a
loopback eszközök. Nem súlyos hiba, ha nincsenek ott, de hasznos lehet,
ha ott vannak (lásd 3.5. fejezet). Ha már ott vannak, akkor az ls
parancs
megmutatja őket:
shell> cd /dev
shell> ls loop*
loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
2.6. lista: a loopback eszközök
Ha nincsenek meg ezek az eszközfájlok, akkor hozd létre őket a
/dev/MAKEDEV
script segítségével:
shell> cd /dev/
shell> modprobe loop # a "loop" nevű modul betöltése
shell> ./MAKEDEV loop
2.7. lista: a loopback eszközöket létrehozó parancsok
Az utolsó parancs csak akkor fog sikerülni, ha a loop
modul
a kernelben van. Amit eddig a loop eszközök kezeléséről olvastál, az a többi
eszközre is érvényes (sg*, pg*, hd*, ...), ezért ezeket nem tárgyalom
külön ebben a dokumentumban.
Ha a Linux diszribúciód nem tartalmazza a /dev/MAKEDEV scriptet, akkor kézzel kell létrehozni az eszközfájlokat egy ilyen ciklussal:
for i in 0 1 2 3 4 5 6 7
do
mknod /dev/loop$i c 7 $i
done
Az ATAPI az IDE eszközök számára készített kiterjesztés, amely minden újabb IDE eszközben megvan. Ez a kiterjesztés lehetővé teszi a SCSI protokoll használatát az IDE buszon. Az ide-scsi modullal együtt, amely az IDE-vezérlőt részben SCSI-vezérlővé alakítja, úgy használhatjuk az IDE/ATAPI eszközöket, mintha SCSI eszközök lennének. Töltsd be ezt a modult és folytasd a munkát, mintha SCSI CD-íród lenne.
Győződj meg róla, hogy az írót felismeri a számítógéped BIOS-a. Semmi értelme továbblépni, ha a számítógép nem fogadja el a hardvert. (Az a tény, hogy nem köpi ki, nem vehető elfogadásnak, a képernyőn egy üzenetnek kell megjelennie.)
Ha a SCSI eszközt a párhuzamos porton keresztül szeretnéd a gépedhez kötni (ne keverd össze a párhuzamos porton keresztül csatlakozó IDE eszközökkel), akkor egy különleges kábelre és egy különleges kernel-meghajtóprogramra van szükséged. Olvasd el a http://www.torque.net/parport/parscsi.html weblapot, ha többet szeretnél tudni erről.
A /dev/sd* és a /dev/sr* eszközfájlok, amelyek a SCSI merevlemezeknek és a SCSI CD-ROM meghajtóknak felelnek meg, csak blokkokban tudnak adatokat küldeni és fogadni. Emiatt nagyon gyorsak, és nagyon alkalmasak adattárolásra. A CD-író lézerének vezérlése bonyolultabb, és nem elégséges a blokkos író/olvasó megközelítés. Mivel az sd* és sr* eszközöket célszerű a tiszta és gyors állapotukban meghagyni, egy új típusú SCSI eszköz került bevezetésre, az úgynevezett általános SCSI eszköz. Bármit meg lehet csinálni a SCSI hardverrel az általános eszközökön keresztül, nincsenek rögzítve egy bizonyos célra, ezért hívják általánosnak őket.
Akárcsak a többi eszközt, ezt is a /dev könyvtárban kell keresni (konvenció szerint):
shell> cd /dev
shell> ls sg*
sg0 sg1 sg2 sg3 sg4 sg5 sg6 sg7
Ha nincsenek meg ezek az eszközfájlok, akkor hozd létre őket a
/dev/MAKEDEV
script segítségével:
shell> cd /dev/
shell> ./MAKEDEV sg
Ha a Linux diszribúciód nem tartalmazza a /dev/MAKEDEV scriptet, akkor kézzel kell létrehozni az eszközfájlokat egy ilyen ciklussal:
for i in 0 1 2 3 4 5 6 7
do
mknod /dev/sg$i c 21 $i
done
Fogalmam sincs, sajnálom. Olvasd el a http://www.torque.net/parport/paride.html weblapot, vagy a /usr/src/linux/Documentation/paride.txt fájlt.
Egy részletesebb lista a CD-ROM készítéséhez használatos segédprogramokról megtekinthető a http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html weblapon.
A következő csomagok egyike szükséges a CD-R lemezre felírandó image fájl készítéséhez (csak adatokat tartalmazó CD-ROM-okhoz kell):
ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/ (mkisofs)
ftp://ftp.ge.ucl.ac.uk/pub/mkhfs (mkhybrid)
Az image fájl CD-re írásához a következő csomagok egyike kell:
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ (cdrecord)
http://www.ping.de/sites/daneb/cdrdao.html (cdrdao)
Ne higgy a (régi) mkisofs
kézikönyvoldalának, amely azt állítja, hogy
az 1.5-ös verziójú cdwrite
programra van szükséged. Nyugodtan használd
a cdrecord
-ot. Jegyezd meg, hogy az újabb cdrecord
verziók csomagjában
egy továbbfejlesztett mkisofs
van, és még sok más eszköz a misc/
alkönyvtárban
(readcd
, isosize
), amelyek másutt nem találhatóak meg.
A keretprogram tényleg csak egy keret a Linux alatt. Ez azt jelenti, hogy külön kell telepíteni a parancssoros verziót is, de egy szebben kinéző módon férhetsz hozzá.
Az X-CD-Roast egy olyan programcsomag, amely céljául tűzte ki az egyszerű
CD-írást Linux alatt. Parancssoros programokat, mint a cdrecord
és az
mkisofs
, egyesít egy szép grafikus felhasználói felület alatt.
http://www.fh-muenchen.de/home/ze/rz/services/projects/xcdroast/e_overview.html
A BurnIT egy JAVA keretprogram a cdrecord
, az mkisofs
és a
cdda2wav-0.95
programokhoz, így egy teljes CD-író csomagot képez
a Unix platformon. Letölthető a
http://sunsite.auc.dk/BurnIT/
webhelyről.
Az XDaodio egy grafikus keretprogram a cdrdao
-hoz. Fő célja az audio CD-k
egy az egyben történő lemásolása.
http://www.lrz-muenchen.de/~MarkusTschan/
A CD-írás két lépésből áll Linux alatt:
cdrecord
segédprogram segítségévelEz a fejezet részletesen tárgyalja az adat és audio CD készítésének lépéseit.
Megjegyzendő, hogy a felírandó adatok összegyűjtése általában több időt vesz igénybe, mint az ember gondolná. Ne feledd, a hiányzó fájlokat nem lehet hozzáadni a CD-hez az írás és a lezárás után.
Szintén tartsd észben, hogy a CD-n bizonyos terület az ISO-9660 fájlrendszer információi számára használódik el, ez általában néhány MB. 620 MB adat mindig elfér egy 650 MB-os CD-n.
Használat előtt bármilyen adattároló médiumot (pl. hajlékony lemez, merevlemez, CD) fájlrendszerrel kell ellátni (DOS-osan fogalmazva: formázni). A fájlrendszer felelős az adathordozón elhelyezett fájlok szervezéséért és tárolásáért.
A szokásos segédprogramok, amelyek merevlemezek partícióin hoznak létre fájlrendszereket, úgy járnak el, hogy egy üres fájlrendszert hoznak létre, amelyet csatolás után a felhasználó tölthet fel fájlokkal, szükség szerint. Az írható CD csak egyszer írható, ezért ha egy üres fájlrendszert hoznánk létre rajta, akkor ugyan meg lenne formázva, de egyszer és mindenkorra üres maradna. Ez az újraírható nyersanyagra is igaz, nem törölhesz tetszőleges szektorokat, mindig az egész tartalmat le kell törölni.
Ezért szükség van egy olyan segédprogramra, amely a fájlrendszer létrehozása közben
másolja fel a fájlokat a CD-re. Ez a program az mkisofs
. Egy példán bemutatva a használatát:
mkisofs -r -o cd_image magangyujtemeny/
`---------' `--------------'
| |
a kimeneti fájl ezt a könyvtárat veszi forrásnak
A `-r
' kapcsoló hatására az összes fájl mindenki számára olvashatóvá
válik a CD-n, valamint RockRidge kiterjesztéssel készül az image.
Valószínűleg mindig akarod ezt a kapcsolót, kivéve ha tényleg tudod, hogy mit csinálsz.
(Segítség: az `-r
' kapcsoló nélkül a csatolási pont a
magangyujtemeny
engedélyeivel fog rendelkezni!)
Az mkisofs
megpróbálja az összes fájlnevet a DOS által használt 8.3 alakra
leképezni, a lehető legnagyobb kompatibilitás érdekében. Névütközés esetén
(különböző fájloknak ugyanaz a 8.3 neve), számokat használ a fájlnevekben, és a
választott neveket kiírja a standard hibakimenetre, ami általában a képernyő.
Ne aggódj, Linux alatt sosem fogod látni ezeket a 8.3 fájlneveket, mert a Linux
használja a RockRidge kiterjesztést, amely tartalmazza az eredeti fájlinformációkat
(engedélyek, fájlnév, stb.).
Felvetődhet a kérdés, hogy miért nem küldi az mkisofs
közvetlenül az
íróra a kimenetet. Három oka van:
mkisofs
nem tud semmit a CD-írókról.Van egy módszer, amellyel egy menetben írhatunk CD-t, ez lejjebb kerül kifejtésre.
Az ember gondolhatna arra is, hogy csinál egy extra partíciót, és oda írja az image-et egy fájl helyett. Nem javaslom ezt a megoldást, mert ha nem a megfelelő partícióra írsz (egy elgépelés miatt), akkor az egész Linux rendszered megsemmisülhet (értsd: az enyém egyszer megsemmisült így...). Ráadásul ez helypazarlás is, mert a CD image ideiglenes, le lehet törölni az égetés után. A nyers partíció alkalmazásának egyetlen előnye, hogy megtakarítod a 650 MB-os ideiglenes fájl letörlésével járó időt.
A Linux képes a fájlrendszeréhez úgy csatolni fájlokat, mintha azok partíciók lennének a lemezen. Ez a sajátosság igen hasznos, mert ellenőrizheted, hogy a CD image-en levő fájlok könyvtárstruktúrája és engedélyei megfelelnek-e az elképzeléseidnek. Bár a nyersanyag ma már nagyon olcsó, az írás művelete még elég lassú. Egy gyors ellenőrzéssel időt spórolhatsz.
A cd_image
fájl csatolása a /cdrom
könyvtár alá a következő paranccsal történhet:
mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
Ezek után megvizsgálhatod a fájlokat a /cdrom
alatt -- úgy fognak
megjelenni, ahogy az igazi CD-n. A CD image lecsatolásához add ki az
`umount /cdrom
' parancsot. (Vigyázat: a 2.0.31 előtti Linux kernelekben
van egy hiba, emiatt az utolsó fájl a /cdrom
könyvtárban nem lesz teljesen
olvasható. Használj egy újabb kernelt, mondjuk a 2.0.36-ost. A cdrecord
program
-pad
kapcsolója csak audio CD-kre használható, és az mkisofs
program
-pad
kapcsolója csak egy folt alkalmazása után használható. A foltozás ugyanakkora
munka, mint a frissítés egy hibátlan kernelre.)
Megjegyzés:
Amount
egyes ősi verziói nem képesek kezelni a loopback eszközt. Ha te is ilyen régimount
-tal rendelkezel, akkor frissítsd a Linuxodat. Sok ember javasolta már, hogy írjam bele ebbe HOGYAN-ba a legújabb mount csomag fellelhetőségét. Ezt mindig visszautasítom. Ha a Linux disztribúciód az ősimount
programot használja, jelentsd hibaként. Ha a Linux disztribúciódat nehéz frissíteni, jelentsd hibaként. Ha minden olyan információt felsorolnék, ami ahhoz kell, hogy a rosszul tervezett Linux disztribúciók hibáit ki lehessen javítani, akkor ez HOGYAN sokkal nagyobb és nehezebben olvasható lenne.
Már nics hátra sok tennivaló. Ha még nem próbáltad, itt a remek alkalom a
cdrecord -scanbus
parancs kiadására. Ebből megtudhatod, hogy melyik SCSI eszközre csatlakozik a
CD-író. Vannak más módszerek is, hogy megszerezd azt az információt, amelyet
a cdrecord
ilyen szépen kiír, de ezeket kivettem a HOGYAN-ból (különösen
az általános SCSI eszközök veszélyes elnevezési sémáját).
Mielőtt megmutatnám az utolsó parancsot, hadd figyelmeztesselek, hogy a CD-írókat állandó adatfolyammal kell táplálni, mert kicsi az adatbufferük. Tehát a CD image CD-re írását nem szabad megszakítani, különben rossz lesz a CD. Nagyon könnyű megszakítani az adatfolyamot egy nagy fájl letörlésével. Például, ha törölsz egy régi 650 MB-os image fájlt, akkor a kernelnek 650.000 blokk információit kell frissítenie (feltéve, hogy 1 kilobájtot foglal el egy blokk a fájlrendszeren). Ez némi időt vesz igénybe, nagyon valószínű, hogy annyira lelassítja a lemezműveleteket, hogy az adatfolyam megszakad egy pár másodpercre. Ellenben a levelek olvasása, a web böngészése, sőt még a kernelfordítás sem befolyásolja az írási folyamatot (a modern gépeken).
Jegyezd meg, hogy egyetlen író sem képes a lézert arra a helyre pozícionálni, ahol megszakadt az írás egy zavar miatt. Ezért bármilyen erős rázkódás vagy más mechanikai hatás nagy valószínűséggel tönkreteszi a CD-t, amit éppen írsz.
Ha lélekben elkészültél, ölts fel egy fekete köntöst, szorozd meg a CD-író SCSI-id-ját a SCSI-revision értékével, és gyújts annyi gyertyát, mondj el fennhangon két versszakot az ASR-FAQ-ból (alt.sysadmin.recovery hírcsoport), és végül írd be:
shell> SCSI_BUS=0 # a 2.1. listáról véve: "scsibus0:"
shell> SCSI_ID=6 # a 2.1. listáról véve: "TOSHIBA XM-3401"
shell> SCSI_LUN=0
shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
-data cd_image
# ugyanaz, mint fenn, csak rövidebben:
shell> cdrecord -v speed=2 dev=0,6,0 -data cd_image
A jobb olvashatóság kedvéért az író koordinátái három környezeti változóban
tárolódnak, amelyek a következők: SCSI_BUS, SCSI_ID, SCSI_LUN.
A -data
kapcsolót nem kötelező megadni, csak azért írtam ki mégis, hogy
a parancssor jól összevethető legyen az audio CD-hez használatos parancssorral.
Ha a cdrecord
-ot egy CD-RW lemez újraírásához használod, hozzá kell tenned
a blank=...
opciót, hogy a régi tartalom letörlődjön. Olvasd el a kézikönyvoldalt,
ott több módját is tárgyalják a CD-RW letörlésének.
Mostanában, amikor rajtam kívül mindenkinek 400 MHz-es gépe van, az emberek
az mkisofs
kimenetét közvetlenül a cdrecord
-ra irányítják:
shell> IMG_SIZE=`mkisofs -R -q -print-size magangyujtemeny/ 2>&1 \
| sed -e "s/.* = //"`
shell> echo $IMG_SIZE
shell> [ "0$IMG_SIZE" -ne 0 ] && mkisofs -r magangyujtemeny/ \
|cdrecord speed=2 dev=0,6,0
tsize=${IMG_SIZE}s -data -
# ne feledd az s-t --^ ^-- az STDIN-ről olvas
Az első parancs egy üres menet, amely meghatározza az image méretét (a cdrecord
disztribúcióhoz adott mkisofs
kell ehhez a feladathoz). Elképzelhető,
hogy a te íródnak nem kell tudni a felírandó image méretét, úgyhogy ezt a sort akár el is
hagyhatod. Az image méretét a tsize
paraméterben kell megadni a cdrecord
-nak,
ez az IMG_SIZE környezeti változóban tárolódik. A második parancs az mkisofs
és a
cdrecord
egymásutánja egy csővezetékkel összekötve.
Az audio CD írása hasonlít az adat CD-nél megismert folyamathoz. Két jelentős különbség van. Az egyik, hogy az audio CD hangsávokból áll, amelyek külön-külön image-ekben vannak. Tehát ha tíz számot szeretnél felvenni a CD-re, akkor tíz image-et kell készítened. A másik különbség, hogy az image-ek formátuma nem ISO-9660 (vagy amelyik fájlrendszert szereted), hanem ``16 bites sztereó hangminta PCM kódolással 44100 minta/másodperc mintavételezéssel (44,1 kHz)''.
Az egyik segédprogram, amely hangfájljaidat a kívánt formátumra alakítja,
a sox
. Használata egyszerű:
shell> sox killing-my-software.wav killing-my-software.cdr
Ez a parancs a killing-my-software című dalt WAV formátumról CDR audio formátumra
konvertálja. További részletek a sox
által ismert formátumokról és
fájlnév-kiterjesztésekről a sox
kézikönyvoldalán olvashatóak.
Mivel a konverzió eredménye túl sok lemezhelyet foglal, beépítették azt a
sajátosságot a cdrecord
-ba, hogy közvetlenül kezelje a WAV és AU
formátumokat. Így aztán ha a hangfájljaidnak .wav vagy .au kiterjesztése van
(és a mintavétel ``sztereó, 16 bit, 44,1 kHz''), akkor használhatod image-ként
őket manuális konverzió nélkül.
A cdrecord
akkor írja fel az image-eket hangsávként, ha a -audio
kapcsolót adod meg. A többi paraméter megegyezik az adat CD írásánál
használtakkal (hacsak nincsenek különös igényeid). A következő három példa
ugyanazt csinálja, de különféle formátumokból olvassák a hangsáv adatait:
shell> cdrecord -v speed=2 dev=0,6,0 -audio track1.cdr track2.cdr...
shell> cdrecord -v speed=2 dev=0,6,0 -audio track1.wav track2.wav...
shell> cdrecord -v speed=2 dev=0,6,0 -audio track1.au track2.au...
Van egy érdekes eset, az MPEG Layer 3 fájlok, amelyeket az `mpg123 -s track1.mp3 > track1.cdr
'
paranccsal lehet CD formátumúra hozni. (Vigyázat: ez olyan fájlt hoz létre, amelynek a bájtsorrendjét
meg kell fordítani a -swab
kapcsolóval a cdrecord
parancssorában.)
A másik irányú konverzió a 8hz-mp3
programmal valósítható meg. Szedd le a
WAV fájlt a CD-ről a cdda2wav
programmal, és utána alakítsd MP3 formátumra a
8hz-wav
programmal. (A témáról bővebben lásd: MP3 HOGYAN -- a ford.)
Egy halom MP3 fájlból így kell audio CD-t csinálni:
for I in *.mp3
do
mpg123 -s $I | cdrecord -audio -pad -swab -nofix -
done
cdrecord -fix
A géped sebességétől függően esetleg le kell csökkentened az írási
sebességet a speed=1
paraméterrel a cdrecord
parancssorában.
Ha a speed=4
paramétert használod, akkor a gépednek le kell tudni játszani az
MP3 fájlokat négyszeres sebességgel. Az mpg123
rengeteg CPU időt fogyaszt!
Ha nem vagy benne biztos, futtass egy üres menetet a -dummy
kapcsolóval (nem
kapcsolja be a lézert). Ha így teszel, egy olyan audio CD-t kapsz, amelyen minden
szám között két másodperc szünet van.
Ha szeretnél megszabadulni a zeneszámok közötti szünetektől, akkor DAO
(disk-at-once) módban kell írni a CD-t a fent ismertetett TAO (track-at-once) mód
helyett. Jelenleg a cdrdao
program támogatja a legjobban a DAO
módot. Nézd meg a honlapját a részletekért.
A read-cd
paraméter használatával akár még egy az egyben is másolhatsz
audio CD-ket.
Nem érdemes túl sok szót vesztegetni erre a témára. Add meg az egymás után következő
image-ek típusát a -data
és a -audio
kapcsolókkal. Példa:
cdrecord -v dev=0,6,0 -data cd_image -audio track*.cdr
Ez az a fejezet, amelyet általában ``Gyakran feltett kérdések válaszokkal'' néven ismernek. Ha problémád van a partnereddel, gyerekeddel vagy a kutyáddal, nyugodtad írd meg, amennyiben kapcsolatos a CD-írással, vagy egyébként szórakoztató.
Próbáld ki! Használd a cdrecord -dummy
kapcsolóját. Ez egy üres égetési
feladatot végez el. Csinálj mindenfélét, amit égetés közben csinálnál,
és figyeld meg, hogy túléli-e az égetési folyamat.
Amennyiben az mkisofs kimenetét közvetlenül a cdrecord bemenetére irányítod,
az intenzív lemezhasználattal járó feladatok, például a locate
adatbázisának frissítése, csökkentik az átvitt adatmennyiséget, és elronthatják
a CD-t. Jobban teszed, ha ellenőrzöd, hogy ilyen folyamatokat ne indítsanak el
a cron
, az at
vagy az anacron
programok a CD-írás
ideje alatt.
A fájlok töredezettsége általában olyan kicsi, hogy nem észrevehető a hatása. Ennek ellenére könnyen lehet olyan patologikus eseteket létrehozni, amelyekben a merevlemez átviteli sebessége 100 kilobájt/másodperc alá csökken. Ne csinálj ilyet! :-)
Igen, a merevlemezen levő fájlok töredezetté válnak az idők során. Minél inkább tele van a fájlrendszer, annál inkább így van ez. Mindig hagyj 10-20% üres helyet, és akkor nem kell aggódnod a CD-írás miatt.
Ha nem vagy biztos benne, akkor nézd meg a rendszerinduláskor kiírt üzeneteket. A töredezettség mértéke kiíródik a fájlrendszerek ellenőrzése közben. A következő nagyon veszélyes paranccsal is megnézheted ezt az értéket:
shell> e2fsck -n /dev/sda5 # A '-n' fontos!
[törölve -- nem érdekelnek a hibaüzenetek]
/dev/sda5: 73/12288 files (12.3% non-contiguous)
Ebben a példában a töredezettség mértéke nagyon magasnak tűnik, viszont csak 73 nagyon kis fájl van a fájlrendszerben. Tehát ez az érték nem jelez veszélyt.
Van egy e2defrag nevű kísérleti segédprogram, amely töredezettségmentesíti az Extended-2 fájlrendszert. A jelenlegi verzió még annyira sem működik megbízhatóan, hogy magáncélokra használjuk. Ha komolyan szeretnéd töredezettségmentesíteni a fájlrendszeredet, csinálj egy biztonsági mentést (vagy ami még jobb: kettőt), gyakorold az adatok visszaállítását, azután hozz létre egy új fájlrendszert (ez megsemmisíti a régit) és állítsd vissza az adatokat. Jelenleg ez a módszer a legbiztonságosabb.
Igen. Az egyetlen fájlrendszer, amely nem elég gyors és megbízható CD-íráshoz, a hálózati fájlrendszer (NFS). Én magam is használtam UMSDOS-t egy CD-írásra kijelölt PC-n (486/66), amelyen Linux és Windows is volt, és így megoszthattam a lemezterületet a két operációs rendszer között.
De lehet. Bármilyen fájlrendszert rakhatsz a CD-re, de a Linuxon kívül semmilyen más operációs rendszerrel nem tudod majd elolvasni. Ez a recept:
dd if=/dev/zero of="ures_fajl" bs=1024k count=650
shell> /sbin/mke2fs -b 2048 ures_fajl
ures_fajl is not a block special device.
Proceed anyway? (y,n) y
mount
, lásd fent.)
mount -t ext2 -o loop=/dev/loop1 ures_fajl /mnt
cdrecord
az ures_fajl-ra (amely többé nem üres), mintha az egy ISO-9660 image lenne.Ha szeretnél az ilyen CD-k számára egy bejegyzést létrehozni az
/etc/fstab
fájlban, akkor tiltsd meg az eszköz ellenőrzését,
amely a rendszerinduláskor következne be. Például:
/dev/cdrom /cdrom ext2 defaults,ro 0 0
Az első 0 azt jelenti, hogy ``ne vegye bele a dump-ba'', a második (ez a fontos)
azt, hogy ``ne ellenőrizze a hibákat rendszerinduláskor''. Az fsck
ugyanis
nem tudja a CD-ket átvizsgálni.
Sok programcsomag van erre a célra. A legújabb a ``cdparanoia'', amely letölthető a
http://www.xiph.org/paranoia/webhelyről.
Esetleg próbáld ki a cdda2wav
és a sox
kombinációját; mindkettő letölthető
a sunsite-ról és tükrözéseiről:
ftp://sunsite.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz
ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-cb3.tar.gz
A cdda2wav
segítségével egy megadott intervallumot (vagy egy egész sávot)
szedhetsz le az audio CD-ről, és a program elmenti egy .wav fájlba. A sox
a WAV fájlt konvertálja vissza az audio CD cdda formátumába, ezt már közvetlenül
fel lehet írni CD-re a cdrecord
-dal. Ha a cdrecord
egy viszonylag új
verzióját használod, akkor nincs szükség a sox
-ra, az újabb verziók már
közvetlenül támogatják a .au és a .wav fájlokat.
A drivers/scsi/scsi.c
fájl a következőket tartalmazza (természetesen angolul -- a ford.):
/*
* Használat: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
* ahol "0 1 2 3" a te "Host Channel Id Lun" értékeid.
* Ne feledd, hogy ez a lehetőség BÉTA.
* VIGYÁZAT: Ez nem arra van, hogy menet közben cseréld ki a perifériákat.
* Mivel a SCSI-t nem erre tervezték, ezzel tönkreteheted a hardvered!
* Ennek ellenére azt talán szabad, hogy bekapcsolj egy
* már csatlakoztatott eszközt. Az valószínűleg nem
* garantálható, hogy ez az eszköz nem fog elrontani
* egy folyamatban levő adatátviteli folyamatot.
*/
Jegyezd meg, hogy ez csak akkor használható, ha a lánc végéhez adsz hozzá egy SCSI eszközt. Ha egy lánc közepére illesztesz be egy új SCSI eszközt, az megzavarja az eszközök elnevezését (/dev könyvtár) és a merevlemezed egész tartalmát elvesztheted.
Igen. De ne feledd, hogy bármilyen olvasási hiba (karcolások vagy por miatt)
hibás másolatot eredményez. Egyik ismertetett megoldás sem jó audio CD-k másolására.
Használd a cdrdao
-t vagy a cdda2wav
-ot az audio CD-khez!
Első eset: van egy CD-íród és egy másik CD-ROM meghajtód is. A
cdrecord -v dev=0,6,0 speed=2 -isosize /dev/scd0
parancs kiadásával a /dev/scd0
-n levő CD-ROM meghajtóról
leolvasott adatfolyam egyenesen kiíródik a CD-íróra.
Második eset: nincs egy másik CD-ROM meghajtód. Ebben az esetben a CD-írót kell arra használnod, hogy leolvasd a CD-ROM tartalmát:
dd if=/dev/scd0 of=cdimage
Ez a parancs leolvassa a /dev/scd0
-ra csatlakozó CD-ROM tartalmát,
és kiírja a cdimage
nevű fájlba. A fájl tartalma megegyezik azzal, amit
az mkisofs
csinálna, tehát úgy folytathatod, ahogy korábban már szerepelt
ebben a dokumentumban (azaz a cdimage
nevű fájlt használd a cdrecord
bemeneteként). Ha szeretnél visszajelzést a folyamat haladásáról és hasonló
csicsás dolgokat, akkor használhatod Jörg Schillings sdd
programját.
Ha hibajelzést kapsz, akkor telepítsd a cdrecord
csomag legfrissebb
verzióját, amelynek része a readcd
segédprogram (a misc/
alatt van).
Ez ugyanazt eredményezi, mint a dd
, de hiba esetén többször megkísérli elolvasni
a CD-ROM szektorait.
Igen. A újabb kernelek (2.0.36 vagy újabb, illetve a 2.2 sorozat) beépített joliet
támogatással rendelkeznek. Ne feledd mindkét opciót megadni az /etc/fstab
-ban:
a kulcsszavak iso9660 és joliet (az utóbbi tulajdonképpen csak egy kiterjesztés).
További részletekért nézd meg a
http://www-plateau.cs.berkeley.edu/people/chaffee/joliet.html
weblapot.
Ugyanúgy, ahogy a közönséges CD-ROM meghajtókkal. Nincs semmi trükk.
Jegyezd meg, hogy az scd eszközöket (SCSI CD-ROM) kell használnod az
olvasandó CD-ROM fájlrendszerbe csatolásakor, akkor is ha ATAPI CD-ROM-od van.
Emlékszel? Úgy konfiguráltad az ATAPI eszközeidet, hogy SCSI-ként viselkedjenek.
Példa az /etc/fstab
-ban egy bejegyzésre:
/dev/scd0 /cdrom iso9660 ro,user,noauto 0 0
Használd a bzip2
tömörítőt a gzip
, a
pkzip
vagy más tömörítők helyett.
Akár 30% lemezhelyet is megtakaríthatsz így, ha nagyobb
méretű (>100kB) fájlokkal dolgozol. Letölthető a
http://www.muraroa.demon.co.uk/webhelyről.
Valódi audio CD-k írása helyett a WAV hangfájlokat MP3 hangfájlokká konvertálhatod, és ezeket közönséges fájlokként tárolhatod egy ISO-9660 fájlrendszeren. Az MPEG III általában 1:10 tömörítési arányt nyújt. Természetesen a legtöbb CD-lejátszó nem tudja a fájlokat olvasni... ez a módszer hátránya. Másfelől viszont miért ne játszhatnád le a zenéket a merevlemezről a következő bulin? Egy 18 gigabájtos merevlemezen akár 3000-4000 szám is elfér! :-)
Egy szoftveres MPEG III tömörítő letölthető a
http://www.stud.ifi.uio.no/~larsi/other/8hz-mp3-cheng.tar.gzweblapról.
Egy MPEG III lejátszó letölthető a
http://homepages.uni-tuebingen.de/student/michael.hipp/mpg123/weblapról.
A felvett beszéd méretének csökkentésére használhatod a shorten
programot, vagy a ``GSM veszteséges beszédtömörítést'':
ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/
http://kbs.cs.tu-berlin.de/~jutta/toast.html
Szükséged lesz egy 1.44 MB-os rendszerindító lemezre. Készíts egy image fájlt a lemezről a
dd if=/dev/fd0 of=boot.img bs=18k
parancs kiadásával.
Rakd be ezt az image fájlt abba a könyvtárba, ahol a fájlokat gyűjtötted
össze (vagy egy alkönyvtárába, tetszés szerint). Az mkisofs
-nek
a -b
kapcsolóval lehet megadni a fájl helyét, és használd még a
-c
kapcsolót is. A részleteket elolvashatod a README.eltorito
fájlban, ami benne van az mkisofs
disztribúcióban.
A bootolható CD egy érdekes alkalmazása lehet a vírusbiztos DOS vagy Windows. Nem kell merevlemezre költeni (ha van hálózat, és samba-t használsz a felhasználók fájljainak a fájlszerverre mentéséhez). Azonban ez csak elméleti felvetés, még senkitől sem hallottam, hogy kipróbálta volna.
Néhány részlet a bootolható RedHat CD-ROM-ról: http://members.bellatlantic.net/~smithrod/rhjol-technical.html.
Van a Linuxra egy overlay fájlrendszer, amelyik a CD-ROM fölé csatolódik, és elfogja az írási műveleteket. Az új és a módosított fájlok máshol tárolódnak, de a felhasználó úgy érzékeli, hogy a CD-ROM tartalma módosult. További információkért olvasd el a http://home.att.net/~artnaseef/ovlfs/ovlfs.html weblapot.
Ha ez nem elégíti ki az igényeidet, akkor várd meg, amíg a Linuxon is lesz UDF fájlrendszer támogatás, vagy segíts a fejlesztésben (lásd http://trylinux.com/projects/udf/).
Igen, bár még csak két íróval tesztelték. Szükséged lesz vagy egy friss Linux kernelre (2.2.10 az írás idején) vagy egy kernel foltra, hogy több buffer álljon az általános SCSI meghajtóprogram rendelkezésére ( ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha; a 2.2.5-ös verzióig működik).
A német ``c't'' számítástechnikai magazin közölt egy tipplistát az üres CD-R lemezekről az 1996 novemberi számban.
Csak a 2. fejezet Linux specifikus. A 3. és 4. fejezetekben leírtakat akkor is használhatod, ha nem Linux operációs rendszer fut a gépeden. Olvasd el a README.NetBSD, README.aix, README.hpux, README.next, README.solaris, README.sunos, README.vms illetve README.xxxBSD fájlokat a cdrecord csomagban.
Két lehetőség van. Vagy a cdrecord
beépített konfigurációs fájlját használod, vagy
egy lent bemutatott burok-parancsfájlt használsz, amely beolvassa a
cdrecord
konfigurációs fájlját, amiben a cdrecord
paraméterei vannak,
mindegyik külön sorban. A paraméterek megegyeznek a parancssori paraméterekkel,
csak nincs előttük a `-' jel. Szabad megjegyzéseket is írni. Például:
# legyen bőbeszédű
v
# az írás sebessége
speed=2
# az eszközkoordináták BUS,ID,LUN formában
dev=0,6,0
A parancsfájlhoz tartozó konfigurációs fájlokat az /etc/cdrecord
könyvtárba kell rakni, és a nevüket meg kell adni a parancssorban.
Például, ha az /etc/cdrecord/mywriter.cfg nevű konfigurációs fájlra
akarsz hivatkozni, add ki a `cdrecord.sh mywriter.cfg -audio track1...
'
parancsot. Minden, ami mywriter.cfg után áll, átadódik a cdrecord
-nak.
#! /bin/bash
CFGDIR="/etc/cdrecord"
CFG="$1"
shift
ARGS_LEFT="$@"
if [ ! -f "$CFGDIR/$CFG" ]
then
echo "Nem találom a $CFGDIR/$CFG konfigurációs fájlt. Kiléptem."
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 "Nem sikerült a cdrecord-ot futtatni."
Valahol az első 32 k után szerepel a CD-n egy blokk, amely információkat tartalmaz a lemezről. Ez az információ megszerezhető a következő parancsfájl segítségével:
#! /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
Amikor újraírsz egy CD-RW lemezt, a cdrecord
parancssorában add meg a
blank=fast
paramétert. Ennyi az egész. Olvasd el a cdrecord
kézikönyvoldalát,
amelyben részletesen tárgyalják ezt a paramétert.
A multi-session CD image-ét ISO-9660 fájlrendszerrel és a RockRidge
kiterjesztéssel kell elkészíteni. Ha egy session után még szeretnél a lemezre
írni, akkor a -multi
paramétert kell beírni a cdrecord
parancssorába.
Tehát a -multi
paramétert legalább az első session-re használni kell.
A második és az ezután következő session-ök image-ét egy kicsit bonyolultabb
elkészíteni. Az mkisofs
-nek tudnia kell, hogy hol kezdődik az üres
terület a CD-R lemezen. Ez az információ megszerezhető a cdrecord
-msinfo
paraméterével. Lássunk egy példát:
shell> NEXT_TRACK=`cdrecord -msinfo dev=0,6,0`
shell> echo $NEXT_TRACK
shell> mkisofs -R -o cd_image2 -C $NEXT_TRACK -M /dev/scd5
egetni_valo/ \
További információkért forduljunk a README.multi fájlhoz, amely a
cdrecord
csomag része.
Ne feledd, hogy az elrontott CD még mindig jó poháralátétnek. :-)
Először ellenőrizd, hogy az író működik-e a vele adott szoftverrel (azaz egy másik operációs rendszer alatt). Pontosabban:
Ha az író saját szoftverével sem működik, akkor a hardver ütközik
valamivel, vagy hibás. Ha működik, és loadlin
-t használsz a
Linux indítására, akkor az a baj. A loadlin
melegindítást csinál,
a legtöbb hardver már inicializálva van ilyenkor, és ez megzavarja a
Linux kernelt.
Linux alatt a C programkönyvtár néhány verziója nem kompatíbilis (azaz egy kissé hibás), tehát ha egy alkalmazást az egyikkel linkeltek össze, akkor nem fog működni a másikkal. Íme egy példa egy olyan hibára, amelyet egy előre lefordított bináris fájl okozott:
[root@Blue /dev]# cdrecord -eject dev=0,6,0
cdrecord: No such file or directory. No read access for 'dev=0,6,0'.
Próbálj Linuxot használni. DOS alatt pokolian nehéz SCSI meghajtóprogramokat telepíteni és konfigurálni. A Linux túl bonyulult? Ugyan már!
Az ilyen hibák legvalószínűbb okai:
Különböző események hatására a SCSI eszközök lecsatolják magukat a SCSI buszról (elektronikusan) aztán újrakapcsolódnak. Ha ez a lehetőség nem elérhető (ellenőrizd a vezérlőkártya és a kernel paramétereit), akkor bizonyos írók bajba kerülnek égetéskor vagy a lemez lezárásakor.
Különösen az NCR 53c7,8xx SCSI meghajtóprogramnál figyeljünk, mert ez a lehetőség alapértelmezésben le van tiltva, úgyhogy először ezt kell ellenőrizni:
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
Nagy köszönet illeti a HOGYAN olvasói közül azokat, akik aktívan hozzájárultak a tartalmához. Mivel évek óta nem férek hozzá egy CD-íróhoz, ezért mindig nagyon értékesek számomra a való életből vett példák és tapasztalatok.
Segített az új kernelek kezelésében.
Elmondta, hogyan írjunk közvetlenül audio CD-t MP3-ból.
Utalt rá, hogy a szét-/újrakapcsolódás alapértelmezésben le van tiltva az ncr meghajtónál.
Jó érveket szolgáltatott arra, hogy a cdwrite
-ot kihagyjam a HOGYAN-ból.
Sok nyelvtani és helyesírási hibát kijavított.
Felvetette a 4.9. fejezetbeli problémát.
Megjegyezte, hogy a mount
egy újabb verzióját kell használni
a loopback eszközhöz.
Adott egy tippet audio CD-íráshoz.
Elmondta, hogy honnan tölthető le a Joliet CD-k olvasásához szükséges kernel folt.
Információ és tapasztalat audio CD-írásához.
Az mkhybrid
program URL-je.
Segített kidolgozni az 1:1 másolat receptjét.
Információk az IDE CD-R-ről és az újabb kernelekről.
Bejelentette az előre inicializált írók problémáját, amikor loadlin
-nel indul a rendszer.
Információkat adott a cdrecord
-ról.
Információt adott a cdwrite levelezőlistáról.
Kipróbálta az ext2 CD-ROM írását (lásd 4.4).
Az ő ötlete volt, hogy nem csak ISO-9660 fájlrendszert rakhatunk a CD-re.
Javasolta, hogy az elrontott CD-ket poháralátétnek használjuk.
Továbbá szeretnék köszönetet mondani a következő embereknek, akik helyesírási hibákat jelentettek: Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>, Ian Stirling <ian@opus131.com>, Brian H. Toby.
Véget ért a Linux CD-írás HOGYAN. (Abbahagyhatod az olvasást.)