The CD frame is 2352 bytes. For a data CD, this is 2048 bytes of data + different headers and ECC, but you can read most of the raw frame data. A drive can trim a few bytes. Therefore, bypassing the ISO 9660 file system and reading a CD in raw mode is your best bet. Reading will fail with an error on fatal frames, but you can skip them and start reading the next frame.
On Linux, you must open a low-level SCSI device, issue ioctl to install CDROMREADRAW, and use read and lseek as needed.
A description of the CD programming brushes is here .
This page contains information on reading CDROM on Windows, but does not explain whether it returns raw data or not.
Steve c
source share