Veri CD'lerinin Yazılması

CD'ye yazmaya karar verdiğimiz dosyaları, CD dosya sistemine dönüştürmeli ve bu şekilde CD'ye yazmalıyız. Bunun için ilk önce yazmayı düşündüğümüz dosyaları kendi dosya sistemimiz üzerinde bir dizine toplamalı, ve daha sonra da mkisofs isimli yazılım yardımı ile bu dizini CD dosya sistemine dönüştürmeliyiz. Bir dizin CD dosya sistemine şu şekilde dönüştürülebilir:

    mkisofs -r -o iso_dosyasi.iso cdye_yazilacak_dosyalar/

Bu komut, bulunduğumuz dizinde bulunan cdye_yazilacak_dosyalar/ isimli dizini, yine bulunduğumuz dizine iso_dosyasi.iso ismi ile dönüştürecektir. Aşağıdaki ekran çıktısı, tez/ isimli dizinin tez.iso dosyasına dönüştürülmesini göstermektedir:

[root@isildur iso]# mkisofs -r -o tez.iso tez/
Using APPEN00.HTM;1 for  tez/Applied_Cryptography/appendix-b.html (appendix-a.html)
Using LECTU000.PS;1 for  tez/lecture_notes/lecture17.ps (lecture16.ps)
Using LECTU001.PS;1 for  tez/lecture_notes/lecture16.ps (lecture15.ps)
Using LECTU002.PS;1 for  tez/lecture_notes/lecture15.ps (lecture14.ps)
Using LECTU003.PS;1 for  tez/lecture_notes/lecture14.ps (lecture13.ps)
Using LECTU004.PS;1 for  tez/lecture_notes/lecture13.ps (lecture12.ps)
Using LECTU005.PS;1 for  tez/lecture_notes/lecture12.ps (lecture11.ps)
Using LECTU006.PS;1 for  tez/lecture_notes/lecture11.ps (lecture10.ps)
Using LECTU007.PS;1 for  tez/lecture_notes/lecture10.ps (lecture1.ps)
Using 2001_00.PDF;1 for  tez/pointcheval/2001_asiacryptC.pdf (2001_asiacryptA.pdf)
13.10% done, estimate finish Wed Feb 26 15:20:25 2003
26.21% done, estimate finish Wed Feb 26 15:20:21 2003
39.34% done, estimate finish Wed Feb 26 15:20:23 2003
52.43% done, estimate finish Wed Feb 26 15:20:23 2003
65.55% done, estimate finish Wed Feb 26 15:20:27 2003
78.65% done, estimate finish Wed Feb 26 15:20:26 2003
91.75% done, estimate finish Wed Feb 26 15:20:26 2003
Total translation table size: 0
Total rockridge attributes bytes: 44970
Total directory bytes: 108544
Path table size(bytes): 618
Max brk space used 617e4
38160 extents written (74 Mb)

Ayrıca, yazmak istediğimiz dosyalar diskimizde değil bir başka CD üzerinde bulunuyor olabilirler, ya da bir CD'yi bire-bir kopyalamak istiyor olabiliriz (İlgilenmeyenler okumaya bir kaç satır aşağıdan devam edebilirler). Bu durumda izlenebilecek iki yöntem vardır. İlki, CD'den CD'ye doğrudan kopyalama, diğeri de kopyalanacak CD'yi iso olarak diskimize kaydettikten sonra disk üzerinden CD'ye yazmak. İkisinin sonucu arasında hiçbir fark olmayacak, fakat ikinci yöntemi takip ettiğimiz taktirde CD'mizi yakma olasılığımız daha az olacaktır. Çünkü, CD'den CD'ye doğrudan kopyalama esnasında CD okuyucunun normal okuması esnasında bir kaç sefer deneyip okuyabileceği bir kısım, CD yazıcıya olan veri akışını sekteye uğratacak ve yazma işlemi başarısızlık ile sonlanacaktır. Yine de kendinize güveniyor olabilir ve illa ki CD'den CD'ye doğrudan kopyalama yapmak isteyebilirsiniz.

Örneğin CD yazıcınızın SCSI bus adresi 0,4,0 ve CD okuyucu olarak kullanacağınız aygıt /dev/cdrom iken aşağıdaki komut ile CD'den CD'ye kopyalama yapabilirsiniz. Bu noktada yazma hızını (yani komuttaki speed parametresini) düşük tutmanız risklerin azalması açısından iyi bir yaklaşım olacaktır:

[root@isildur iso]# cdrecord -v dev=0,4,0 speed=2 -isosize /dev/cdrom

İlk yönteme göre kopyalama yapmak isteyenlerin, yani CD'den CD'ye kopyalama yerine iso dosyasını önce disklerinde oluşturup daha sonra CD yazma işlemine geçmek isteyenlerin ihtiyacı olan komut şöyledir (kopyalamak istediğiniz CD'nin /dev/cdrom aygıtında olduğunu varsayarsak):

[root@isildur iso]# dd if=/dev/cdrom of=iso_dosyasi.iso

Artık iso dosyamız hazırdır, ve iso dosyamızın boyutunun CD'mizin kapasitesinden küçük olduğunu teyit ettikten sonra CD'ye yazma işlemine başlamamız için önümüzde hiçbir engel yoktur. Fakat yine de, daha sonradan ortaya çıkabilecek tatsızlıkları engellemek için, iso dosyasının içini kontrol etmek isteyebiliriz; şu anda aklımıza gelmeyen ancak gözümüzle gördüğümüzde hatırlayabileceğimiz eksiklik ya da hataların var olmadığından emin olmak için. Bunun için iso dosyamızı, sanki bir CD-ROM'muş gibi dosya sistemimizde bir yere bağlayıp içinde gezebiliriz:

[root@isildur iso]# mount -t iso9660 -o ro,loop=/dev/loop0 tez.iso /mnt/cdrom

komutu yeterli olacaktır. Bir problem olmadığından emin olduktan sonra da iso dosya sistemini

[root@isildur iso]# umount /mnt/cdrom

komutu yardımı ile dosya sisteminizden ayırabiliriz. Boş CD'mizi CD-yazarın içerisine koyduktan sonra yazma işlemine başlayabiliriz.

Yazma işlemi aşağıdaki komut yardımı ile gerçekleştirilecektir:

    cdrecord dev=scanbus_id_si -eject speed=yazma_hizi iso_dosyasi.iso

Burada belki de üzerinde konuşmamız gereken tek parametre 'dev' parametresidir. Bu parametre, yazma işleminde kullanacağımız cihazın hangi cihazımız olduğunu bildirdiğimiz parametredir ve değerinin ne olacağına `cdrecord -scanbus' çıktısına göre karar verdiğimizi de hatırlatalım. Aşağıdaki ekran çıktısı, az önce hazırladığımız tez.iso isimli dosyayı yazdığımızda meydana gelen çıktıdır:

[root@isildur iso]# cdrecord dev=0,4,0 -eject speed=12 tez.iso
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling
scsidev: '0,4,0'
scsibus: 0 target: 4 lun: 0
Linux sg driver version: 3.1.22
Using libscg version 'schily-0.5'
Device type    : Removable CD-ROM
Version        : 2
Response Format: 2
Capabilities   : SYNC LINKED
Vendor_info    : 'PLEXTOR '
Identifikation : 'CD-R   PX-W1210S'
Revision       : '1.04'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags   : SWABAUDIO
Starting to write CD/DVD at speed 12 in write mode for single session.
Last chance to quit, starting real write in 0 seconds. Operation starts.
Track 01: Total bytes read/written: 83839360/83839360 (58320 sectors).