web-dev-qa-db-ja.com

CDROMからのコピーはUbuntuでは非常に遅いです

CDROMイメージをコピーするためのコマンドを使用しています。

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

しかし、それは約350kバイト/秒で非常に遅いです。私はGoogleを検索し、そのコマンドを試してみました

# 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
 _

UltraISOユーティリティを使用して、Windowsでは非常に高速にコピーできるため、CD-ROMデバイスとディスクは大丈夫です。

だから私はUbuntuで正しく構成されていない何かがあると思いますか?

1
Xiè Jìléi

あなたは誤ってddを使っています。

DDのブロックサイズはデフォルトで512バイトで、ハードドライブセクタは512バイトのサイズであるため、ハードドライブの場合は許容できます(ただし後でもっと大きくてはいません)。ただし、CD-ROMは、2048~2352バイトのセクタサイズを持ちます。デフォルトのブロックサイズは、ドライブにセクタごとに4つまたは5つの部分的な読み取りが行われ、それを非常に遅くなります。

要員の他の事項は、アクセスタイミングとドライブバッファです。セクター別セクターを読んで代わりに、長いストーリーを短くするために、大きなチャンクを読む必要があります。ドライブのバッファサイズが何であるかわかりませんが、32メガバイトは一般的にまともなブロックサイズです。

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

それはUDMA2上にあるので、構成するものは何もないはずです。それはそれよりも単純かもしれません:あなたのddコマンドでbs = 2mを使ってみましたか? (CD-ROMの最適なサイズを見つけるためにいくつか試してみる必要があるかもしれません、CDはスピンダウンします。DDはオーバーラップI/Oを使用しません。)より長い読み取りは速くなります。

1
SilverbackNet