Запись дисков через ATAPI в Linux
AgBr, оригинал
Вы еще пишете через SCSI? Тогда мы идем к вам.
Есть у меня CD-RW. И на нем я иногда пишу. Однажды я задумался: "Что же это за извращение такое, эмуляция scsi на ide?" И решил я записать диск на ATAPI CD-RW через ATAPI. Что из этого вышло-
Надо сказать конфигурацию моих CD приводов: hdc - DVD-ROM одной известной фирмы, hdd - CD-RW другой не менее известной фирмы. Linux-ядро - 2.4.26.
Cdrecord 2.0 (i686-suse-linux) Copyright (C) 1995-2002 JЖrg Schilling.
Отключил я эмуляцию scsi, стало у меня два нормальных IDE/ATAPI DVD/CD-ROM'а. Тут же включил им DMA, одному UDMA/66, другому - UDMA/33. Диски стали читать заметно быстрее, но это к делу не относится. Полезно читать разного рода help'ы и мануалы:
cdrecord dev=help
А вот и первый результат:
Supported SCSI transports for this platform:
Transport name: sg
Transport descr.: Generic transport independent SCSI
Transp. layer ind.:
Target specifier: bus,target,lun
Target example: 1,2,0
SCSI Bus scanning: supported
Open via UNIX device: not supported
Transport name: ATA
Transport descr.: ATA Packet specific SCSI transport
Transp. layer ind.: ATAPI:
Target specifier: bus,target,lun
Target example: ATAPI:1,2,0
SCSI Bus scanning: supported
Open via UNIX device: not supported
Transport name: RSCSI
Transport descr.: Remote SCSI
Transp. layer ind.: REMOTE:
Target specifier: rscsi@host:bus,target,lun
Target example: REMOTE:rscsi@host:1,2,0
SCSI Bus scanning: supported
Open via UNIX device: not supported
Надо сказать, что запись через ATAPI поддерживается достаточно давно, но ни в одном howto я этого не нашел. Поддерживается она на всех последних ядрах 2.4.x и на всех 2.6.x.
Дальше все стало понятно:
cdrecord dev=ATAPI:0,0,0 -checkdrive
Cdrecord 2.0 (i686-suse-linux) Copyright (C) 1995-2002 JЖrg Schilling
scsidev: 'ATAPI:0,0,0'
devname: 'ATAPI'
scsibus: 0 target: 0 lun: 0
Warning: Using ATA Packet interface.
Warning: The related libscg interface code is in pre alpha.
Warning: There may be fatal problems.
Using libscg version 'schily-0.7'
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'xxxxxxx '
Identifikation : 'DVD-ROM xxx-nnn '
Revision : '1.04'
Device seems to be: Generic mmc2 DVD-ROM.
cdrecord: Sorry, no CD/DVD-Recorder or unsupported CD/DVD-Recorder found on this target.
Знакомьтесь - это мой DVD-ROM, но писать он не умеет, где же взять другое устройство? Очевидно оно по адресу ATAPI:0,1,0.
cdrecord dev=ATAPI:0,1,0 -checkdrive
Cdrecord 2.0 (i686-suse-linux) Copyright (C) 1995-2002 JЖrg Schilling
scsidev: 'ATAPI:0,1,0'
devname: 'ATAPI'
scsibus: 0 target: 1 lun: 0
Warning: Using ATA Packet interface.
Warning: The related libscg interface code is in pre alpha.
Warning: There may be fatal problems.
Using libscg version 'schily-0.7'
Device type : Removable CD-ROM
Version : 0
Response Format: 2
Capabilities :
Vendor_info : 'xxxx '
Identifikation : 'CD-RW xxxnnnx '
Revision : 'QYS1'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE FORCESPEED
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Ну вот и все, а дальше - как обычно:
cdrecord -v dev=ATAPI:0,1,0 cdr.iso
Целью моей задачи ставилось записать диск через ATAPI - получилось. Может, кто-то скажет, что он давно знал это, но во всех мануалах пишут (в обоих смыслах) через scsi. А не говорю, что это плохо, но можно по-другому.