Я использую команду для копирования изображения CD-ROM:
# 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 и диск должны быть хорошо, потому что я могу скопировать его очень быстро в Windows, с помощью UltraISO
утилита.
Таким образом, я предполагаю, что существует что-то не настроенное прямо в Ubuntu, не так ли?
Вы используете dd неправильно.
Размер блока для dd составляет 512 байтов по умолчанию, который является приемлемым (но не большим, больше на том позже) для жесткого диска, так как секторы жесткого диска составляют 512 байтов в размере. CD-ROM, однако, имеют размер сектора между 2048 и 2 352 байтами. Размер блока по умолчанию вызывает диск сделать четыре или пять частичных чтений на сектор, замедляя его очень.
Другими вещами включить в является синхронизация доступа и буфер диска. Короче говоря, вместо того, чтобы читать сектор сектором, необходимо считать большие блоки. Я не знаю, каков размер буфера диска, но 32 мегабайта обычно достойный размер блока.
# dd if=/dev/sr0 of=./maverick.iso bs=32M
Это находится на UDMA2, таким образом, не должно быть ничего для конфигурирования. Это могло бы быть более просто, чем это: Вы попытались использовать bs=2M на своей команде dd? (Вам, возможно, придется попробовать некоторых для нахождения оптимального размера для CD-ROM, если это станет слишком большим, то CD будет вращаться вниз. dd не использует перекрытый i/o.) Более длительные чтения должны стать быстрее.