241 γραμμές
17 KiB
Markdown
241 γραμμές
17 KiB
Markdown
|
+++
|
|||
|
title = 'CD Recording'
|
|||
|
date = '2000-11-01T00:00:00Z'
|
|||
|
description = ''
|
|||
|
author = 'Νίκος Αποστολάκης(mailto:nickapos@agriroot.aua.gr)'
|
|||
|
issue = ['Magaz 28']
|
|||
|
issue_weight = 3
|
|||
|
+++
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
*Βήματα και μεθόδοι που ακολουθούμε για να γράψουμε ένα cd απο το Linux.*
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
**1. DISCLAIMER**
|
|||
|
--------------------------------------------
|
|||
|
|
|||
|
**2. Ρυθμίσεις του πυρήνα του Linux για να γράψουμε ένα cd.**
|
|||
|
----------------------------------------------------------------------------------------
|
|||
|
|
|||
|
- [2.1 Η θεωρία](#ss2.1)
|
|||
|
- [2.2 Τα modules](#ss2.2)
|
|||
|
- [2.3 Ειδικές περιπτώσεις όσον αφορά το module loading and unloading.](#ss2.3)
|
|||
|
|
|||
|
**3. Δημιουργία και έλεγχος του iso-image.**
|
|||
|
-----------------------------------------------------------------------
|
|||
|
|
|||
|
- [3.1 Δημιουργία του iso-image.](#ss3.1)
|
|||
|
- [3.2 Έλεγχος του iso-image.](#ss3.2)
|
|||
|
|
|||
|
**4. Το κάψιμο του cd.**
|
|||
|
---------------------------------------------------
|
|||
|
|
|||
|
- [4.1 Η εντολή](#ss4.1)
|
|||
|
- [4.2 Επεξήγηση παραμέτρων](#ss4.2)
|
|||
|
|
|||
|
**5. Ειδικές ρυθμίσεις για την εγγραφή multisession cd.**
|
|||
|
------------------------------------------------------------------------------------
|
|||
|
|
|||
|
- [5.1 Γενικά](#ss5.1)
|
|||
|
- [5.2 Έλεγχος του προηγούμενου session και δημιουργία του image.](#ss5.2)
|
|||
|
- [5.3 Εγγραφή του session](#ss5.3)
|
|||
|
|
|||
|
**6. Βιβλιογραφία**
|
|||
|
----------------------------------------------
|
|||
|
|
|||
|
|
|||
|
### [1. DISCLAIMER]{#s1}
|
|||
|
|
|||
|
Δεν φέρω καμία ευθύνη για τυχόν ζημίες που θα προκληθούν στο μηχάνημα σας απο την εφαρμογή των παρακάτω. Εάν αποφασίσετε να ακολουθήσετε τα παρακάτω το κάνετε
|
|||
|
με δική σας ευθύνη.
|
|||
|
|
|||
|
|
|||
|
### [2. Ρυθμίσεις του πυρήνα του Linux για να γράψουμε ένα cd.]{#s2}
|
|||
|
|
|||
|
### [2.1 Η θεωρία]{#ss2.1}
|
|||
|
|
|||
|
Κατ\' αρχάς για να επιτύχουμε την εγγραφή του cd στο Linux πρέπει να ενεργοποιήσουμε την υποστήριξη για SCSI που έχει το Linux. Εάν το cdwriter που έχουμε δεν
|
|||
|
είναι SCSI ακόμη και τότε θα πρέπει να ενεργοποιήσουμε το λεγόμενο SCSI emulation.
|
|||
|
|
|||
|
Η δική μου περίπτωση είναι η δεύτερη.
|
|||
|
|
|||
|
### [2.2 Τα modules]{#ss2.2}
|
|||
|
|
|||
|
Εδώ θα ήθελα να αναφέρω ότι όσον αφορά το configuration του πυρήνα προτιμώ να βάζω μέσα στον πυρήνα τα απολύτως απαραίτητα και να φτιάχνω τα υπόλοιπα σαν
|
|||
|
modules.
|
|||
|
|
|||
|
Θεωρούμε ότι έχετε ρυθμίσει τον πυρήνα ώστε να μπορείτε να χρησιμοποιείτε το cdrom και να διαβάζετε iso-9660 filesystems.
|
|||
|
|
|||
|
Για να ενεργοποιήσουμε το SCSI emulation πρέπει να απαντήσουμε Y ή M στην επιλογή scsi emulation support, στο SCSI generic support επίσης Y ή M και το ίδιο και
|
|||
|
στο SCSI cdrom support. Αφότου ενεργοποιήσουμε το SCSI emulation μπορούμε πια να αναφερόμαστε στις IDE συσκευές μας σα να ήταν SCSI.
|
|||
|
|
|||
|
### [2.3 Ειδικές περιπτώσεις όσον αφορά το module loading and unloading.]{#ss2.3}
|
|||
|
|
|||
|
#### Eνδιαφέρουσες περιπτώσεις.
|
|||
|
|
|||
|
Κατά την ρύθμιση του πυρήνα μπορούν να προκύψουν κάποιες ενδιαφέρουσες περιπτώσεις.
|
|||
|
|
|||
|
- Η πρώτη περίπτωση είναι να έχετε επιλέξει το **SCSI emulation** ώστε να γίνει compile μέσα στον πυρήνα (όχι σαν module). Σε αυτή την περίπτωση αν έχετε
|
|||
|
επιλέξει την υποστήριξη για **IDE cd-rom drives** ώστε να γίνει compile μέσα στον πυρήνα τότε δεν θα μπορείτε να χρησιμοποιήσετε το cdwriter για την
|
|||
|
εγγραφή cd. Αυτό συμβαίνει γιατί όπως αναφέρεται στο documentation του πυρήνα όταν έχετε επιλέξει υποστήριξη για **IDE cd-rom** και **SCSI emulation** τότε
|
|||
|
αυτόματα χρησιμοποιείται το default δηλαδή εδώ το IDE cd-rom. Το ίδιο αποτέλεσμα και για τους ίδιους λόγους θα έχετε και όταν επιλέξετε το **IDE cd-rom
|
|||
|
drive support** σαν build-in στον πυρήνα και το **SCSI emulation** σαν module.
|
|||
|
- Η δεύτερη περίπτωση είναι να έχετε επιλέξει και στις δύο επιλογές **Module**. Τότε θε πρέπει να παίζετε με τις εντολές **lsmod** , **rmmod** , **insmod** ή
|
|||
|
**modprobe** προκειμένου να μπορέσετε να κάνετε load τα modules που χρειάζονται για το **SCSI emulation** και unload τα modules που χρησιμοποιούνται απο το
|
|||
|
IDE cd-rom.
|
|||
|
- Η τρίτη περίπτωση είναι να έχετε επιλέξει μόνο το SCSI emulation είτε build-in στον πυρήνα είτε σαν module και να έχετε επιλέξει **Module** στο **IDE cd-rom
|
|||
|
support**. Σε αυτή την περίπτωση θα βλέπετε όλα τα cd-rom drives σας σαν SCSI και θα μπορείτε να χρησιμοποιείτε το cdwriter άμεσα.
|
|||
|
|
|||
|
#### Αποτελέσματα
|
|||
|
|
|||
|
Εάν όλα είναι εντάξει τότε η εντολή **cdrecord -scanbus** μας δείχνει τις SCSI συσκευές που υπάρχουν στο σύστημα. Εγώ προσωπικά έχω δοκιμάσει και τα δύο
|
|||
|
τελευταία configurations για σχετικά μεγάλα χρονικά διαστήματα με εξίσου καλά αποτελέσματα όσον αφορά την εγγραφή των cd\'s.
|
|||
|
|
|||
|
Όταν είχα το configuration μόνο για **SCSI emulation** είχα κάποια προβλήματα στο **audio-ripping** αλλά δεν έχω διαπιστώσει αν γι\'αυτο ήταν υπεύθυνο το
|
|||
|
configuration ή το drive μου που είναι αρκετά παλιό και σχετικά προβληματικό.
|
|||
|
|
|||
|
|
|||
|
### [3. Δημιουργία και έλεγχος του iso-image.]{#s3}
|
|||
|
|
|||
|
### [3.1 Δημιουργία του iso-image.]{#ss3.1}
|
|||
|
|
|||
|
#### Η εντολή
|
|||
|
|
|||
|
Φτιάχνουμε το **iso-image** με το **mkisofs**. Η εντολή που δίνουμε είναι η παρακάτω:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
mkisofs -r --o iso-image firstdir/
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
#### Επεξήγηση παραμέτρων
|
|||
|
|
|||
|
- Η παράμετρος **-r** χρησιμοποιείται για να προσθέσει τα **Rockridge extensions** στο iso-image.
|
|||
|
- Η παράμετρος **-o** χρησιμοποιείται για να δηλώσει ο χρήστης το όνομα του αρχείου που θα αποθηκευτεί η έξοδος του **mkisofs** δηλαδή το **iso-image**.
|
|||
|
- Το **firstdir/** αποτελεί το directory εισόδου του **mkisofs** δηλαδή το directory απο το οποίο το **mkisofs** θα ξεκινήσει να διαβάζει ώστε να δημιουργήσει
|
|||
|
το iso-image. Το directory αυτο δεν θα φαίνεται όταν γραφεί το cd και θα αντικατασταθεί απο το root directory του cd.
|
|||
|
|
|||
|
### [3.2 Έλεγχος του iso-image.]{#ss3.2}
|
|||
|
|
|||
|
#### Η εντολή
|
|||
|
|
|||
|
Για να ελέγξουμε εάν το **iso-image** που δημιουργήσαμε είναι αυτο που επιθυμούμε, δεν έχει λάθη κ.τ.λ. χρησιμοποιούμε τα λεγόμενα **loopback devices**. Έτσι η
|
|||
|
εντολή που δίνουμε είναι η παρακάτω :
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
mount -t iso9660 -o ro,loop=/dev/loop0 iso-image /cdrom
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
#### Επεξήγηση παραμέτρων
|
|||
|
|
|||
|
- Η παράμετρος **-t** δηλώνει τον τύπο του filesystem που θέλουμε να προσαρτήσουμε.
|
|||
|
- Η παράμετρος **-o** δηλώνει με τι επιλογές θέλουμε να προσαρτήσουμε το iso-image και σε ποιό loopback device.
|
|||
|
- Τέλος προσδιορίζουμε σε ποιό directory θέλουμε να προσαρτήσουμε το **iso-image**.
|
|||
|
|
|||
|
Αφού προσαρτήσουμε το **iso-image** μπορούμε να πάμε στο directory που επιλέξαμε να γίνει η προσάρτηση και να ελέγξουμε αν όλα είναι εντάξει.
|
|||
|
|
|||
|
|
|||
|
### [4. Το κάψιμο του cd.]{#s4}
|
|||
|
|
|||
|
### [4.1 Η εντολή]{#ss4.1}
|
|||
|
|
|||
|
Η εντολή που χρησιμοποιούμε είναι η παρακάτω:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
cdrecord -v -multi -eject speed=2 dev=0,0 iso-image
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
### [4.2 Επεξήγηση παραμέτρων]{#ss4.2}
|
|||
|
|
|||
|
- Η παράμετρος -v χρησιμοποιείται ώστε το **cdrecord** να τυπώνει αναλυτικά το στάδιο στο οποίο βρίσκεται το γράψιμο του cd.
|
|||
|
- Η επιλογή **speed=2** δηλώνει την ταχύτητα της εγγραφής.
|
|||
|
- Η επιλογή **dev=0,0** δηλώνει την συσκευή μέσω της οποίας θα γίνει η εγγραφή (στο pc μου αυτή είναι η dev=0,0) σε άλλα μηχανήματα θα είναι διαφορετική.
|
|||
|
- Η επιλογή **-multi** χρησιμοποιείται για την δημιουργία **multisession cd**.
|
|||
|
- Η επιλογή **-eject** χρησιμοποιείται για να γίνει eject μόλις τελειώσει η εγγραφή.
|
|||
|
|
|||
|
|
|||
|
### [5. Ειδικές ρυθμίσεις για την εγγραφή multisession cd.]{#s5}
|
|||
|
|
|||
|
### [5.1 Γενικά]{#ss5.1}
|
|||
|
|
|||
|
Παρακάτω περιγράφεται η διαδικασία για την δημιουργία ενός **multisession cd**. Για την εγγραφή του πρώτου session αρκεί η παραπάνω διαδικασία με την επιλογή
|
|||
|
**-multi** κατά την εγγραφή του cd.
|
|||
|
|
|||
|
### [5.2 Έλεγχος του προηγούμενου session και δημιουργία του image.]{#ss5.2}
|
|||
|
|
|||
|
#### Έλεγχος του προηγούμενου session.
|
|||
|
|
|||
|
Αρχικά πρέπει να πάρουμε πληροφορίες για το sector που έχει σταματήσει το προηγούμενο session. Η εντολή που χρησιμοποιούμε είναι η παρακάτω:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
cdrecord -msinfo dev=0,0.
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Το output της εντολή αυτής είναι δύο αριθμοί της μορφής **xx,yy**.
|
|||
|
|
|||
|
Εννοείται βέβαια ότι για να πάρουμε αυτές τις πληροφορίες θα πρέπει το cd στο οποίο θα προστεθεί το νέο session να είναι μέσα στο drive.
|
|||
|
|
|||
|
#### Δημιουργία του image
|
|||
|
|
|||
|
Για να φτιάξουμε το iso-image χρησιμοποιούμε και πάλι το mkisofs και η εντολή που δίνουμε είναι η παρακάτω
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
mkisofs -o cd-image -R --C xx,yy -M /dev/cdwriter firstdir/
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Η επεξήγηση των παραμέτρων της εντολής ακολουθεί παρακάτω:
|
|||
|
|
|||
|
- Η παράμετρος **-o** καθορίζει το όνομα του αρχείου στο οποίο θα γραφεί το iso image.
|
|||
|
- Η παράμετρος **-R** προσθέτει στο **iso image** τα **Rockridge extensions**.
|
|||
|
- Η παράμετρος **-C xx,yy** προσδιορίζει δύο αριθμούς. Ο πρώτος αντιστοιχεί στο πρώτο sector number του τελευταίου session του cd στο οποίο θα προστεθεί το
|
|||
|
image που θα φτιάξουμε και ο δεύτερος στο πρώτο sector number του νέου session. Οι αριθμοί **xx,yy** δίνονται ακριβώς με την σειρά που βγαίνουν απο το
|
|||
|
**cdrecord -msinfo dev=0,0**.
|
|||
|
- Η παράμετρος **-M /dev/cdwriter** προσδιορίζει την συσκευή απο την οποία θα διαβαστούν πληροφορίες για το **iso image** στο τέλος του οποίου θα προστεθεί το
|
|||
|
**iso image** που εμείς θα δημιουργήσουμε. Στην περίπτωση μας η συσκευή αυτή είναι το cdwriter που στο pc μου είναι η συσκευή **/dev/sr0**.
|
|||
|
- Η παράμετρος **firstdir/** έχει περιγραφεί παραπάνω.
|
|||
|
|
|||
|
#### Έλεγχος του iso image
|
|||
|
|
|||
|
Η γενική ιδέα του ελέγχου του **iso image** είναι η ίδια όπως και παραπάνω όμως υπάρχει μια μικρή (σχετικά) διαφορά. Έτσι για να μπορέσουμε να ελέγξουμε το
|
|||
|
**iso image** θα πρέπει να φτιάξουμε ένα άλλο **iso image** με την παρακάτω εντολή:
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
mkisofs -o iso-image1 -R --C xx,0 -M /dev/cdwriter firstdir/.
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
Η εντολή αυτή είναι η ίδια με την προηγούμενη απλά εδώ το **iso image** θα είναι φτιαγμένο έτσι ώστε το πρώτο του sector number να είναι μηδέν.
|
|||
|
|
|||
|
Τώρα μπορούμε να το κάνουμε mount κατά τα γνωστά με τις **loopback devices**.
|
|||
|
|
|||
|
### [5.3 Εγγραφή του session]{#ss5.3}
|
|||
|
|
|||
|
Η εγγραφή του session γίνεται κατα τα γνωστά με την εντολή :
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
cdrecord -v -multi -eject speed=2 dev=0,0 iso-image
|
|||
|
|
|||
|
----------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
|
|||
|
### [6. Βιβλιογραφία]{#s6}
|
|||
|
|
|||
|
- Το σχετικό howto.
|
|||
|
- Τα manuals των εντολών mkisofs, cdrecord, lsmod , rmmod , insmod, modprobe.
|
|||
|
- Το documentation του πυρήνα.
|
|||
|
- Το Internet.
|
|||
|
|