如何按顺序复制 CD 的内容而不是断开连接读取?

如何按顺序复制 CD 的内容而不是断开连接读取?

我有一系列 DVD,每张约 5GB,正在使用 Dell DW316 读取器将其复制到 Ubuntu 机器上,然后使用 clamAV-daemon 进行病毒扫描。目前,这个过程非常慢,运行速度仅为约 500KB/秒,我被要求加快这个过程。

我首先想到的是复制到 ramdisk,因为sudo mount -t tmpfs -o size=10G ramdisk /mnt/ramdiskDVD 扫描完成后,我可以弹出它,从 /mnt/ramdisk 中删除所有内容,然后插入另一张,这样复制到 RAM 的速度要快得多。这似乎适用于大多数 DVD,读取速度为 10MB/s,但一旦 cp 命令获取到 .rpm 文件的文件夹,读取速度似乎会极慢,短时间内达到 200KB/秒。

这是因为 cp 开始抛出错误cp: error reading 'path/to/file':这些较大的 .rpm 文件上的输入/输出错误,并且 IOtop 显示出明显的减速。

一位资深工程师告诉我,这可能是因为 cp 命令在复制文件时断开了连接而不是按顺序读取文件,而速度变慢可能是由于激光读取器在较大文件上寻找数据的移动造成的。

由于正在复制整个磁盘,有什么方法可以修改 cp 命令或类似命令以按顺序读取?

此外,ramdisk 方法似乎有效,因为一旦磁盘最终被复制,clamAV-daemon 可以在几秒钟内从 RAM 进行扫描,而直接从安装 DVD 则需要 1 个多小时。我只是在努力复制到 RAM 上。

我尝试使用命令通过 ramdisk 进行挂载,sudo mount -t tmpfs -o size=10G ramdisk /mnt/ramdisk并使用sudo cp /media/scanPC/disk/ /mnt/ramdisk/传输速度进行复制,这对于处理小文件夹和文件似乎很棒,但有一个包含 .rpm 文件的文件夹似乎速度明显变慢。

更新:我已使用 dd 复制了文件并将其安装在循环中:

$: sudo dd if=/dev/sr0 of=/mnt/ramdisk/diskimage
$: losetup --partscan --find --show /mnt/ramdisk/diskimage
$: mount /dev/loop0 /mnt/image

虽然这确实提供了相当大的性能提升,但现在 clamAV 在扫描任何 .rpm 文件时遇到困难,给出:/path/to/.rpm:无法读取文件错误

相关内容