使用 dd 创建随机 ISO 映像

使用 dd 创建随机 ISO 映像

我想使用上述方法创建一个 ISO 文件来测试光驱这里。我想创建一个充满随机数据的 ISO 文件,这样我可以将其刻录到 CD,读回并与原始 ISO 进行比较。我认为下面的命令会做我想要的。

dd if=/dev/urandom of=cd-rom_test.iso bs=2048 count=333000

但是,我不确定一些事情。

首先,块大小应该是多少? ISO 映像是否包含 CD 上的标头和纠错数据?块大小应该是 2048(没有标头和纠错)还是 2352(有标头和纠错)?

其次,我遇到的一些网站syncconv选项(例如这里)。据我所知,它用 0 填充了标头和纠错信息,这肯定是不正确的。

答案1

根据您的描述,您应该执行以下操作:

dd if=/dev/urandom of=testfile bs=1M count=699
mkisofs -o test_cdrom.iso testfile

完成后,您可以根据自己的喜好在光学介质上读写。

我建议的一件事是,与其预先测试光学介质,然后尝试写入实际的 ISO,然后验证您是否还不如写入目标数据 ISO 一次,因为它会给您与您尝试的结果完全相同的结果无需花费时间即可实现Write->Read->Verify->Format

答案2

由于您正在使用 写入文件dd,因此块大小不会改变结果输出。块大小仅在写入设备时才重要。

您正在从永远不会返回短读取的设备进行读取,因此您不需要使用sync来填充块。

无论如何,dd都没有对纠错数据的读或写访问权限。与磁性介质一样,驱动器管理该数据,您只能看到已纠错的块。

答案3

创建由随机字节组成的映像不是一个好主意,因为它会导致明显无效的 ISO 9660 文件系统。您应该创建一个仍然可以放入有效 ISO 文件系统中的大型随机文件。然后,您刻录此 ISO 映像并读取 CD 的内容,以便与硬盘上的原始文件进行比较,例如使用md5sumsha1sum。如果校验和相同,则您的驱动器可以正常写入和读取 CD。

相关内容