Yesterday I've got a CD/DVD burner capable of writing DVD+RW and started testing it. The device is HLDTST (LG) GSA-4163B (2Mb cache, firmware version 104).
System: AthlonXP 1833Mhz/256Mb DDR333/KT400/
After acquiring cdrecord-proDVD and formatting the medium, i tried to burn some data on it prepared by mkisofs. It worked OK. Although cdrecord refused to blank the medium it was said that no blanking is needed.
My kernel version is 2.6.12.4 with UDF support enabled and I made the following steps described in the README for cdrecord-ProDVD:
- created ufs on my /dev/dvd
- mounted it rw
- started copying the files to the DVD.
It worked flawlessly (albeit slow) until suddenly the process stopped and I saw these messages in the syslog:
Code:
kernel: hdc: media error (bad sector): status=0x51 { DriveReady SeekComplete Error }
kernel: hdc: media error (bad sector): error=0x34 { AbortedCommand LastFailedSense=0x03 }
kernel: ide: failed opcode was: unknown
kernel: end_request: I/O error, dev hdc, sector 568096
With the sector numbers incrementing constantly.
Then I interrupded the cp, waited until the drive stopped any activity (using LED blinking probe

) and tried to access the directory. The process hung up, and after a minute I've got
Code:
...
kernel: Unable to handle kernel paging request at virtual address 555502f7
kernel: printing eip:
kernel: c01cc9d2
kernel: *pde = 00000000
kernel: Oops: 0000 [#1]
kernel: PREEMPT
kernel: Modules linked in: vmnet vmmon via_agp uhci_hcd ehci_hcd usbcore ntfs
kernel: CPU: 0
...
So kernel Oopsed.
After couple of minutes testing different conditions I found out that the UDF filesystem entries were broken and so the kernel could not handle such fs. Seems that the data could not be written to the medium at the speed the system expected it to and while the burning was still in progress, the system gave up waiting for the return code or something like that. Then it dropped some packets and continued happily. When I set up a delay of 10 seconds between the copy of each file (quick hack) the burn process ended successfully.
Finally here're the questions::
1. Why does cdrecord append a new session instead of overwriting the first track?
(corrected) 2. See
http://www.linuxquestions.org/questi...hreadid=358753
for my another question about how to disable buffering on the block device.
New corrections: The problem does not depend on medium used. Now i have a Perl script which does unbuffered copying of the file (flushes the buffer every 2 Mb) and the process of writing lasts much shorter.