Ελληνικό CD-Writing HOWTO Winfried Trόmper v2.4.1, 16 Δεκεμβρίου 1997 Το κείμενο αυτό ασχολείται με την διαδικασία εγγραφής CDs κάτω από Linux. ______________________________________________________________________ Table of Contents 1. Εισαγωγή 1.1 Αποκήρυξη Δικαιωμάτων 1.2 Προτεινόμενο Διάβασμα 1.3 Ορολογία... lasers at maximum ... fire (Σημ. αμετάφραστο)! 1.4 Υποστηριζόμενα CD-Writers 1.5 Υποστηριζόμενα "χαρακτηριστικά" 1.6 Mailinglists 1.7 Διαθεσιμότητα 1.8 Περί της Ελληνικής Μετάφρασης 2. Ετοιμασία του Linux-κουτιού σας για εγγραφή CD-ROMs 2.1 Εγκατάσταση του υλικού (hardware) 2.2 Σημείωση στην εγγραφή CDs κάτω από Linux 2.3 Δημιουργήστε τις γενικές συσκευές 2.4 Ενεργοποιήστε τη χρήση των 2.5 Χτίσιμο και εγκατάσταση του πυρήνα 2.6 Επανεκκινήστε τον υπολογιστή για να εγκυροποιηθούν οι αλλαγές. 2.7 Δημιουργία των συσκευών 2.8 Προμηθευτείτε το λογισμικό για εγγραφή των CDs 2.8.1 Ρουτίνες γραμμής-εντολών 2.8.2 Ένα γραφικό user interface (προαιρετικό). 3. "Εάν στρέψεις τον εαυτό σου προς τον καπνό, δεν θα σταματήσω να το διασκεδάζω όσο θα καίγεσαι." 3.1 Καθορίστε σε πια γενική συσκευή scsi (scsi device) είναι προσκολλημένος ο εγγραφέας 3.2 Μαζέψτε το λογισμικό 3.3 Αποθήκευση των δεδομένων στο CD. 3.4 Δημιουργήστε ένα σύστημα αρχείων iso9660 3.5 Ελέγξτε το CD-image 3.6 Σχόλια για τα κενά δισκάκια CD-Recordable 3.7 Εγγραφή του CD-image σε ένα CD 3.8 Αν κάτι πάει στραβά... 4. Συχνά Διατυπωμένες Ερωτήσεις και Απαντήσεις 4.1 "Πόσο ευαίσθητη είναι η διαδικασία του καψίματος;" 4.2 "Έχει η διασπορά (fragmentation) άσχημο αντίκτυπο στο ρυθμό ροής;" 4.3 "Είναι δυνατόν να αποθηκεύσω το CD-image σε ένα σύστημα αρχείων UMSDOS;" 4.4 "Δεν υπάρχει κάποιος τρόπος να ξεπεράσω τους περιορισμούς του iso9660;" 4.5 "Πώς να διαβάσω και να γράψω CD Ήχου;" 4.6 "Πώς να ψάξω για τις συσκευές SCSI μετά την εκκίνηση;" 4.7 "Είναι δυνατό να κάνω 1:1 αντιγραφή ενός CD;" 4.8 "Μπορεί το Linux να διαβάσει Joliet CDs;" 4.9 "Πώς διαβάζω/προσαρτώ CD-ROMs με το CD-writer;" 5. Επίλυση Προβλημάτων 5.1 Δε δουλεύει: κάτω από Linux 5.2 Δε δουλεύει: κάτω από DOS και φίλους του 5.3 Λάθη του SCSI κατά τη φάση της εγγραφής (καψίματος) 6. Ευχαριστίες ______________________________________________________________________ 1. Εισαγωγή Η πρώτη μου εμπειρία με Εγγραφείς CD (CD Writers) ξεκίνησε με το "Linux CD Writer mini-HOWTO" του Matt Cutts . Ευχαριστώ Matt! Παρόλο που η πρόθεσή μου ήταν μόνο να αναβαθμίσω το κείμενο του, το ξαναέγραψα από την αρχή, αφού συνειδητοποίησα πόσα πολλά άλλαξαν από το 1994. 1.1. Αποκήρυξη Δικαιωμάτων ΕΓΩ (Ο Winfried Truemper) ΑΠΑΡΝΟΥΜΑΙ ΟΠΟΙΑΔΗΠΟΤΕ ΕΓΓΥΗΣΗ ΣΧΕΤΙΚΑ ΜΕ ΑΥΤΟ ΤΟ ΚΕΙΜΕΝΟ, ΣΥΜΠΕΡΙΛΑΜΒΑΝΟΜΕΝΩΝ ΚΑΙ ΤΩΝ ΕΜΜΕΣΩΝ ΕΓΓΥΗΣΕΩΝ ΠΕΡΙ ΕΜΠΟΡΕΥΣΙΜΟΤΗΤΑΣ ΚΑΙ ΚΑΛΗΣ ΛΕΙΤΟΥΡΓΙΑΣ ΓΙΑ ΚΑΠΟΙΟΝ ΣΚΟΠΟ. ΣΕ ΚΑΜΙΑ ΠΕΡΙΠΤΩΣΗ ΔΕΝ ΘΑ ΕΙΜΑΙ ΥΠΟΛΟΓΟΣ ΓΙΑ ΚΑΜΙΑ ΕΙΔΙΚΗ, ΕΜΜΕΣΗ Η ΣΥΝΕΠΑΓΟΜΕΝΗ ΒΛΑΒΗ, Η ΟΠΟΙΑΔΗΠΟΤΕ ΒΛΑΒΗ ΓΕΝΙΚΟΤΕΡΑ ΠΟΥ ΟΔΗΓΕΙ ΣΕ ΑΠΩΛΕΙΑ ΧΡΗΣΗΣ, ΔΕΔΟΜΕΝΩΝ Ή ΚEΡΔΩΝ, ΕΙΤΕ ΑΠΟ ΠΡΑΞΗ ΣΥΜΒΟΛΑΙΟΥ, ΑΜΕΛΕΙΑ Ή ΑΛΛΗ ΠΡΑΞΗ ΕΠΙΖΗΜΙΑ ΚΑΙ ΠΡΟΚΥΠΤΕΙ ΑΠΟ Ή ΣΕ ΣΥΝΔΥΑΣΜΟ ΜΕ ΤΗ ΧΡΗΣΗ ΑΥΤΟΥ ΤΟΥ ΚΕΙΜΕΝΟΥ. Εν συντομία: Διαβάστε το και χρησιμοποιήστε το με δικό σας ρίσκο. 1.2. Προτεινόμενο Διάβασμα Το CD-R FAQ είναι ένα γενικό FAQ για compact-disk recordables (CD-R). Το Linux CD-ROM HOWTO εξηγεί τα πάντα που πρέπει να ξέρει κανείς για τους οδηγούς CD-ROM κάτω από Linux. Σαν συμπλήρωμα, μπορεί να θελήσετε να ρίξετε μια ματιά στο Linux SCSI HOWTO και στο Linux Kernel HOWTO. 1.3. Ορολογία... lasers at maximum ... fire (Σημ. αμετάφραστο)! Το CD-ROM είναι ακρωνύμιο για Compact Disc Read Only Memory (Μνήμη Μόνο Ανάγνωσης Συμπαγούς Δίσκου), ένα μέσο αποθήκευσης που χρησιμοποιεί ένα οπτικό laser για να εντοπίσει μικροσκοπικές οπές σε έναν ασημένιο αστραφτερό δίσκο. (Το αστραφτερό ασημένιο προέρχεται από μια επίστρωση αλουμινίου που είναι το φέρον (carrier).) Οι τρύπες αντιπροσωπεύουν τα bits της πληροφορίας (με κάποιο τρόπο) και είναι τόσο μικρά που μερικά δισεκατομμύρια από αυτά χωράνε πάνω στο δίσκο. Έτσι, το CD είναι ένα μέσο μαζικής αποθήκευσης (mass-storage medium). Ο όρος CD-R είναι μια σύντμηση για το CD-ROM recordable (εγγράψιμο CD) και αναφέρεται σε ένα CD που δεν έχει αυτές τις "μικροσκοπικές οπές" στην επιφάνεια του... και γι' αυτό είναι άδειο. Αντί για την αλουμινένια επίστρωση (ασημένια), ένα CD-R έχει μια ειδική ταινία (film) (χρωματιστή) στην οποία οι "μικροσκοπικές οπές" μπορούν να δημιουργηθούν με κάψιμο. Αυτό γίνεται δυνατό στο laser, το οποίο φυσιολογικά μόνο αναγνωρίζει τις οπές, λίγη περισσότερη δύναμη ώστε να κάψει νέες οπές. Αυτή η ενέργεια μπορεί να γίνει μόνο μια φορά ανά a CD-R. Μπορείτε να αφήσετε έξω μερικές περιοχές για μετέπειτα εγγραφή, παρόλα αυτά, δημιουργώντας ένα multi-session CD. Αυτό το mini-HOWTO ασχολείται με τη διαδικασία εγγραφής ενός CD-R. Λοιπόν "Καλώς επιβιβαστήκατε, καπετάνιε". 1.4. Υποστηριζόμενα CD-Writers Η λεπτομερής λίστα των μοντέλων που αναφέρονται πως (δε) δουλεύουν επιτυχώς είναι διαθέσιμη στο Η λίστα θα συμπεριλαμβάνεται σε μελλοντικές εκδόσεις αυτού του mini- HOWTO. Τα περισσότερα SCSI cd-writers υποστηρίζονται και οι νεώτερες εκδόσεις του cdrecord υποστηρίζουν ακόμα και ATAPI cd-writers. Αν το υλικό σας δεν υποστηρίζεται, μπορείτε και πάλι να χρησιμοποιήσετε το Linux για να δημιουργήσετε μια εικόνα (image) του μετέπειτα CD αλλά θα πρέπει να χρησιμοποιήσετε λογισμικό DOS για να γράψετε την εικόνα στο CD-R. [Μπορεί να θέλετε να το κάνετε αυτό, επειδή τα περισσότερα λογισμικά για DOS δε μπορούν να αντιμετωπίσουν τα μεγάλα ονόματα αρχείων (long filenames) που υπάρχουν στο Linux.] Σε αυτή την περίπτωση μπορείτε να παρακάμψετε όλα τα θέματα σχετικά με το υλικό (αυτά για τις Συσκευές SCSI γενικού τύπου και τα cdwrite/cdrecord). 1.5. Υποστηριζόμενα "χαρακτηριστικά" Προς το παρόν, το λογισμικό για να καίει CDs κάτω από Linux (δεν) υποστηρίζει τα παρακάτω κύρια χαρακτηριστικά : Feature cdwrite-2.1 cdrecord-1.7 -------------------------------------------- ATAPI support no yes Multisession only partial yes RockRidge yes (mkisofs) yes (mkisofs) El Torito yes (mkisofs) yes (mkisofs) HFS yes (mkhybrid) yes (mkhybrid) Joliet yes (mkhybrid) yes (mkhybrid) Το RockRidge είναι μια επέκταση για να επιτρέπει μεγαλύτερα ονόματα αρχείων και βαθύτερη ιεράρχηση directory . Το El Torito μπορεί να χρησιμοποιηθεί για την παραγωγή εκκινήσιμων (bootable) CDs. Παρακαλώ δείτε τη συνοδευτική τεκμηρίωση για περισσότερες λεπτομέρειες για αυτά τα ειδικά χαρακτηριστικά. Το HFS επιτρέπει σε ένα macintosh να διαβάσει το CD-ROM σαν να ήταν μια περιοχή (volume) τύπου HFS. Το Joliet δίνει μεγάλα ονόματα αρχείων (μεταξύ άλλων πραγμάτων) σε μερικές εκδόσεις Windows (95, NT). Το τμήμα 2.8 αναφέρει τη διαθεσιμότητα των παραπάνω λογισμικών. 1.6. Mailinglists Αν θέλετε να συμμετάσχετε στην ομάδα ανάπτυξης (με πρόθεση να τους _βοηθήσετε_ ενεργά), στείλτε ένα e-mail στο cdwrite-request@pixar.com και βάλτε τη λέξη subscribe στο κύριο μέρος (body) του μηνύματος mes­ sage. 1.7. Διαθεσιμότητα Οι νεώτερες εκδόσεις αυτού του κειμένου είναι πάντα διαθέσιμες στο 1.8. Περί της Ελληνικής Μετάφρασης Για σχόλια, παρατηρήσεις, διορθώσεις, ενημερώσεις περί της Ελληνικής μετάφρασης αυτού του HOWTO, στείλτε email στην Βούλα Σανιδά : voulariba@hellug.gr ή στον Ευριπίδη Παπακώστα : evris@hellug.gr και εναλλακτικά : ep@rocketmail.com 2. Ετοιμασία του Linux-κουτιού σας για εγγραφή CD-ROMs Πριν το Νοέμβριο του 1997, το λογισμικό για Linux δεν υποστήριζε ATAPI cd-writers. Σαν αποτέλεσμα, η τρέχουσα έκδοση αυτού του HOWTO επικεντρώνεται στην αντιμετώπιση των συσκευών SCSI. Τα καλά νέα είναι, πως η αντιμετώπιση των συσκευών ATAPI είναι πολύ ευκολότερη και μπορείτε ακόμα να χρησιμοποιείτε αυτό το HOWTO αν ξεχάσετε τις "Συσκευές SCSI γενικού τύπου". Για να βρείτε πώς απευθύνεστε σε συσκευές ATAPI μπορείτε να δώσετε την εντολή cdrecord -scanbus. Μελλοντικές εκδόσεις αυτού του HOWTO θα περιέχουν περισσότερες λεπτομέρειες για αντιμετώπιση των ATAPI cd-writers. 2.1. Εγκατάσταση του υλικού (hardware) Κατεβάστε τον Η/Υ σας, κλείστε τον και κρεμάστε το CD writer στο δίαυλο SCSI. Βεβαιωθείτε πως ο δίαυλος SCSI είναι τερματισμένος (terminated) κατάλληλα και διαλέξτε μια ελεύθερη ταυτότητα θέσης SCSI (SCSI-ID) για τον εγγραφέα. Κοιτάξτε το Linux SCSI-HOWTO αν δεν είσαστε σίγουροι. Αν δεν έχετε απολύτως καμία ιδέα για αυτά, ρωτήστε έναν ειδικό. Τροφοδοτήστε ξανά με ρεύμα και ελέγξτε τα μηνύματα που το BIOS του ελεγκτή (controller) SCSI τυπώνει αμέσως μετά το άνοιγμα του ρεύματος. Αν δεν αναγνωρίσει το writer σας, πηγαίνετε πάλι πίσω στο βήμα (β). Θα πρέπει να δείτε ένα μήνυμα σαν [λείπει η εικόνα ; έχει κανείς κάποιο στιγμιότυπο οθόνης (screenshot) από αυτό;] 2.2. Σημείωση στην εγγραφή CDs κάτω από Linux Σε αντίθεση με κάποιες φήμες, ο πυρήνας του Linux-kernel _δεν_ απαιτεί διόρθωση (patch) για να γράψει σε CDs. Παρόλο που το αρχείο drivers/scsi/scsi.c από τον κώδικα του πυρήνα περιέχει τις γραμμές case TYPE_WORM: case TYPE_ROM: SDpnt->writeable = 0; Αυτό σημαίνει μόνο πως τα CDs και τα WORMs δεν είναι εγγράψιμα μέσω των κλασσικών συσκευών (devices) /dev/sda-/dev/sdh - πράγμα το οποίο είναι εντάξει. Αντί να χρησιμοποιήσετε αυτές τις συσκευές για εγγραφή των CDs γίνεται μέσω των αποκαλούμενων Συσκευών SCSI γενικού τύπου που επιτρέπουν σχεδόν τα πάντα - ακόμα και την εγγραφή σε CDs. 2.3. Δημιουργήστε τις γενικές συσκευές The Linux SCSI-HOWTO says about generic SCSI-devices: Ο οδηγός Γενικών συσκευών SCSI παρέχει ένα interface για αποστολή εντολών SCSI προς όλες τις συσκευές SCSI - δίσκους, ταινίες, CDROMs, μηχανικές συσκευές αλλαγής μέσων (media changer robots), κλπ. Μιλώντας για τις γενικές συσκευές (devices) σαν interfaces σημαίνει πως παρέχουν έναν εναλλακτικό τρόπο προσπέλασης στο SCSI υλικό, αντί μέσω των κοινών devices. Ο εναλλακτικός τρόπος απαιτείται γιατί τα κοινά devices σχεδιάστηκαν για να διαβάζουν δεδομένα κατά κομμάτια (block-wise) από ένα δίσκο, ταινία ή cd-rom Σε σύγκριση με αυτό, το να οδηγείς ένα cd-writer (ή ένα σαρωτή (scanner)) είναι πιο εξωτικό, π.χ. πρέπει να δοθούν εντολές για τοποθέτηση του laser . Αν έχεις μια καθαρή (και γι' αυτό γρήγορη) υλοποίηση των κοινών συσκευών (devices), όλες αυτές οι εξωτικές ενέργειες πρέπει να γίνουν μέσω των γενικών συσκευών SCSI. Μια που όλα μπορούν να γίνουν στο SCSI υλικό μέσω των γενικών συσκευών, δεν έχουν φτιαχτεί για ένα συγκεκριμένο σκοπό - γι' αυτό και το όνομα γενικές (generic). Πηγαίνετε στο /dev-directory και τσεκάρετε για γενικές συσκευές SCSI. Η εντολή ls θα πρέπει να δείξει sga-sgh: bash> cd /dev bash> ls -l sg* crw------- 1 root sys 21, 0 Jan 1 1970 sga crw------- 1 root sys 21, 1 Jan 1 1970 sgb crw------- 1 root sys 21, 2 Jan 1 1970 sgc crw------- 1 root sys 21, 3 Jan 1 1970 sgd crw------- 1 root sys 21, 4 Jan 1 1970 sge crw------- 1 root sys 21, 5 Jan 1 1970 sgf crw------- 1 root sys 21, 6 Jan 1 1970 sgg crw------- 1 root sys 21, 7 Jan 1 1970 sgh Αν δεν έχετε τέτοια αρχεία-συσκευών, δημιουργήστε τα χρησιμοποιώντας το /dev/MAKEDEV-script: bash> cd /dev/ bash> ./MAKEDEV sg Τώρα τα αρχεία συσκευών θα πρέπει να εμφανιστούν. 2.4. Ενεργοποιήστε τη χρήση των γενικών συσκευών SCSI και της συσκευής loopback Ο πυρήνας του Linux χρειάζεται ένα module που του παρέχει την δυνατότητα να αντιμετωπίζει SCSI συσκευές. Αν ο τρέχων πυρήνας υποστηρίζει αυτό το χαρακτηριστικό, θα πρέπει να εμφανίζεται στο ψευδο-αρχείο /proc/devices: bash> cat /proc/devices Character devices: 1 mem 2 pty 3 ttyp 4 ttyp 5 cua 7 vcs 21 sg <----- stands for "SCSI Generic device" 30 socksys Block devices: 2 fd 7 loop <----- we even can use the loop-devices 8 sd 11 sr <----- stands for "SCSI cd-Rom" Ίσως πρέπει να δώσετε τις εντολές insmod sg, insmod loop ή insmod sr_mod για να φορτώσετε τα modules στον πυρήνα. Ελέγξτε ξανά αφού το δοκιμάσετε. Αν κάποιο από αυτά δεν πετύχει, πρέπει να ξαναρυθμίσετε τον πυρήνα σας και να τον ξαναμεταγλωττίσετε (re-compile). bash> cd /usr/src/linux bash> make config [..] * * Additional Block Devices * Loopback device support (CONFIG_BLK_DEV_LOOP) [M/n/y/?] M [..] * * SCSI support * SCSI support (CONFIG_SCSI) [Y/m/n/?] Y * * SCSI support type (disk, tape, CD-ROM) * SCSI disk support (CONFIG_BLK_DEV_SD) [Y/m/n/?] Y SCSI tape support (CONFIG_CHR_DEV_ST) [M/n/y/?] M SCSI CD-ROM support (CONFIG_BLK_DEV_SR) [M/n/y/?] M SCSI generic support (CONFIG_CHR_DEV_SG) [M/n/y/?] M [..] ISO9660 cdrom filesystem (CONFIG_ISO9660_FS) [Y/m/n/?] M Σημειώστε πως παρέλειψα τις όχι πολύ σημαντικές ερωτήσεις. 2.5. Χτίσιμο και εγκατάσταση του πυρήνα Εάν έχετε ερωτήσεις σχετικά με αυτό, το Linux Kernel-HOWTO είναι το προτεινόμενο διάβασμά σας. Επιπλέον, η διανομή Linux σας, θα πρέπει να έρχεται με κάποια τεκμηρίωση για αυτό το θέμα. [Υπόδειξη: όταν κάνετε ξανά compile, μπορείτε να συνεχίσετε με τα βήματα 2.7-2.9] 2.6. Επανεκκινήστε τον υπολογιστή για να εγκυροποιηθούν οι αλλαγές. Μην πανικοβληθείτε εάν ο πυρήνας του Linux τυπώσει τα μηνύματα γρηγορότερα από όσο μπορείτε να διαβάσετε, τουλάχιστον η αρχικοποίηση των συσκευών SCSI μπορεί να επανεμφανιστεί με την εντολή dmesg: scsi0 : NCR53c{7,8}xx (rel 17) scsi : 1 host. scsi0 : target 0 accepting period 100ns offset 8 10.00MHz scsi0 : setting target 0 to period 100ns offset 8 10.00MHz Vendor: FUJITSU Model: M1606S-512 Rev: 6226 Type: Direct-Access ANSI SCSI Detected scsi disk sda at scsi0, channel 0, id 0, lun 0 Vendor: NEC Model: CD-ROM DRIVE:84 Rev: 1.0a Type: CD-ROM ANSI SCSI Detected scsi CD-ROM sr0 at scsi0, channel 0, id 4, lun 0 scsi : detected 1 SCSI disk total. SCSI device sda: hdwr sector= 512 bytes. Sectors= 2131992 Παραπάνω φαίνεται μόνο το κομμάτι εκείνο των μηνυμάτων αρχικοποίησης που αναφέρουν τον εντοπισμό της φυσικής παρουσίας μιας συσκευής SCSI. 2.7. Δημιουργία των συσκευών loopback Πηγαίνετε στο directory /dev και κοιτάξτε για συσκευές loopback. Δεν είναι κρίσιμο, το να μην έχετε τέτοιες συσκευές, αλλά είναι βολικό αν υπάρχουν (δείτε το 3.5). Αν ήδη τις έχετε, η εντολή ls θα πρέπει να δείξει loop0-loop7: bash> cd /dev bash> ls -l loop* brw-rw---- 1 root disk 7, 0 Sep 23 17:15 loop0 brw-rw---- 1 root disk 7, 1 Sep 23 17:15 loop1 brw-rw---- 1 root disk 7, 2 Sep 23 17:15 loop2 brw-rw---- 1 root disk 7, 3 Sep 23 17:15 loop3 brw-rw---- 1 root disk 7, 4 Sep 23 17:15 loop4 brw-rw---- 1 root disk 7, 5 Sep 23 17:15 loop5 brw-rw---- 1 root disk 7, 6 Sep 23 17:15 loop6 brw-rw---- 1 root disk 7, 7 Sep 23 17:15 loop7 Αν δεν έχετε αυτά τα αρχεία συσκευών, δημιουργήστε τα χρησιμοποιώντας το script /dev/MAKEDEV: bash> cd /dev/ bash> ./MAKEDEV loop Η τελευταία εντολή επιτυγχάνει μόνο αν έχετε το loop-module στον πυρήνα σας (δες το 2.4 για τη χρήση των modules). Αν η insmod loop δεν βοηθήσει, θα πρέπει να περιμένετε μέχρι ο καινούργιος πυρήνας να εγκατασταθεί κανονικά (δες το 2.5). 2.8. Προμηθευτείτε το λογισμικό για εγγραφή των CDs 2.8.1. Ρουτίνες γραμμής-εντολών Τα ακόλουθα πακέτα απαιτούνται για την παραγωγή πρωτοτύπων για CD-Rs: (mkisofs) (mkhybrid) Ανάλογα με το μοντέλο του cd-writer σας (δες 1.3), απαιτείται ένα από τα ακόλουθα λογισμικά για εγγραφή των πρωτοτύπων σε CD-Rs: (cdrecord) (cdwrite) Χρησιμοποιήστε το κοντινότερο mirror από αυτούς τους ftp-Servers ή πάρτε τα από CD. Να είσαστε απολύτως σίγουρος πως έχετε την έκδοση 2.0 του cdwrite, ή νεώτερή της. Καμιά παλαιότερη βήτα έκδοση δεν θα δουλέψει κανονικά! Μην εμπιστεύεστε την σελίδα-βοηθείας (man-page) του (παλιού) mkisofs που δηλώνει πως χρειάζεστε την έκδοση 1.5 του cdwrite. Για πληροφορίες για μεταφορές του λογισμικού (ports) του cdwrite σε Irix και AIX επισκεφθείτε το URL : Εάν χρησιμοποιείτε πυρήνα πριν την έκδοση 2.0.31, μπορεί να θέλετε να διορθώσετε το mkisofs για να ξεπεράσετε ένα bug στον κώδικα του συστήματος αρχείων του Linux. Η διανομή της Debian περιλαμβάνει ένα διορθωτικό (patch) για την έκδοση 1.05 του mkisofs (για 1.11 θα πρέπει να δουλεύει, επίσης) που του προσθέτει την επιλογή '-K' (δες το 3.4). Είναι διαθέσιμο από το Η διόρθωση αυτή είναι αναγκαία μόνο εάν θέλετε να προσαρτήσετε το CD- image μέσω της συσκευής loopback (δείτε το 3.5.). 2.8.2. Ένα γραφικό user interface (προαιρετικό). Το X-CD-Roast είναι ένα πρόγραμμα εγγραφής CD βασιζόμενο αποκλειστικά στα X, και είναι ο απόγονος των cdwtools-0.93. Είναι διαθέσιμο στο Προς το παρών το X-CD-Roast βασίζεται σε μια διορθωμένη έκδοση του cdwrite-2.0 και γι' αυτό έρχεται με ακριβώς τα ίδια χαρακτηριστικά (δείτε το 1.4). Οι μελλοντικές του εκδόσεις μπορεί να βασίζονται στο εναλλακτικό λογισμικό cdrecord. 3. "Εάν στρέψεις τον εαυτό σου προς τον καπνό, δεν θα σταματήσω να το διασκεδάζω όσο θα καίγεσαι." (Ο Αυτοκράτορας Νέρωνας για το κάψιμο των κλασσικών του CDs [AD64]. Το είχε παρεξηγήσει εντελώς). Συνήθως η εγγραφή ενός CD κάτω από Linux γίνεται σε 2 βήματα: · πακετάρισμα του επιθυμητού λογισμικού σε ένα μεγάλο αρχείο, χρησιμοποιώντας το mkisofs/mkhybrid-utility · εγγραφή του μεγάλου αρχείου στο the CD-R με το cdwrite ή το cdrecord Είναι επίσης δυνατό να συνδυάσετε τα 2 βήματα μέσω διασωλήνωσης (pipe) αλλά σας αποθαρρύνουμε από το να το δοκιμάσετε γιατί δεν είναι αξιόπιστο. Δείτε παρακάτω. 3.1. Καθορίστε σε πια γενική συσκευή scsi (scsi device) είναι προσκολλημένος ο εγγραφέας [Σημειώστε : το τρέχον σχήμα ονοματολογίας των συσκευών scsi devices στο Linux είναι πολύ μπλεγμένο χωρίς λόγο και όχι και αρκετά αξιόπιστο. Το γεγονός πως το περιγράφω σε μεγάλη λεπτομέρεια, δεν θα πρέπει να εκληφθεί λάθος σαν αποδοχή αυτού του σχήματος. Οι άνθρωποι με ATAPI cd-writer μπορούν να δοκιμάσουν την "cdrecord -scanbus" για να εντοπίσουν την σωστή συσκευή και να παραλείψουν το υπόλοιπο αυτού του τμήματος.] Αφού ακολουθήσετε όλα τα βήματα του δεύτερου κεφαλαίου το σύστημά σας θα πρέπει να είναι ικανό να αντιμετωπίζει τη διαδικασία της εγγραφής των CDs. Αυτό το τμήμα μπορεί να χρησιμοποιηθεί ως απόδειξη πως όλα δουλεύουν κατά πως πρέπει. Δώστε την εντολή dmesg. Θα πρέπει να αναφέρει τα μηνύματα του πυρήνα του Linux, συμπεριλαμβανομένων και εκείνων που τυπώθηκαν κατά την εκκίνηση (περιορισμός: μόνο τα τελευταία l200) και να περιέχει κάποιες πληροφορίες για το CD-Writer που είναι συνδεδεμένο στο δίαυλο SCSI. Απλό παράδειγμα: 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 Η μηχανή αυτή έχει 4 συσκευές SCSI συνδεδεμένες πάνω της (δεν μπορείτε να το δείτε και έτσι σας το λέω εγώ), με ταυτότητες (SCSI-id) από 0 έως 3. Ο εγγραφέας είναι η 4η φυσικά παρούσα συσκευή SCSI και γι' αυτό είναι συνδεδεμένη στο /dev/sgd (η τέταρτη γενική συσκευή SCSI,όπου η μέτρηση αρχίζει από το γράμμα a). Σε αυτή την περίπτωση, η εντολή: cdwrite --eject --device /dev/sgd ανοίγει τον υποδοχέα (tray) και είναι ένας έλεγχος για το αν όλα έχουν εγκατασταθεί σωστά. Ένα πιο σύνθετο παράδειγμα: 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 disk 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. Σε αυτό το παράδειγμα δυο ελεγκτές SCSI φιλοξενούν από 1 συσκευή SCSI ο καθένας. Τι σπατάλη ((μια που μπορούν να φιλοξενούν μέχρι και 7 συσκευές ο καθένας). Δεν είναι η δικιά μου εγκατάσταση, οπότε σταματήστε να ρωτάτε αν έχω τόσο πολλά λεφτά. ... Τέλος πάντων, στην περίπτωση αυτού του αμελητέου αυτού παραδείγματος, η εγκατάσταση αυτή είναι μια χαρά. :-) Στο παραπάνω παράδειγμα το CD-Writer έχει ταυτότητα SCSI 2 αλλά είναι συσχετισμένο με την πρώτη γενική συσκευή SCSI /dev/sga γιατί δεν είναι η πρώτη φυσικά παρούσα συσκευή SCSI που το Linux εντόπισε. Ελπίζω πως αυτό δείχνει καθαρά πως η ταυτότητα SCSI μιας συσκευής, δεν έχει να κάνει με την αντίστοιχη γενική συσκευή. Δυο ερωτήσεις μένουν: τι συμβαίνει αν αντιστοιχίσετε λάθος συσκευή; Αν δε δείξει ούτε την επιλογή "--" ούτε γράψει δεδομένα σε αυτήν, συνήθως ένα τυπώνεται προειδοποιητικό μήνυμα και δεν συμβαίνει και τίποτα κακό:: bash> cdwrite --eject --device /dev/sgb Unknown CD-Writer; if this model is compatible with any supported type, please use the appropriate command line flag. Manufacturer: IBM Model: DPES-31080 Revision: S31Q Σε αυτήν την περίπτωση η συσκευή /dev/sbg είναι ένας σκληρός δίσκος SCSI (της IBM). Αν γράψετε δεδομένα σε λάθος συσκευή, γράφετε πάνω από το αρχικό περιεχόμενό της και πιθανώς βλάπτετε ανεπανόρθωτα το σύστημά σας. Να προσέχετε, σε μένα το ατύχημα έχει συμβεί. 3.2. Μαζέψτε το λογισμικό Συνήθως παίρνει περισσότερο από το αναμενόμενο. Θυμηθείτε πως αρχεία που σας λείπουν δεν μπορούν να προστεθούν αφού γραφτεί το CD. :-) Επίσης, κρατήστε πως κάποιο ποσοστό του ελεύθερου χώρου του CD χρησιμοποιείται για να φυλάξει τις πληροφορίες του συστήματος αρχείων iso9660 (συνήθως λίγα MB). 3.3. Αποθήκευση των δεδομένων στο CD. Ο όρος iso9660 αναφέρεται στο format με το οποίο τα δεδομένα οργανώνονται στο CD. Για να είμαι πιο ακριβής: Είναι το σύστημα αρχείων του CD. Φυσικά, η εμφάνιση των αρχείων που αποθηκεύονται σε αυτό το format ομογενοποιείται από τον πυρήνα του Linux όπως και για κάθε άλλο σύστημα αρχείων, επίσης. Έτσι, αν προσαρτήσετε ένα CD στο δέντρο των directory, δεν θα μπορείτε να ξεχωρίσετε τα αρχεία του από άλλα αρχεία ... εκτός του γεγονότος πως δεν είναι εγγράψιμα... ακόμα και για τον root. :-) (Ο μηχανισμός που χρησιμοποιείται για να ομογενοποιήσει την εμφάνιση των αρχείων καλείται εικονικό σύστημα αρχείων (virtual filesystem), και εν συντομία VFS.) Τα χαρακτηριστικά του συστήματος αρχείων iso9660 δεν είναι τόσο πλούσια σε σύγκριση με αυτά του συστήματος αρχείων extended-2 που κανονικά χρησιμοποιείται από το Linux. Από την άλλη, το CD είναι εγγράψιμο μόνο μια φορά και έτσι μερικά χαρακτηριστικά δεν έχουν νόημα έτσι κι αλλιώς. Οι περιορισμοί του συστήματος αρχείων iso9660 είναι: · Μόνο 8 επίπεδα από υπο-καταλόγους επιτρέπονται (μετρώντας από το υψηλότερο επίπεδο directory του CD) (χρησιμοποιείστε τα RockRidge Extensions για να μεγαλώσετε αυτό τον αριθμό) · Μέγιστο μήκος χαρακτήρων για τα ονόματα των αρχείων: 32 χαρακτήρες · 650 MB χωρητικότητα 3.4. Δημιουργήστε ένα σύστημα αρχείων iso9660 Πριν μπορέσει να χρησιμοποιηθεί οποιοδήποτε μέσο αποθήκευσης (π.χ. μαλακός δίσκος (floppy disk), σκληρός δίσκος (harddisk) ή CD), πρέπει να αποκτήσει ένα σύστημα αρχείων (σε γλώσσα DOS : να γίνει format). Αυτό το σύστημα αρχείων είναι υπεύθυνο για την οργάνωση και ενσωμάτωση των αρχείων, που πρέπει να αποθηκευθούν στο μέσο. Λοιπόν, ένα εγγράψιμο CD είναι εγγράψιμο μόνο μια φορά, και έτσι αν γράφαμε ένα άδειο σύστημα αρχείων σε αυτό, δεν θα γινόταν format - αλλά θα παρέμενε εντελώς άδειο για πάντα. :-) Έτσι, αυτό που χρειαζόμαστε είναι ένα εργαλείο που δημιουργεί το σύστημα αρχείων όσο αντιγράφει τα αρχεία στο CD. Αυτό το εργαλείο λέγεται mkisofs. Μια χρήση του για λόγους επίδειξης μοιάζει με την παρακάτω: mkisofs -r -o cd_image private_collection/ `---------' `-----------------' | | γράψε την έξοδο στο χρησιμοποίησε σαν είσοδο το directory Η επιλογή '-r' θέτει τα δικαιώματα όλων των αρχείων στο CD ώστε να είναι αναγνώσιμα από όλους και ενεργοποιεί τις επεκτάσεις Rock Ridge. Αυτό είναι που συνήθως θέλουμε και συνιστούμε την χρήση αυτής της επιλογής μέχρι που πραγματικά να ξέρετε τι κάνετε (υπόδειξη: χωρίς την '-r' το σημείο προσάρτησης (mount-point) παίρνει δικαιώματα ιδιωτικής_συλλογής (private_collection)!). Αν τρέχετε πυρήνα Linux πριν τον 2.0.31, θα πρέπει να προσθέσετε την επιλογή '-K' για να ξεπεράσετε ένα λάθος του κώδικα του συστήματος αρχείων. Θα χρειαστείτε την διορθωμένη έκδοση του mkisofs. Αυτή η επιλογή είναι ισοδύναμη με την επιλογή '-P' του cdwrite. Δείτε παρακαλώ τη σελίδα βοηθείας του mkisofs για λεπτομέρειες. Οι χρήστες μιας πιο πρόσφατης έκδοσης του Linux δεν χρειάζεται να ανησυχούν για τίποτα από τα παραπάνω. Το mkisofs θα προσπαθήσει να αντιστοιχίσει όλα τα ονόματα αρχείων στο 8.3-format που χρησιμοποιείται από το DOS για να εξασφαλίσει την μεγαλύτερη δυνατή συμβατότητα. Σε περίπτωση σύγκρουσης ονοματολογίας ((διαφορετικά αρχεία έχουν το ίδιο 8.3-name), χρησιμοποιούνται αριθμοί στα ονόματα αρχείων και πληροφορίες σχετικά με το όνομα τυπώνεται στο STDERR (συνήθως στην οθόνη). ΜΗΝ ΠΑΝΙΚΟΒΑΛΛΕΣΤΕ: Κάτω από Linux δε θα δείτε ποτέ αυτά τα 8.3 ονόματα αρχείων, επειδή το Linux κάνει χρήση των επεκτάσεων Rock Ridge που περιέχουν την αρχική πληροφορία των αρχείων (δικαιώματα, όνομα αρχείων, κλπ.). Τώρα μπορεί να αναρωτιέστε γιατί η έξοδος του mkisofs δε στέλνεται απευθείας στη συσκευή εγγραφής. Αυτό γίνεται για δύο λόγους: · Το mkisofs δεν ξέρει τίποτα για τον έλεγχο των CD-writers (δες το τμήμα 2.3.) · Δεν θα ήταν αξιόπιστο (δες το τμήμα 4.) Επειδή ο χρονισμός του CD-writer είναι ένα κρίσιμο σημείο, δεν το τροφοδοτούμε απευθείας από το mkisofs (θυμηθείτε πως το Linux δεν είναι ένα λειτουργικό σύστημα πραγματικού χρόνου (real-time operating system) και οι διεργασίες μπορεί να χρονίζονται άσχημα). Αντίθετα, συνίσταται να αποθηκεύετε την έξοδο του mkisofs σε ένα ξεχωριστό αρχείο στο σκληρό δίσκο. Αυτό το αρχείο είναι μια 1:1 εικόνα του CD και στην ουσία θα γραφτεί στο CD με το εργαλείο cdwrite σε δεύτερο βήμα. H 1:1 εικόνα αποθηκεύεται σε ένα τεράστιο αρχείο και έτσι χρειάζεστε άλλο τόσο ελεύθερο χώρο στο δίσκο με αυτόν που το λογισμικό προς αντιγραφή ήδη χρησιμοποιεί. Αυτό είναι ένα μειονέκτημα. Θα μπορούσατε να δημιουργήσετε μια επιπλέον κατάτμηση (partition) για αυτό και να γράψετε την εικόνα σε εκείνη την κατάτμηση αντί σε ένα αρχείο. Ψηφίζω κατά μιας τέτοιας στρατηγικής γιατί αν γράψετε σε λάθος κατάτμηση (εξαιτίας ενός τυπογραφικού λάθους), μπορεί να χάσετε εντελώς το Linux σύστημά σας. Επιπλέον, είναι μεγαλύτερη σπατάλη χώρου, γιατί το CD-image είναι προσωρινά δεδομένα που μπορούν να διαγραφούν μετά την εγγραφή του CD. 3.5. Ελέγξτε το CD-image Το Linux έχει την δυνατότητα να προσαρτά αρχεία σαν να ήταν κατατμήσεις δίσκων. Αυτό το χαρακτηριστικό είναι χρήσιμο για να ελέγξετε την ορθότητα της δομής του καταλόγου της εικόνας του CD (CD- image). Για να προσαρτήσετε το αρχείο cd_image που δημιουργήθηκε παραπάνω στον κατάλογο /cdrom, δώστε την εντολή mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom Τώρα μπορείτε να επιθεωρήσετε τα αρχεία στο /cdrom - εμφανίζονται ακριβώς όπως αν θα ήταν πάνω σε ένα πραγματικό CD. Για να αποδεσμεύσετε το CD-image, απλά πείτε umount /cdrom. Προειδοποίηση: Αν δεν χρησιμοποιήσατε την επιλογή '-K' στο mkisofs τότε τo τελευταία αρχείο στο /cdrom μπορεί να μην είναι πλήρως αναγνώσιμο. Σημείωση: Μερικές αρχαίες εκδόσεις του mount δεν είναι ικανές να αντιμετωπίσουν τις loopback-devices. Αν έχετε μια τέτοια παλιά έκδοση του mount είναι μια υπόδειξη για να αναβαθμίσετε το Linux σύστημά σας. Πολλοί άνθρωποι ήδη πρότειναν να βάλουν πληροφορίες για το πως να πάρετε τις νεότερες εφαρμογές mount σε αυτό το mini- HOWTO. Πάντα αρνούμαι. Αν η διανομή Linux σας έρχεται με ένα αρχαίο mount: αναφέρετέ το σαν πρόβλημα (bug). Αν η διανομή Linux σας δεν είναι εύκολα αναβαθμίσιμη : αναφέρετέ το σαν πρόβλημα (bug). Αν ενσωματώσω όλες τις πληροφορίες που απαιτούνται για να ξεπεραστούν τα προβλήματα (bugs) των κακοσχεδιασμένων διανομών Linux, αυτό το mini-HOWTO θα ήταν κατά πολύ μεγαλύτερο και δυσκολότερο να διαβαστεί. 3.6. Σχόλια για τα κενά δισκάκια CD-Recordable Το γερμανικό περιοδικό για υπολογιστές "c't" έχει μια λίστα υποδείξεων που αφορούν στα κενά CDs στο τεύχος του Νοεμβρίου 1996: · Τα "ανώνυμα (no-name)" δισκάκια είναι γενικά όχι της καλύτερης ποιότητας και θα πρέπει να μην χρησιμοποιούνται · Αν ένα εγγράψιμο CD είναι ελαττωματικό, αυτό πιθανόν να συμβαίνει σε όλα (αν αγοράσατε περισσότερα από ένα, μαζεμένα). Ίσως να είσαστε τυχερός και να μπορέσετε να χρησιμοποιήσετε τα πρώτα 500MB τέτοιων CDs ... · Μην αγγίζετε τα CDs από την λαμπερή επιφάνεια πριν την εγγραφή. 3.7. Εγγραφή του CD-image σε ένα CD Δεν έχουν μείνει και πολλά να γίνουν. Πριν σας δείξουμε την τελευταία εντολή, αφήστε με να σας προειδοποιήσω πως τα CD-writers θέλουν να τροφοδοτούνται με μια σταθερή ροή δεδομένων επειδή έχουν μικρούς buffers δεδομένων. Έτσι, η διαδικασία της εγγραφής της εικόνας του CD στο CD δεν πρέπει να διακοπεί, σε τέτοια περίπτωση το αποτέλεσμα θα είναι ένα διαβρωμένο (χαλασμένο) CD. Για να είσαστε σίγουρος πως τίποτα δεν θα διακόψει την διαδικασία, πετάξτε έξω όλους τους χρήστες του συστήματος και βγάλτε το καλώδιο του ethernet ... Διαβάστε το Bastard operator fromhell για να μάθετε τον σωστό τρόπο, για να κάνετε κάτι τέτοιο. ;-) Αν είσαστε πνευματικά έτοιμοι, φορέστε μια άσπρη ρόμπα, πολλαπλασιάστε την ταυτότητα SCSI-id του CD-writer με τον αριθμό αναθεώρησης του SCSI, ανάψτε όσα πιο πολλά κεριά γίνεται, απαγγείλετε δύο στροφές από το ASR-FAQ και τελικά γράψτε: cdwrite --device /dev/sgd cd_image or cdrecord -v speed=2 dev=4,0 cd_image ανάλογα με το πιο λογισμικό θέλετε να χρησιμοποιήσετε. Φυσικά θα αντικαταστήσετε τη συσκευή SCSI του παραδείγματος με την συσκευή που ο εγγραφέας σας είναι συνδεδεμένος. Παρακαλώ σημειώστε πως κανένας εγγραφέας δεν μπορεί να επαναθέσει το laser του και να συνεχίσει από εκείνο το σημείο του CD, αν ενοχληθεί. Γι' αυτό, κάθε ισχυρή δόνηση ή και σοκ θα καταστρέψει παντελώς το CD που γράφετε. 3.8. Αν κάτι πάει στραβά... ... να θυμάστε πως πάντα μπορείτε να χρησιμοποιείτε τα χαλασμένα CDs σαν σουβέρ. :-) 4. Συχνά Διατυπωμένες Ερωτήσεις και Απαντήσεις 4.1. "Πόσο ευαίσθητη είναι η διαδικασία του καψίματος;" Απάντηση: εξαρτάται από το CD-writer. Τα μοντέρνα θα πρέπει να έχουν buffer δεδομένων του 1MB ή κάπου εκεί και μπορούν να ζήσουν 1-2 δευτερόλεπτα χωρίς δεδομένα. Δείτε τα εγχειρίδια ή ρωτήστε τον κατασκευαστή, αν θέλετε να μάθετε τις λεπτομέρειες. Ανεξάρτητα από το μέγεθος των buffers δεδομένων πρέπει να εγγυάστε μια συνεχή ροή των 300kb/s ή 600kb/s κατά τη διάρκεια της διαδικασίας. Οι διεργασίες που κάνουν εντατική χρήση του δίσκου όπως η ενημέρωση της βάσης δεδομένων locate χαμηλώνουν το μέγιστο δυνατό ρυθμό ροής και θα χαλάσουν σίγουρα το CD; καλύτερα ελέγξτε τέτοιες διεργασίες να μην ξεκινάνε μέσω cron, at ή anacron όσο καίτε CD-Rs. Από την άλλη, κάποιοι ανέφεραν πως έκαναν compile ένα πυρήνα καθώς καίγανε ένα CD χωρίς καμία ενόχληση. Χρειάζεστε βέβαια μια γρήγορη μηχανή για τέτοια πειράματα. 4.2. "Έχει η διασπορά (fragmentation) άσχημο αντίκτυπο στο ρυθμό ροής;" Η διασπορά είναι συνήθως τόσο χαμηλή που οι επιπτώσεις της δεν είναι παρατηρήσιμες. Αν είσαστε αβέβαιοι περί αυτού, κοιτάξτε τα μηνύματα που τυπώνονται κατά την εκκίνηση, το ποσοστό της διασποράς αναφέρεται κατά τον έλεγχο των συστημάτων αρχείων. Μπορείτε να ελέγξετε για αυτή την τιμή με την πολύ επικίνδυνη εντολή bash> e2fsck -n /dev/sda5 # '-n' is important! [stuff deleted - ignore any errors] /dev/sda5: 73/12288 files (12.3% non-contiguous) Σε αυτό το παράδειγμα η διασπορά φαίνεται να είναι πολύ μεγάλη, αλλά υπάρχουν μόνο 73 μικρά αρχεία σε αυτό το σύστημα αρχείων (χρησιμοποιείται ως /tmp) και έτσι η τιμή δεν είναι ανησυχητική. 4.3. "Είναι δυνατόν να αποθηκεύσω το CD-image σε ένα σύστημα αρχείων UMSDOS;" Ναι. Το μόνο σύστημα αρχείων που δεν είναι αξιόπιστο και αρκετά γρήγορο για εγγραφές CDs από αυτό, είναι το δικτυακό σύστημα αρχείων (NFS). Χρησιμοποιώ ο ίδιος ένα UMSDOS για να μοιράσω το χώρο του δίσκου μεταξύ του Linux και του DOS/Win σε ένα PC (486/66) αφιερωμένο στην εγγραφή των CDs. 4.4. "Δεν υπάρχει κάποιος τρόπος να ξεπεράσω τους περιορισμούς του iso9660;" Ναι. Μπορείτε να βάλετε όποιο σύστημα αρχείων θέλετε στο CD. Αλλά οποιοδήποτε λειτουργικό σύστημα εκτός του Linux δεν θα μπορέσει να αντιμετωπίσει το CD. Να και η συνταγή: · Δημιουργήστε ένα άδειο αρχείο με μέγεθος 650MB. dd if=/dev/zero of="empty_file" bs=1024k count=650 · Δημιουργήστε ένα σύστημα αρχείων extended-2 στο αρχείο αυτό bash> /sbin/mke2fs empty_file empty_file is not a block special device. Proceed anyway? (y,n) y · Προσαρτήστε το άδειο αρχείο μέσω των συσκευών loopback mount -t ext2 -o loop=/dev/loop1 empty_file /mnt · Αντιγράψτε τα αρχεία στο /mnt και αποδεσμεύστε το (umount) μετά. · Χρησιμοποιήστε την cdwrite ή την cdrecord στο empty_file (που πλέον δεν είναι άδειο) σαν να ήταν ένα iso9660-image. Αν θέλετε να βάλετε μια εγγραφή στο /etc/fstab για ένα τέτοιο CD, απενεργοποιήστε τον έλεγχο του, π.χ.: /dev/cdrom /cdrom ext2 defaults,ro 0 0 Το πρώτο 0 σημαίνει "μην συμπεριληφθεί στα dumps", το δεύτερο (=σημαντικό) σημαίνει "μην τσεκάρεις για λάθη κατά την εκκίνηση" (το fsck θα αποτύχει να ελέγξει το CD για λάθη). 4.5. "Πώς να διαβάσω και να γράψω CD Ήχου;" Πάρτε τα πακέτα "cdda2wav" και "sox", διαθέσιμα από το sunsite και τα mirrors του: Το cdda2wav σας επιτρέπει να πάρετε κάποιο συγκεκριμένο διάστημα (ή ένα ολόκληρο κομμάτι (track)) από το CD ήχου σας και το μετατρέπει σε αρχείο .wav. Το sox μετατρέπει τα αρχεία wav πάλι σε (CD ήχου ) cdda- format ώστε να μπορούν να επανεγγραφούν στο CD-R χρησιμοποιώντας το cdwrite. 4.6. "Πώς να ψάξω για τις συσκευές SCSI μετά την εκκίνηση;" Το αρχείο drivers/scsi/scsi.c περιέχει τις πληροφορίες /* * 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 corrupt an ongoing data transfer. */ 4.7. "Είναι δυνατό να κάνω 1:1 αντιγραφή ενός CD;" Ναι. Αλλά θα πρέπει να ήσαστε ενήμερος του γεγονότος πως κάθε λάθος ανάγνωσης του αρχικού πρωτοτύπου (λόγο σκόνης ή γρατζουνιών) θα οδηγήσει σε ελαττωματικό αντίγραφο. Πρώτη περίπτωση: έχετε ξεχωριστά CD-writer και CD-ROM . Δίνοντας την εντολή: cdwrite -v -D /dev/sgc --pad -b $(isosize /dev/scd0) /dev/scd0 or cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0 διαβάζετε τη ροή δεδομένων από τον οδηγό CD-ROM που είναι προσαρτημένο σαν /dev/scd0 και γράφετε απευθείας μέσω του /dev/sgc στο CD-R. Δεύτερη περίπτωση: Δεν έχετε ξεχωριστό οδηγό CD-ROM. Θα πρέπει να χρησιμοποιήσετε τον εγγραφέα για να διαβάσετε και το CD-ROM: dd if=/dev/scd0 of=cdimage bs=1c count=`isosize /dev/scd0` Η εντολή αυτή είναι ισοδύναμη με το αποτέλεσμα της mkisofs, και έτσι θα πρέπει να προχωρήσετε όπως στο κεφάλαιο 3. Σημειώστε πως αυτή η μέθοδος θα αποτύχει για τα CD ήχου! 4.8. "Μπορεί το Linux να διαβάσει Joliet CDs;" Ναι. Αλλά χρειάζεται να διορθώσετε τον πυρήνα και να τον ξαναμεταγλωττίσετε. Για περισσότερες πληροφορίες, δείτε 4.9. "Πώς διαβάζω/προσαρτώ CD-ROMs με το CD-writer;" Όπως και με ένα κανονικό οδηγό CD-ROM. Κανένα κόλπο. Σημειώστε πως θα πρέπει να χρησιμοποιήσετε τις συσκευές scd (SCSI CD-ROM) για να προσαρτήσετε CDs για διάβασμα. Εγγραφή-παράδειγμα στο /etc/fstab: /dev/scd0 /cdrom iso9660 ro,user,noauto 0 0 5. Επίλυση Προβλημάτων 5.1. Δε δουλεύει: κάτω από Linux Παρακαλώ ελέγξτε πρώτα αν ο εγγραφέας δουλεύει κάτω από άλλα λειτουργικά. Συγκεκριμένα: · Ο Ελεγκτής SCSI αναγνωρίζει τον εγγραφέα σαν έγκυρη συσκευή SCSI; · Το λογισμικό αναγνωρίζει τον εγγραφέα; · Μπορείτε να κάνετε ένα CD με το συνοδευτικό λογισμικό; Εάν "δε δουλεύει" ακόμα και σε άλλα λειτουργικά. Έχετε μια σύγκρουση υλικού (hardware conflict) ή ελαττωματικό υλικό. 5.2. Δε δουλεύει: κάτω από DOS και φίλους του Προσπαθήστε να χρησιμοποιήσετε Linux. Η εγκατάσταση και ρύθμιση των οδηγών SCSI στο DOS είναι η κόλαση. Είναι το Linux υπερβολικά σύνθετο; Χα! 5.3. Λάθη του SCSI κατά τη φάση της εγγραφής (καψίματος) Πιθανότερα, τα λάθη αυτά οφείλονται σε · μη υποστήριξη του χαρακτηριστικού dis-/reconnect του δίαυλου SCSI · μη ικανοποιητικά ψυχωμένο υλικό · ελαττωματικό υλικό (θα πρέπει να εντοπίζεται από το 5.1.) Κάτω από διάφορες καταστάσεις, οι συσκευές SCSI αποσυνδέονται και ξανασυνδέονται (ηλεκτρονικά) από το δίαυλο SCSI. Αν αυτό το χαρακτηριστικό δεν είναι διαθέσιμο (ελέγξτε τις παραμέτρους του ελεγκτή και του πυρήνα) μερικοί εγγραφείς αντιμετωπίζουν πρόβλημα όταν καίνε ή κλείνουν το CD-R. Ειδικά, ο οδηγός NCR 53c7,8xx SCSI έχει προκαθορισμένα το χαρακτηριστικό απενεργοποιημένο, και άρα λοιπόν ίσως να θέλετε να το τσεκάρετε: NCR53c7,8xx SCSI support [N/y/m/?] y always negotiate synchronous transfers [N/y/?] (NEW) n allow FAST-SCSI [10MHz] [N/y/?] (NEW) y allow DISCONNECT [N/y/?] (NEW) y 6. Ευχαριστίες Στον Andreas Erdmann που έδωσε το παράδειγμα με το YAMAHA-writer Στον Art Stone που είχε την ιδέα να βάλει μη-iso9660 συστήματα αρχείων σε CD Στον Bartosz Maruszewski που ανέφερε τα ορθογραφικά λάθη Στον Bernhard Gubanka που πρόσεξε την ανάγκη μιας πρόσφατης έκδοσης του mount για να κάνει χρήση της συσκευής loopback Στον Brian H. Toby για τον εκλεπτυσμό των εκφράσεων. ΣτονBruce Perens που έδωσε πληροφορίες για την cdwrite-mailinglist Στον Dale Scheetz που βοήθησε την καλυτέρευση του τμήματος για δημιουργία cdimage. Στο URL του εργαλείου mkhybrid Στον Edwin H. Kribbs που ανέφερε πως το '-K' απαιτεί διόρθωση για το mkisofs Στον Gerald C Snyder που τέσταρε την εγγραφή ενός ext2 CD-ROM (see 4.4) Στον Ingo Fischenisch που παρείχε το παράδειγμα με τους δύο ελεγκτές που φιλοξενούν δύο συσκευές. Στον Janne Himanka που έδειξε την διόρθωση στον πυρήνα για να διαβάζει Joliet CDs Στον Joerg Schilling για πληροφορίες για το cdrecord Στον Jos van Geffen που πρόσεξε το πρόβλημα στο 4.9. Στον Pierre Pfister που βοήθησε στην ανάπτυξη της συνταγής για αντίγραφα 1:1. Στον Rick Cochran για υποδείξεις για το ότι η επανασύνδεση/αποσύνδεση είναι απενεργοποιημένη από default στον οδηγό ncr Στον Stephan Noy για πληροφορίες και εμπειρία στην εγγραφή CD ήχου. Στον Stephen Harris που συνείσφερε υποδείξεις για εγγραφή CD ήχου. Στην Sheepy One που πρότειναν να χρησιμοποιούνται τα ελαττωματικά CDs σαν σουβέρ ποτών Στον Volker Kuhlmann που πρόσεξε πως το πακέτο "cdwrite" δεν περιέχει το mkisofs Τέλος του Ελληνικού CD-Writing mini-HOWTO