Ubuntu 中從 CDROM 複製非常慢

Ubuntu 中從 CDROM 複製非常慢

我正在使用命令複製 CDROM 映像:

# dd if=/dev/sr0 of=./maverick.iso

但速度非常慢,大約為 350k 位元組/秒。我搜尋了谷歌,並嘗試了命令

# hdparm -vi /dev/sr0

/dev/sr0:
 HDIO_DRIVE_CMD(identify) failed: Bad address
 IO_support    =  1 (32-bit)
 readonly      =  0 (off)
 readahead     = 256 (on)
 HDIO_GETGEO failed: Inappropriate ioctl for device

 Model=DVD-ROM UJDA775, FwRev=DA03, SerialNo=
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=yes, tPIO={min:180,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 mdma2 
 UDMA modes: udma0 udma1 *udma2 
 AdvancedPM=no
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 3:  ATA/ATAPI-1,2,3,4,5

 * signifies the current active mode

好像 DMA 已經打開了。

設備測試給出:

# hdparm -t /dev/sr0 

/dev/sr0:
 Timing buffered disk reads:    2 MB in  6.58 seconds = 311.10 kB/sec

# sudo hdparm -tT /dev/sr0 

/dev/sr0:
 Timing cached reads:     2 MB in  2.69 seconds = 760.96 kB/sec
 Timing buffered disk reads:  m  4 MB in  5.19 seconds = 789.09 kB/sec

CD-ROM 裝置和光碟應該沒問題,因為我可以使用UltraISO實用程式在 Windows 中非常快速地複製它。

所以我猜 Ubuntu 中有些東西配置不正確,是嗎?

答案1

您使用 dd 的方式不正確。

dd 的區塊大小預設為 512 字節,這對於硬碟來說是可以接受的(但不是很好,稍後會詳細介紹),因為硬碟磁區的大小為 512 位元組。然而,CD-ROM 的磁區大小在 2048 到 2352 位元組之間。預設區塊大小會導致驅動器對每個磁區進行四到五次部分讀取,從而大大減慢速度。

其他需要考慮的因素是存取時序和磁碟機緩衝區。長話短說,您應該大塊閱讀,而不是逐個扇區閱讀。我不知道驅動器的緩衝區大小是多少,但 32 MB 通常是一個不錯的區塊大小。

# dd if=/dev/sr0 of=./maverick.iso bs=32M

答案2

它位於 UDMA2 上,因此無需進行任何配置。它可能比這更簡單:您是否嘗試過在 dd 命令上使用 bs=2M ? (您可能需要嘗試幾次才能找到 CD-ROM 的最佳大小,如果它變得太大,CD 將停止旋轉。dd 不使用重疊 I/O。)讀取時間越長,速度就會越快。

相關內容