The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Запись и копирование cdrw/dvd в Linux (cdrom iso dvd linux cdrecord udf)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cdrom, iso, dvd, linux, cdrecord, udf,  (найти похожие документы)
From: Алексей Любимов <avl at linux-os.ru> Newsgroups: http://www.linux-os.ru Date: Mon, 17 Sep 2004 18:21:07 +0000 (UTC) Subject: Запись и копирование cdrw/dvd в Linux Оригинал: http://www.linux-os.ru/wiki/LinuxTechnology Преамбула. ---------- При всем многообразии исполнений, все пишущие cdr(w) приводы являют собой SCSI устройства с минимальными отклонениями. А раз так, обычно говорят не о типе интерфейса устройства, а о типе транспорте, через который на это устройство передаются SCSI команды. Транспорты бывают следующих типов: * SCSI - просто SCSI транспорт к SCSI устройствам. * ATAPI - SCSI транспорт к ATAPI устройствам. ATAPI приводы на текущий момент являются самым массовым предложением на рынке. * PG - SCSI эмуляция для устройств, подключеных через параллеьный порт * RSCSI - SCSI транспорт на удаленное SCSI устройство. Позволяет писать диски через сеть. SCSI приводы. ------------- Для scsi приводов весь процесс подключения нисколько не отличается от подключения любых других scsi устройств. Вот стандартная установка на примере scsi адаптера adaptec: /etc/modules.conf: ... alias scsi_hostadapter aic7xxx ... /etc/modules: scsi_hostadapter Проверка после загрузки: #lsmod ... aic7xxx 164364 6 sd_mod 11900 12 scsi_mod 100864 2 [aic7xxx sd_mod] ... $ cdrecord --scanbus Cdrecord 2.0 (i586-alt-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' scsibus0: 0,0,0 0) '_NEC ' 'DVD_RW ND-1300A ' '1.06' Removable CD-ROM 0,1,0 1) * 0,2,0 2) 'YAMAHA ' 'CRW2200E ' '1.0D' Removable CD-ROM 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * Если этого не произошло, значит или нет контакта в железках или драйвер scsi контроллера неработоспособен. Для записи на scsi устройство достаточно указать cdrecord трехзначный адрес устройства: $cdrecord dev=0,0,0 ... $cdrecord dev=0,2,0 ... ATAPI приводы. -------------- Большое распостранение на сегодняшний день получили ATAPI приводы. Включаются они, как обычные ide диски или cdrom-ы, дешевы и практичны. В линуксе существует два варианта подключения ATAPI устройств: * SCSI эмуляция. Вариант со SCSI эмуляцией имеет очевидные преимущества: + Совместимость со всеми программами. Все программы для записи дисков в линуксе поддерживают SCSI устройства. + Стабильность. Это наиболее оттестированный режим подключения. Давно написан. + Совместимость с приводами. Самая большая база совместимых ATAPI приводов. Настройка подключения практически не отличается от предыдущего варианта со SCSI, только в качестве модуля контроллера SCSI используется специальный модуль ide-scsi. /etc/modules.conf: ... alias scsi_hostadapter ide-scsi ... /etc/modules: scsi_hostadapter Проверка после загрузки: #lsmod ... ide-scsi 9424 0 sg 31676 0 (autoclean) sd_mod 11900 4 scsi_mod 100864 5 [ide-scsi sg sd_mod] ... $cdrecord -scanbus Cdrecord 2.0 (i586-alt-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' ... scsibus1: 1,0,0 100) '_NEC ' 'DVD_RW ND-1300A ' '1.06' Removable CD-ROM 1,1,0 101) 'YAMAHA ' 'CRW2200E ' '1.0D' Removable CD-ROM 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * Работа с ATAPI устройствами в этом режиме ничем не отличается от обычного режима SCSI: $cdrecord dev=1,0,0 $cdrecord dev=1,1,0 Замечания к реализации: можно на ходу переходить на scsi эмуляцию и обратно: $ sudo rmmod ide-cd; sudo modprobe ide-scsi $ cdrecord --scanbus Cdrecord 2.0 (i586-alt-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' scsibus1: 1,0,0 100) '_NEC ' 'DVD_RW ND-1300A ' '1.06' Removable CD-ROM 1,1,0 101) 'YAMAHA ' 'CRW2200E ' '1.0D' Removable CD-ROM 1,2,0 102) * 1,3,0 103) * 1,4,0 104) * 1,5,0 105) * 1,6,0 106) * 1,7,0 107) * $ sudo rmmod ide-scsi; sudo modprobe ide-cd $ cdrecord --scanbus dev=ATAPI: Cdrecord 2.0 (i586-alt-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling scsidev: 'ATAPI:' devname: 'ATAPI' scsibus: -1 target: -1 lun: -1 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' scsibus0: 0,0,0 0) '_NEC ' 'DVD_RW ND-1300A ' '1.06' Removable CD-ROM 0,1,0 1) 'YAMAHA ' 'CRW2200E ' '1.0D' Removable CD-ROM 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * Устаревший вариант настройки - в парметры ядра передать ide-scsi=/dev/hdx где /dev/hdx - устройство ATAPI режим. ------------ Вариант с ATAPI режимом появился весьма недавно. Но в ядре 2.6.x он уже стал основным. Так что за ним будущее. Преимущества ATAPI транспорта: + Это самый быстрый режим. + Этот транспорт уже поддерживается всеми основными компонентами - ядрами 2.4.x, 2.6.x, cdrecord и cdrdao. + Простота настройки. Специально настраивать ничего не надо. Достаточно подключить приводы и загрузиться. Проверка: cdrecord --scanbus dev=ATAPI: Cdrecord 2.0 (i586-alt-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling scsidev: 'ATAPI:' devname: 'ATAPI' scsibus: -1 target: -1 lun: -1 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' scsibus0: 0,0,0 0) '_NEC ' 'DVD_RW ND-1300A ' '1.06' Removable CD-ROM 0,1,0 1) 'YAMAHA ' 'CRW2200E ' '1.0D' Removable CD-ROM 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) * Для записи на устройство с таким типом подключения необходимо указывать не только адрес устройства, но и транспорт ATAPI: $cdrecord dev=ATAPI:0,0,0 ... $cdrecord dev=ATAPI:0,1,0 ... Итак, привод подключен и cdrecord его "увидел". Можно переходить непосредтственно к записи дисков...
Продолжение: Базовые операции записи на cdr(w) Оригинал: http://www.linux-os.ru/Members/avl/news/LinuxCDRW Запись диска можно разделить на два этапа: * Подготовка образа диска. * Непосредственно прожиг болванки в соответствии с этим образом. Первую задачу выполняет утилита mkisofs, вторую - cdrecord. Создание образа диска из файлов: -------------------------------- Предположим, что все файлы, которые мы хотим записать на диск, уже разложены в директории ~/cdr Тогда команда, создающая образ, будет примерно такой: mkisofs -o ~/tmp/test.iso -jcharset koi8-r -r ~/cdr/ Использованные опции: -o ~/tmp/test.iso говорит, что образ будет записан в файл ~/tmp/test.iso -jcharset koi8-r включает расширение joilet и переконвертацию русских имен в юникод из koi8-r. Это все нужно указывать в том случае, если диск предполагается использовать под виндовс. -r данная опция включает расширение rock ridge. Нужна для беспроблемного чтения диска под линуксом и юниксами. Еще полезно знать о существовании опции -joliet-long. Эта опция позволяет записывать диски для виндовс с именами файлов до 103 символов. Иначе имена файлов урежутся до 32 символов. mkisofs -o ~/tmp/test.iso -jcharset koi8-r -r ~/cdr/ Using TCOMM000.GIF;1 for /home/avl/cdr/Docs/PunkBuster/admins/tcommands2.gif (tcommands1.gif) Using TCOMM000.GIF;1 for /home/avl/cdr/Docs/PunkBuster/players/tcommands2.gif (tcommands1.gif) 1.99% done, estimate finish Sun Feb 29 02:45:40 2004 3.99% done, estimate finish Sun Feb 29 02:45:40 2004 ... 97.58% done, estimate finish Sun Feb 29 02:45:32 2004 99.57% done, estimate finish Sun Feb 29 02:45:32 2004 Total translation table size: 0 Total rockridge attributes bytes: 9740 Total directory bytes: 22528 Path table size(bytes): 136 Max brk space used 12d24 251088 extents written (490 Mb) Проверка образа диска. ---------------------- Всегда полезно проверить только что записанный образ... $ sudo mount -t iso9660 -o loop ~/tmp/test.iso /mnt/disk $ ls /mnt/disk baseq3 INSTALL q3ded quake3.x86 botlib.log missionpack quake3 quake3.xpm CHANGES-1.32.txt pb quake3-smp README-Id-7-26-01.html Docs Q3A_EULA.txt quake3-smp.x86 README-linux.txt $ sudo umount /mnt/disk Запись образа с диска в файл (копия диска): ------------------------------------------- Если речь идет о стандартном диске с данными, то прекрасно подойдет утилита readcd из пакета cdrecord. В случае videocd или диске с музыкой, программа readcd не поможет, зато подойдет утилита cdrdao. readcd dev=ATAPI:0,1,0 f=~/tmp/test.iso Использованные опции: dev=ATAPI:0,1,0 устройство, с которого читаем. Список устройств можно узнать по команде cdrecord -scanbus или cdrecord -scanbus dev=ATAPI: f=~/tmp/test.iso указывает файл, куда будет записан образ. $readcd dev=ATAPI:0,1,0 f=~/tmp/test.iso Read speed: 7056 kB/s (CD 40x, DVD 5x). Write speed: 3528 kB/s (CD 20x, DVD 2x). Capacity: 166496 Blocks = 332992 kBytes = 325 MBytes = 340 prMB Sectorsize: 2048 Bytes Copy from SCSI (0,1,0) disk to file '/home/avl/tmp/test.iso' end: 166496 addr: 166496 cnt: 50 Time total: 168.143sec Read 332992.00 kB at 1980.4 kB/sec. Запись диска. ------------- Непосредственно запись диска производится утилитой cdrecord примерно таким образом: cdrecord dev=ATAPI:0,1,0 driveropts=burnfree ~/tmp/test.iso Использованные опции: dev=ATAPI:0,1,0 устройство, на которое пишем. driveropts=burnfree использовать защиту от опустошения буфера при записи. Эта функция не обязательна и вообще должна поддерживаться приводом, но на больших скоростях крайне желательно ее включать. ~/tmp/test.iso файл с образом диска. Полезные опции: -v выводит доп. информацию в процессе записи. В частности, индикатор прогресса. -dummy режим симуляции. полезен для отладки процесса записи. cdrecord -dummy dev=ATAPI:0,1,0 driveropts=burnfree ~/tmp/test.iso Cdrecord 2.0 (i586-alt-linux-gnu) 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 : 2 Response Format: 2 Capabilities : SYNC Vendor_info : 'YAMAHA ' Identifikation : 'CRW2200E ' Revision : '1.0D' 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/R96R Starting to write CD/DVD at speed 20 in dummy TAO mode for single session. Last chance to quit, starting dummy write 0 seconds. Operation starts. Track 01: Total bytes read/written: 340983808/340983808 (166496 sectors). Запись диска без создания промежуточного файла-образа "на лету". ---------------------------------------------------------------- Часто нет никакого резона создавать "одноразовый" файл с образом, чтобы после записи его сразу удалить и больше о нем не вспоминать. В таких случаях можно просто направить вывод mkisofs в cdrecord: mkisofs -jcharset koi8-r -r ~/cdr/ | cdrecord dev=ATAPI:0,1,0 driveropts=burnfree - Как нетрудно заметить, этот вариант представляет собой конвейер из команды создания образа и команды записи образа на диск. В команде создания образа пропущена опция - имя файла. В таком варианте образ направляется на стандартный вывод программы, а в команде записи в качестве имени файла указан дефис. Таким образом cdrecord узнает, что образ надо брать со стандартного потока ввода программы.
Продолжение: Запись CD-R/RW в формате UDF на ALT Linux Compact 2.3 Автор: Jose <http://www.linux-os.ru/Members/Jose>; Введение -------- Точно даже не скажу откуда мне пришла мысль начать прикручивать эту фишку (запись на UDF отформатированные CD-R \CD-RW). До этого имел дело с пакетной записью на CD-RW год назад под Window$. НО. Мысль появилась. Значит будем воплощать в жизнь. Что такое UDF ------------- UDF это файловая система, которая позволяет пакетную запись на CD-диски.CD-диск в таком случае выглядит как маленький жесткий диск, или как ну очень большая дискета 8-)Вам не нужно создавать образы дисков, Вам можно забывать про открытие\закрытие сессий. UDF и Linux ----------- Интересно, как это все реализовано в Linux? Или Вы думаете, что в Линуксе этого нет? Если полезть немного в истрию, то выяснится, что поддержка файловой системы UDF появилась в ядрах серии 2.4. Но для CDR\CDRW только в режиме чтения. Не совсем интересно.Поддержка записи на UDF в ванильное ядро не включена. Патч нужен. Называется нехитро packet-версия_ядра.patch.Ну и как бы нужно начинать старую песню - пересборку ядра с включением этого патча. А теперь хватит истории и лезем в Sisyphus. У меня срез от 5.02.2004.Есть и исходники. НО. ALT Linux Team собирает несколько версий ядра, каждая со своим набором патчей.Смотрим доступные ядра на предмет наличия данного патча. Серверные ядра смело пропускаем. Альтовцы трепетно относятся к включению чего-то лишнего в серверные ядра. А вот смотрим в ядре wks: Пакет kernel-image-wks-up-2.4.22-alt3 This package contains the Linux kernel that is used to boot and run your system. It contains few device drivers for specific hardware. Most hardware is instead supported by modules loaded after booting. Patches included: kernel-fix-build-2003.04.23-alt8 kernel-fix-security-owl-2003.08.28-alt1 kernel-feat-core-win4lin-2.4.22-alt1 =>поддержка эмулятора Win4Lin kernel-fix-net-2003.11.09-alt1 kernel-fix-core-2003.11.09-alt1 kernel-fix-fs-2003.11.21-alt1 kernel-fix-lvm-2003.11.06-alt1 kernel-fix-drivers-ide-2003.11.06-alt7 kernel-fix-drivers-net-2003.11.18-alt1 kernel-fix-drivers-pci-2003.11.06-alt1 kernel-fix-drivers-scsi-2003.11.18-alt1 kernel-fix-drivers-sound-2003.11.06-alt1 kernel-fix-drivers-usb-2003.11.09-alt1 kernel-fix-drivers-cdrom-2003.11.06-alt1 kernel-fix-drivers-char-2003.11.06-alt1 kernel-fix-drivers-md-2003.07.08-alt10 kernel-fix-drivers-mtd-2003.09.16-alt1 kernel-fix-drivers-video-2003.10.19-alt1 kernel-fix-drivers-ieee1394-2003.11.06-alt1 kernel-fix-drivers-atm-2003.10.19-alt1 kernel-fix-security-2003.11.29-alt1 kernel-feat-fs-xfs-1.3-alt5 kernel-feat-acpi-2003.11.21-alt1 kernel-feat-cpufreq-2003.11.28-alt1 kernel-feat-i2c-2.8.1-alt1 =>поддержка подсистемы i2c (с помощью этого чуда у меня всегда перед глазами: t процессора и чипсета ..) kernel-feat-fs-ntfs-2.1.4c-alt1 kernel-feat-kconfig-2003.05.22-alt4 kernel-feat-crypto-2003.10.02-alt1 kernel-feat-drivers-usb-2003.09.29-alt1 kernel-feat-drivers-block-enbd-2.4.31-alt5 kernel-feat-drivers-pktcdvd-2003.08.25-alt1 => ВОТ он он. kernel-feat-drivers-video-splash-3.0.7-alt5 kernel-feat-net-ppp-mppe-20030707-alt1 kernel-feat-net-ipsec-2.00-alt3 kernel-feat-drivers-media-v4l2-2003.08.14-alt3 kernel-feat-drivers-net-sk98lin-6.17-alt1 kernel-feat-drivers-sound-emu10k1-0.20-alt1.a => поддержка звуковых карточек от Creative kernel-feat-drivers-libata-2003.11.28-alt1 kernel-fix-drivers-media-2003.09.09-alt1 kernel-feat-core-supermount-1.2.9-alt1 => поддержка supermount kernel-feat-core-setcap-2.4.21-alt0.1 kernel-feat-core-lowlatency-2.4.22-alt2 => почти realtime 8-) Собственно ставим это ядро. Хоть rpm`ом, хоть apt-get`ом,а еще лучше через Synaptic.Не сколько лучше, сколько красивее и удобнее. Модули к ядру новому ставим.Если кто не понимает об чем речь, то вперед - на atmsk.ru. Там статьи имеются о новой схеме сборки ядер в дистрибутивах от ALT Linux Team. Далее добавляем в /etc/modules.conf следующие строчки: # Packet CD writing alias block-major-97 pktcdvd alias /dev/pktcdvd[0-9]* pktcdvd Потом добавляем в /etc/rc.d/rc.local (если такого файла нет, создаем и даем ему права на выполнение): #!/bin/sh pktsetup /dev/pktcdvd0 /dev/scd0 Использование программы pktsetup. --------------------------------- Данная программа используется для ассоциации пакетного устройства с блочными CD bkb DVD устройствами, после чего пакетное устройство может быть монтировано, как файловая система с возможностью чтения\записи. Это требует поддержки ядром пакетных устройств и файловой системы UDF. СИНТАКСИС: pktsetup пакетное_устройство блочное_устройство или для удаления ассоциации: pktsetup -d пакетное_устройство Короче говоря, без этого после перезагрузки придется каждый раз делать pktsetup /dev/pktcdvd0 /dev/scd0. У меня CD-ROM работает через эмуляцию SCSI, поэтому /dev/scd0. У Вас может быть по другому. Еще, чтобы не монтировать врукопашную делаем новую точку монтирования. Создаем каталог /mnt/cdrw и заносим все это в /etc/fstab: /dev/pktcdvd0 /mnt/cdrw auto rw,user,noauto,iocharset=koi8-r,umask=0,noatime0 0 Эх. Проинициализировать все это нужно. Самый легкий путь - перезагрузиться. Ладно, совершаем кощунственное для линуксоидов действо -перезагружаемся. Перезагрузились. Это хорошо. А теперь пошли дальше. Где же нам взять UDF болванку? Давайте сами сделаем. Берем CDRW диск. Еще нам нужен пакет udftools. Берем его опять же в Сизифе.(Пользователям Альтлинукса вообще редко приходится на сторону ходить 8-)Все из одних рук.) в udftools входят: * cdrwtool * mkudffs * pktsetup * udfsck * wrudf Но нам они все не нужны. Нам нужна только cdrwtool. Подготавливаем CDRW болванку (стираем и форматируем ее под UDF) СИНТАКСИС: cdrwtool -d устройство -q Для нашего случая: # cdrwtool -d /dev/scd0 -q Подтверждаем, что мы все-таки хотим отформатировать диск и все данные на нем будут потеряны. И процесс пошел. 4-х скоростную RW`шку у меня долго круговертило.Не стоит на этом заморачиваться - быстрее не сделаете. Лучше кофе\чай\покурить. Ну а после того как отформатировало пробуем на болванку писать. Я использую оконный менеджер KDE.Соответственно и писать буду в нем же. В настройках KDE у меня прописано отображать устройства на рабочем столе, в частности смонтированые\отмонторованые CD-Writer ,CD-ROM. Поэтому на рабочем столе у меня есть 2 пиктограммы: одна для /mnt/cdrom, другая для /mnt/cdrw. Под последней надпись (pktcdvd0). Просто щелкаем на нем мышкой и открывается содержимое UDF диска. Берем для пробы перетаскиваем нужные нам файлы на диск.Только не эксперементируйте с каталогом Mail. Это было первое, что я попытался записать.А там у меня альтовская рассылка более 7000 писем и каждое в своем файле. Сначала я просто ждал, потом пил чай, потом еще ждал. В общем долго дело было. После всех вышеперечисленных действий запись на UDF диск должна выглядеть для Вас не сложнее чем запись на любой другой съемный носитель. У меня, например, все работает. Чего и Вам желаю. Дополнение: В принципе, можно использовать одну точку монтирования /mnt/cdrom/. Но что-то мне это не понравилось. Пользователи Mandrake Linux захотят все сделать через supermount. Тогда в /etc/fstab пишем: none /mnt/cdrw supermount dev=/dev/pktcdvd0,fs=udf:iso9660,rw,--,iocharset=koi8-r 0 0 Но при этом у меня очень долго открывались файлы и каталоги на диске. И очень часто светился индикатор записи на CD, хотя я всего лишь производил операции чтения. Если у кого получится нормально, то не скромничайте - дополняйте, исправляйте. С уважением. Jose. Спасибо за содействие Константину Лепихову aka L.A. Kostis. Создано: Jose Последнее изменение: 2004-03-14 08:30

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1, Bob (??), 18:29, 21/09/2004 [ответить]  
  • +/
    А никто не знает, почему, если записывать диск в ATAPI режиме, в syslog появляется куча сообщений об ошибках в командном пакете? И при этом диск читается нормально?
     
  • 2, Сергей (??), 22:41, 06/11/2004 [ответить]  
  • +/
    У меня на ядре 4.6.9 режим ATAPI работает на компах с чипсетом sis и intel 815, а на intel 845 - не работает. На вышеперечисленных чипсетах пробовал и одинаковые и разные приводы: Nec и Aopen (модели не помню, MMC-совместимые, достаточно новые). По-моему, ядро не поддерживает новые чипсеты в режиме ATAPI.
     
  • 3, Antares (?), 00:25, 05/08/2005 [ответить]  
  • +/
    Всё сделал, как сказано в статье, но CDRW привод в cdrecord -scanbus так и не появился.
    # cdrecord -scanbus
    Cdrecord 1.11a32 (i586-mandrake-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling
    cdrecord: No such file or directory. Cannot open '/dev/pg*'. Cannot open SCSI driver.
    cdrecord: For possible targets try 'cdrecord -scanbus'. Make sure you are root.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру