我想知道是否有一种方法可以通过编程实现对CD上的数据进行逐字节复制?是否有可用的系统调用可以完成这些操作? 我的一张CD不知何故受到了损坏,使得其中一些文件无法通过资源管理器等方式访问。虽然我知道其中有信息,但当然我不能通过文件系统进行复制。
CD框架大小为2352字节。对于数据CD,这是2048字节的数据+杂项标题和ECC,但你可以读取大部分原始框架数据。驱动程序可能会削减几个字节。因此,绕过ISO 9660文件系统并以原始模式读取CD是最好的选择。读取将在无法恢复的帧上失败,并且您可能能够越过它们并开始读取下一个帧。在Linux上,您将打开低级SCSI设备,发出ioctl以设置CDROMREADRAW,并根据需要使用read和lseek。CD编程内幕的描述在这里。 此页面提供有关在Windows上读取CDROM的信息,但不解释它是否返回原始数据。
dd if=/dev/sr0 of=outputfile.bin
命令即可。而在Windows中,你可能需要像这里描述的那样操作特殊文件\\.\PhysicalDriveN
。 - Matteo Italia