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
CD-ROM デバイスとディスクは、UltraISO
ユーティリティを使用して Windows で非常に高速にコピーできるため、問題ないはずです。
ということは、Ubuntu で何かが正しく設定されていないということでしょうか?
答え1
ddの使い方が間違っています。
dd のブロック サイズはデフォルトで 512 バイトです。ハード ドライブのセクター サイズは 512 バイトなので、ハード ドライブでは許容範囲内です (ただし、最適とは言えません。これについては後で詳しく説明します)。ただし、CD-ROM のセクター サイズは 2048 ~ 2352 バイトです。デフォルトのブロック サイズでは、ドライブはセクターごとに 4 回または 5 回の部分読み取りを行うため、速度が大幅に低下します。
他に考慮すべき点は、アクセス タイミングとドライブ バッファです。簡単に言うと、セクターごとに読み取るのではなく、大きなチャンクで読み取る必要があります。ドライブのバッファ サイズがどれくらいかはわかりませんが、一般的に 32 メガバイトが適切なブロック サイズです。
# dd if=/dev/sr0 of=./maverick.iso bs=32M
答え2
UDMA2 上にあるため、設定するものは何もありません。それよりも簡単かもしれません。dd コマンドで bs=2M を使ってみましたか? (CD-ROM の最適なサイズを見つけるには、いくつか試してみる必要があるかもしれません。サイズが大きすぎると、CD がスピンダウンします。dd はオーバーラップ I/O を使用しません。) 長い読み取りは高速になるはずです。