Estou usando o comando para copiar a imagem do CDROM:
# dd if=/dev/sr0 of=./maverick.iso
Mas é muito lento, cerca de 350k bytes/seg. Eu pesquisei no google e tentei o comando
# 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
Parece que o DMA já está ativado.
E um teste de dispositivo fornece:
# 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
O dispositivo de CD-ROM e o disco devem estar ok porque posso copiá-los muito rapidamente no Windows, usando UltraISO
o utilitário.
Então acho que há algo que não está configurado corretamente no Ubuntu, não é?
Responder1
Você está usando dd incorretamente.
O tamanho do bloco para dd é de 512 bytes por padrão, o que é aceitável (mas não ótimo, falaremos mais sobre isso depois) para um disco rígido, já que os setores do disco rígido têm 512 bytes de tamanho. Os CD-ROMs, entretanto, têm um tamanho de setor entre 2.048 e 2.352 bytes. O tamanho de bloco padrão faz com que a unidade faça quatro ou cinco leituras parciais por setor, tornando-a imensamente lenta.
As outras coisas a serem levadas em consideração são o tempo de acesso e o buffer da unidade. Para resumir a história, em vez de ler setor por setor, você deve ler grandes pedaços. Não sei qual é o tamanho do buffer da unidade, mas 32 megabytes geralmente é um tamanho de bloco decente.
# dd if=/dev/sr0 of=./maverick.iso bs=32M
Responder2
Está em UDMA2, então não deve haver nada para configurar. Pode ser mais simples que isso: você já tentou usar bs=2M no seu comando dd? (Você pode ter que tentar alguns para encontrar o tamanho ideal para o CD-ROM, se ficar muito grande, o CD irá girar. O dd não usa E/S sobreposta.) Leituras mais longas devem ficar mais rápidas.