Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Запись на CD через Интернет

Оригинал: Burning CD's over the Internet without an ISO File
Автор: Lubos Rendek
Дата публикации: апрель 2011 г.
Перевод: В. Семененко
Дата перевода: май 2011 г.

Сколько приложений с графическим интерфейсом для записи CD/DVD-дисков вы знаете?

А назовите те их них, которые могут:

- "вытягивать" iso-образ с ftp-сервера, одновременно прожигая его на болванку;

- создать iso-образ директории на удаленном компьютере по протоколу ssh и записать его на CD/DVD-диск.

Если вы хотите использовать приложения с графическим интерфейсом (GUI) для вышеназванных целей, то вам потребуется подмонтировать удаленный ftp-сервер или ssh-директорию, как часть локальной файловой системы. Однако, все это можно сделать через командную строку, не прилагая при этом особых усилий.

Эта статья проиллюстрирует некоторые трюки командной строки Linux на примере того, как можно работать с удаленными (по сети) iso-образами и как их записывать на CD/DVD-диски, сберегая при этом ваше время. На этих примерах мы наглядно увидим весь "блеск" CLI Linux.

Начнем с простого

Следующая команда сделает "снимок" CD-диска, вставленного в привод, преобразует его в iso-образ и поместит в локальную файловую систему:

$ dd if=/dev/cdrom of=/my/new/iso/image.iso

здесь:

if - (input file) - указываем, откуда утилита dd должна считывать данные;

of - (output file) - говорим dd, куда она должна положить сделанный ею image.iso (то есть, задаем путь).

Имя образа может быть абсолютно произвольным (все на откуп вашей фантазии), а вот "расширение" .iso не забываем указать!

Если вам необходимо преобразовать в iso-образ какую-либо локальную директорию, наиболее простым способом это можно сделать с помощью утилиты mkisofs:

$ mkisofs -o /my/new/iso/image.iso /path/to/your/files/

здесь:

-o (-output) - mkisofs должна создать файл с именем image.iso и поместить его в каталог /my/new/iso/.

Для того, чтобы просмотреть содержимое вашего только что созданного образа, достаточно примонтировать его к любой локальной директории следующей командой:

$ mount -t iso9660 /my/new/iso/image.iso /mnt/iso/ -o loop

здесь:

-t iso9660 - указываем тип файловой системы, которую монтируем;

-o loop - опция монтирования как петлевое (loopback) устройство.

Теперь вы можете записать созданный образ на болванку. Для начала, нам нужно знать имя записывающего устройства (CD-привода).

Записывать iso-образ мы будем с помощью утилиты командной строки wodim. Она же поможет нам и определить имя устройства:

$ wodim -devices (или # wodim -scanbus)
 wodim: Overview of accessible drives (1 found) :
-------------------------------------------------------------------------
 0  dev='/dev/scd0'     rwrw-- : 'Optiarc' 'DVD RW AD-7560A'
-------------------------------------------------------------------------

Теперь прожигаем "исошник" на болванку, указав:

- приемник - имя устройства CD-привода;

- источник - местоположение нашего iso-образа (путь к нему в локальной файловой системе).

$ wodim -eject -tao speed=0 dev=/dev/scd0 -v -data /my/new/iso/image.iso

здесь:

-eject - выдвинуть лоток с диском после окончания его записи;

-tao - режим записи (Track-At-Once - Трэк-За-Один-Раз);

-speed=0 - устанавливаем скорость записи на 0. В этом случае wodim сам подберет оптимальную скорость записи, исходя из технических характеристик привода (которые wodim получит от него);

-v - не молчать при выполнении действий (wodim будет выводить на монитор описание всех своих шагов);

-data - тип записываемой информации (ясно, что это в нашем случае это - данные).

Все приведенные выше примеры не являются чем-то сложным. Все просто!

Теперь чуть усложним задачу. Одновременно наши действия будут все более "виртуозными".

Знаете ли вы, что можно записывать iso-образ на болванку, не прибегая к промежуточному этапу его сохранения на компьютере?

В следующем примере мы сделаем образ CD-диска "на лету" и запишем его на болванку. Здесь следует оговориться, что для нижеприведенного примера необходимо наличие двух CD/DVD-приводов - источника и приемника. С привода-источника мы будем брать данные, затем преобразовывать их и записывать на привод-приемник.

$ dd if=/dev/scd0 | cdrecord -v speed=12 dev=/dev/scd1 fs=8 -data -

Точно также можно "на лету" "оболванить" любой файл или директорию, имеющуюся у нас в файловой системе:

$ mkisofs -r /path/to/my/files | cdrecord -v speed=12 dev=dev/scd1 fs=8 -data -

Как видно из двух приведенных примеров, возможность превращения файла (директории) в iso-образ осуществляется благодаря конвейеру (pipe). Мы берем данные, отдаем их на обработку одной программе, затем перенаправляем результат работы этой программы (выходные данные утилиты) через конвейер (pipe) другой программе (на вход другой утилите для обработки ею).

Выполним прожиг готового iso-образа прямо с ftp-сервера, не загружая сам файл на локальную машину:

$ curl http://remote-ftp.rem/linux-distro-image.iso | cdrecord -v speed=12 dev=/dev/scd1 fs=8 -data -

Стоить заметить, что в данном случае необходим хороший канал связи с этим ftp-сервером. Иначе мы рискуем выполнить запись с ошибками, что равносильно потере болванки.

И последний "трюк".

Имеем подключение к удаленной машине по протоколу ssh.

На локальном компьютере есть файлы для записи, а на удаленном - CD-привод. Выполним прожиг этих локальных данных на удаленной машине:

$ mkisofs -r /path/to/files | \ ssh user@remote.machine "cdrecord -v speed=12 dev=/dev/sdc1 fs=8 -data -"

Немного расшифруем эту запись. Вначале мы упаковываем файлы на локальном компьюторе с помощью утилиты mkisofs. Затем эта утилита от имени пользователя user на удаленном компьютере запускает на выполнение утилиту cdrecord и передает ей преобразованные файлы для записи.