Linux Создание образов в Консоле: различия между версиями
imported>Vix Нет описания правки |
imported>Vix Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
''' | Всем хорошо известно, что в '''Linux''' самыми популярными и наиболее часто | ||
используемыми программами для записи дисков (и остальных связанных с этой темой | |||
операций) являются '''K3B''' и '''Brasero''', отчасти эту картину дополняет '''GnomeBaker''' и | |||
'''NeroLinux''', последняя кстати говоря является далеко не свободной или бесплатной. | |||
Безусловно, эти программы удобны, активно развиваются, например уже в '''Ubuntu | |||
9.04''' мы увидим новую версию Brasero, но что, если сложилась такая ситуация, | |||
когда использование '''GUI''' программ невозможно, например когда я работал с | |||
серверами, там никакого графического интерфейса и быть не могло, такая же | |||
ситуация может сложиться и дома, если вы используете свой старенький компьютер в | |||
качестве сервера для домашней сети, шлюза, '''PROXY''', или просто в качестве | |||
подопытной рабочей станции. Зачем такую машину перегружать графическим | |||
интерфейсвом, даже таким легким, как например '''Xface''', ведь '''Linux''' мы используем с | |||
той целью, что-бы не зависить от всяких буржуазных привычек. :-) В этой статье я | |||
расскажу как можно, совершенно разными способами выполнять любые операции с | |||
'''CD\DVD''' не используя '''GUI''' | |||
<br> | |||
'''Для удобства, я решил поделить всю статью на две части. А именно:''' | |||
'''Часть 1: Создание образа с диска или локальной папки.''' | |||
'''Часть 2: Запись\очистка CD\DVD''' | |||
'''СПРАВКА''' | |||
''* ISO-9660: Старый стандарт расположения данных, позволяющий | |||
использовать только стандарт 8.3 для имен файлов (т.е. 8 символов - | |||
имя файла и 3 — расширение).'' | |||
'''* Rock Ridge:''' ''Расширение ISO-9660, предполагающее использование | |||
длинных имен для файлов и UNIX-подобных ссылок. Позволяет сохранить | |||
все атрибуты файла, такие как владелец и права доступа. Атрибуты | |||
UNIX-файлов при чтении диска в Windows не отображаются.'' | |||
* | '''* Joliet:''' ''Расширение ISO-9660, разработанное Microsoft, которое | ||
позволяет использовать символы Unicode в именах файлов, так же как и | |||
использовать длинные имена файлов. Кроме того, Joliet предоставляет | |||
возможность создания урезанных имен для совместимости с MS-DOS, | |||
выглядящих наподобие FILENA~1.TXT. Позволяет использовать имена файлов | |||
длиной до 64 символов, включая пробелы.'' | |||
* [http://www.linuxspace.org/archives/923 | '''ЧАСТЬ 1:''' Создание образа с диска или локальной папки.\n | ||
Так уж получилось, что в Linux создать образ можно несколькими разными способами, например используя утилиты, которые есть в любой современной сборке, или же встроенные средства самой ОС. | |||
Утилита '''Genisoimage''' (другое название mkisofs входит в состав пакета утилит под названием '''cdrtools''') — Программа создания образа файловой системы для последующей записи на носитель. Утилита поддерживает расширенные форматы файловых систем для компакт дисков: Rock Ridge, Joliet, Blu-ray Disc и прочее. | |||
* Программы для записи компакт-дисков с графическим интерфейсом обычно неявно используют '''mkisofs'''. На основе mkisofs создан усовершенствованный пакет программ dvd+rw-tools, позволяющий дописывать перезаписываемые компакт-диски без необходимости создания образа диска. | |||
Позволяет создать такие типы образов как: | |||
* Загрузочные (boot). | |||
* С расширениями Rock Ridge. Эти расширения необходимы именно для ОС GNU\Linux, а точнее для работы с правами доступа пользователей. | |||
* С расширениями Joliet. Joliet-расширения не являются частью стандарта ISO9660. | |||
Эти расширения, в основном, используются в ОС Windows-подобных при записи дисков. Характерным для Joliet-расширений является: unicode-имена файлов и директорий, длина одного компонента пути может быть до 64 unicode-символов. Часто бывает полезно. | |||
Создание образа из папки | |||
Создать образ из папки можно, выполнив следующую команду. | |||
genisoimage -iso-level 4 -J -o yourname.iso /home/alex/doom3 | |||
где, | |||
- iso-level 4 указывает не накладывать ограничения на длину имени файла и вложенность директорий. | |||
- o задаёт имя конечного образа. | |||
- J указывает использовать Joliet-расширения (если диск будет использоваться на ОС Windows). | |||
- yourname.iso /home/alex/doom3 задаёт папку, которая будет рекурсивно включена в образ. | |||
Можно поступить и проще, выполнив команду | |||
genisoimage -o name_of_obraz.iso name_of_katalog | |||
Для того чтобы смонтировать файл нам нужно выбрать точку монтирования, например | |||
/media/iso/file_name/ | |||
mount -t iso9660 -o loop my.iso/media/iso/file_name/ | |||
Но прежде, создаем точку монтирования: | |||
mkdir /media/iso/file_name | |||
Производим монтирования iso файла: | |||
mount -o loop -t iso9660 iso_file.iso /media/iso/file_name/ | |||
где | |||
iso_file.iso — это наш образ; | |||
/media/iso/file_name/ — точка монтирования; | |||
теперь чтобы просмотреть файлы которые содержались в образе, нужно перейти в точку монтирования: | |||
cd /media/iso/file_name | |||
и выполнить команду | |||
ls -la | |||
Чтобы образ монтировался автоматически при загрузке, добавьте следующую строку в /etc/fstab/ | |||
my.iso /iso0 iso9660 rw,loop 0 0 | |||
Т.е. Сам процесс достаточно понятен и логичен. Создаем образ из необходимой нам папки, далее создаем точку монтирования (папку) после, монтируем образ и переходим в точку монтирования, где просматриваем содержимое образа. | |||
Аналогичным способом выше описанному, является метод использования mkisofs | |||
Не стоит забывать как и в первом случае, что если диск должен быть совместим с windows системами об этом надо позабоиться, включив в команду необходимые опции, а именно -r которая включает расширение RockRidge стандартной iso9660 | |||
mkisofs -joliet-long -r -o disk.iso /home/alex/doom3 | |||
Образ будет сохранен в текущей директории. | |||
Создание образа с носителя | |||
Почему в заголовке, я написал создание образа «с носителя» а не с диска. Ответ прост, как не странно многие забывают, что образ это своего рода архив в котором целиком сохраняется структура файловой системы того носителя который был указан при создании самого образа, соответственно это может быть и диск и Flash-карта и много что еще. | |||
Тут все просто, что-бы создать образ CD\DVD выполняем следующую команду. | |||
dd if=/dev/cdrom of=/media/my_iso/name.iso bs=2048 | |||
/dev/cdrom — наше устройство | |||
/media/my_iso/name.iso — путь для сохранения образа. | |||
loopback устройства в ядре должны быть включены. | |||
Но об этом можно не париться, если конечно вы не сами собирали ядро. | |||
Так же аналогичного результата можно добиться выполнив команду. | |||
cp /dev/cdrom /media/disk/my.iso | |||
Стоит отметить этот способ не очень надежен. | |||
где /mnt/…/my.iso путь куда будет сделан образ. | |||
не забудьте, что папка /media/disk/ уже должна существовать. | |||
Для создания образа с диска, так же, можно поступить так. | |||
mkisofs -R -J -o image_name.iso /dev/cdrom | |||
Утилита и опции нам уже известны. | |||
Для создания образа с Flash-карты мы можем использовать все те же команды и опции. | |||
Например выполнив вот эту команду, вы получите образ флэшки | |||
cp /dev/sdb1 /home/booch/new/my.iso | |||
или же | |||
sudo dd if=/dev/sdb1 of=/home/booch/new/image1.iso | |||
ЧАСТЬ 2: Запись\очистка оптических дисков в консоли. (CD-R\RW) | |||
Сама процедура делиться на два этапа, на первом этапе мы создаем образ с помощью mkisofs, на втором записываем этот образ на диск используя программу cdrecord. Все просто и понятно. Я опишу полностью весь процесс, от начала до конца. | |||
И так, поехали… | |||
Первым этапом копирования оптических дисков в консоли (как уже было сказано выше) является создания ISO-образа данных. Если в качестве источника выступает оптический носитель (не Audio CD), то достаточно выполнить команду: | |||
dd if=/dev/cdrom of=test.iso | |||
Система задумывается на какое-то время (это нормально, никаких внешних признаков вы не увидите), будет только гореть лампочка активности оптического привода и жесткого диска , что и говорит о том, что создается образ. Через 3-5 минут в текущей директории появиться новый файл test.iso, являющийся точной копией оптического диска в приводе /dev/cdrom. | |||
Если же исходные данные находятся на жестком диске (т.е. в директории или в нескольких), то необходимо собрать их все в одной папке. Например, в домашнем каталоге создаем папку burn и в нее перемещаем данные, необходимые для переноса на оптический носитель. Для создания ее образа необходимо в консоли набрать команду: | |||
mkisofs -o test.iso -Jrv -V test_disk /home/booch/burn | |||
В этом примере следующие обозначения: | |||
-o — имя создаваемого iso-файла (test.iso) | |||
-J — используем записи Joliet для совместимости с системой Windows | |||
-r — Rock Ridge расширение для совсестимости с *nix | |||
-v — так называемый verbose-режим. В этом случае в процессе создания | |||
образа будет выводиться различная дополнительная информация | |||
-V — указываем имя тома (test_disk); Это имя будет отображаться при | |||
просмотре в Windows | |||
Система вновь уходит в долгие раздумья, после чего создает новый файл folder_image.iso. Можно проверить, насколько корректно был создан образ. Для этого необходимо смонтировать наш ISO-файл, для этого создаем папку /media/iso_image/new и монтируем туда наш образ | |||
mount -t iso9660 -o loop test.iso /media/iso_image/new | |||
Зайдя в папку new, можно увидеть содержимое образа folder_image.iso. Этот же образ можно записать на оптический носитель. Но сперва нам необходимо узнать параметры вашего привода. Для этого можно воспользоваться командой: | |||
cdrecord -scanbus | |||
выводом команды будет что-то в роде: | |||
booch@alex:~/new$ cdrecord -scanbus | |||
scsibus0: | |||
0,0,0 0) 'PIONEER ' 'DVD+-RW DR-K17Y ' '0.95' Removable CD-ROM | |||
0,1,0 1) * | |||
0,2,0 2) * | |||
0,3,0 3) * | |||
0,4,0 4) * | |||
0,5,0 5) * | |||
0,6,0 6) * | |||
0,7,0 7) * | |||
Выделенная жирным строка — это и есть наш привод, а цифры 0,0,0 — его адрес. | |||
Результаты работы данной команды будет необходимо использовать во время указания параметров ключа dev команды cdrecord. А именно адрес нашего оптического накопителя. | |||
Для записи оптического диска наберите команду: | |||
cdrecord -v -eject dev=ATAPI:0,0,0 speed=40 fs=16M folder_image.iso | |||
Обозначения здесь следующие: | |||
-v — verbose-режим. Обозначает тоже, что и в предыдущем случае | |||
-eject — выдвигает лоток привода после окончания процесса записи | |||
-speed — указываем скорость записи диска. В нашем случае — 48х | |||
-dev — записывающее устройство. Числа взяты из вывода программы cdrecord с параметром scanbus | |||
Параметр speed указывает скорость записи, -eject заставит привод выдвинуть лоток после окончания записи, fs определяет размер буфера FIFO, а -v указывает утилите выводить подробную информацию о ходе записи. | |||
Опции speed в качестве параметра так же можно передать ноль, speed=0 в таком случае программа сама выберет оптимальную скорость для записи диска, это конечно если вы не хотите указывать ее в ручную или вам это просто не нужно. | |||
Стоит сказать, что процесс можно полностью автоматизировать, написав скрипт, что будет сводить весь процесс к одному нажатию кнопки enter (о пути к файлу я молчу) | |||
Еще один интересный момент, это то, что все необходимые вам параметры можно занести в конфиг /etc/cdrecord/cdrecord и в будущем просто забыть о них. | |||
Запись CD-RW дисков | |||
В данном случае, есть несколько вариантов, диск может уже содержать данные, и нам либо надо дописать новые на диск, либо удалить старые и записать все по новой. | |||
Очистка диска может проводить как быстрая так полная. Быстрая выполняется командой: | |||
cdrecord -v blank=fast dev=ATAPI:0,0,0 | |||
Через несколько секунд диск будет готов для записи. | |||
Oпции: | |||
blank=all — очистить весь диск | |||
blank=disc — то же самое | |||
blank=fast — быстрая очистка диска | |||
blank=session — очистить последнюю сессию | |||
blank=unclose — открыть последнюю записанную сессию | |||
Прямое копирование. | |||
Для прямого копирования содержимого с одного диска на другой можно | |||
воспользоваться командой: | |||
cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd1 | |||
Эта команда перенаправляет поток данных с привода CD-ROM (/dev/scd1) | |||
на записывающий привод, dev=0,0,0. Прямое копирование достаточно | |||
удобная процедура, однако в случае возникновения ошибок вы можете | |||
испортить болванку. Для избежания печальных последствий лучше вначале | |||
сделать образ CD-ROM’a и сохранить его на жестком диске и лишь потом | |||
уже писать на болванку. Эта процедура будет иметь следующий вид: | |||
mount /mnt/cdrom | |||
dd if=/dev/scd1 of=/tmp/diskfile.iso | |||
cdrecord dev=0,0,0 speed=48 fs=8m -v -eject -dummy /tmp/diskfile.iso | |||
Новые параметры | |||
fs=8m и -dummy | |||
отвечают за следующее. С помощью fs=8m мы указываем программе размер буфера, чем больше, тем лучше. Важно также, чтобы он не опустошался во время записи. Указанных 8 мегабайт в обычных условиях вполне | |||
достаточно для качественной записи диска даже на слабых машинах. Опция -dummy позволяет протестировать привод прежде чем приступить непосредственно к записи данных. | |||
Создание мультисессийного диска | |||
Диски создаются сессиями, а сами сессии деляться на треки. Структура одной сессии такова: вводная часть, содержание сессии(TOC — Table Of Contents), непосредственно данные, и закрывающая часть, которая делает невозможным дальнейшее добавление данных на диск. Используя режим мультисессии несколько сессий можно объединить, слинковав их содержания. Создание многосессионых дисков очень просто с помощью графических программ, таких как X-CD-Roast или K3b. Но такая же процедура выполняется не намного сложнее и в консоли. | |||
Пример: | |||
cdrecord -v -eject speed=48 dev=0,0,0 -multi test.iso | |||
Так создается первая сессия на диске. Опция -multi позволяет сделать диск открытым для добавления других сессий, оставляя диск читаемым. Для того, чтобы добавить еще одну сессию, программе mkisofs необходимо знать номера начального и конечного секторов диска. Узнать это можно следующим образом: | |||
cdrecord dev=0,0,0 -msinfo | |||
0,27139 | |||
Результат будет правильным, только в том случае, если диск записан с возможностью добавления данных. Теперь к уже известным параметрам программы mkisofs, рассмотренным ранее, добавим еще два — -C и -M | |||
В результате, команда для создания iso-образа будет иметь следующий вид: | |||
mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /path/to/files | |||
Можно так же эту команду объединить с предыдущей. В итоге, получим следующее: | |||
mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/ | |||
Теперь привод считает информацию о последней записанной сессии и объединит ее содержание с содержанием новой сессии. Предполагается, что последняя сессия записана с опцией -multi | |||
Запись DVD-R/RW | |||
Для этого необходим пакеты dvd+rw-tools, которые содержаться практически в любом современном дистрибутиве и включают в себя программы для записи и форматирования DVD-дисков. Для выполнение записи мы будем использовать утилиту growisofs, а так же dvd+rw-format для очистки DVD+RW. Запись DVD не намного отличается от записи CD-болванок. В этом легко убедиться. | |||
Запись DVD-/+R дисков | |||
Для этого нам потребуется утилита growisofs, которая входит к комплект dvd+rw-toots. | |||
Для записи используем команду | |||
growisofs -Z /dev/cdrom -R -J /home/alex/test_dir | |||
для DVD+R или DVD-R | |||
Эта же команда может использоваться с опцией speed | |||
growisofs -speed=8 -Z /dev/cdrom -R -J /home/alex/test_dir | |||
Для записи образа используем | |||
growisofs -Z /dev/cdrom=image.iso | |||
В процессе записи будет постоянно выводиться вся полезная информация о ходе записи. Надо отметить, что сам процесс весьма ресурсоемкий, так что могут наблюдаться торможения. | |||
Запись DVD-/+RW дисков | |||
Очистить диск можно выполнив команду | |||
dvd+rw-format -f /dev/cdrom | |||
Теперь диск готов, что-бы записать на него данные | |||
growisofs -Z /dev/cdrom=image.iso | |||
Пару слов | |||
Что сказать, запомнить все это, включая все опции, операнды, команды и т.п. тяжело, но оно и не к чему, если конечно вы не работаете исключительно с серверами, да еще и удаленно, в таки случаях вам нужно знать намного больше описанного. Суть в том, что часто выполняемые задачи можно автоматизировать, или же запомнить необходимые команды, не так уж сложно, это важно, так как в таком случае вы не будете иметь не малейших проблем с качеством записи и проблемами ресурсов системы. К тому же умея использовать эти окманды, выполнять все операции с дисками и образами вы будете еще и быстрее нежели в GUI. | |||
Приятной работы! | |||
* [http://www.linuxspace.org/archives/923 источник] |
Текущая версия от 00:30, 2 сентября 2013
Всем хорошо известно, что в Linux самыми популярными и наиболее часто
используемыми программами для записи дисков (и остальных связанных с этой темой
операций) являются K3B и Brasero, отчасти эту картину дополняет GnomeBaker и
NeroLinux, последняя кстати говоря является далеко не свободной или бесплатной.
Безусловно, эти программы удобны, активно развиваются, например уже в Ubuntu
9.04 мы увидим новую версию Brasero, но что, если сложилась такая ситуация,
когда использование GUI программ невозможно, например когда я работал с
серверами, там никакого графического интерфейса и быть не могло, такая же
ситуация может сложиться и дома, если вы используете свой старенький компьютер в
качестве сервера для домашней сети, шлюза, PROXY, или просто в качестве
подопытной рабочей станции. Зачем такую машину перегружать графическим
интерфейсвом, даже таким легким, как например Xface, ведь Linux мы используем с
той целью, что-бы не зависить от всяких буржуазных привычек. :-) В этой статье я
расскажу как можно, совершенно разными способами выполнять любые операции с
CD\DVD не используя GUI
Для удобства, я решил поделить всю статью на две части. А именно:
Часть 1: Создание образа с диска или локальной папки.
Часть 2: Запись\очистка CD\DVD
СПРАВКА
* ISO-9660: Старый стандарт расположения данных, позволяющий использовать только стандарт 8.3 для имен файлов (т.е. 8 символов - имя файла и 3 — расширение).
* Rock Ridge: Расширение ISO-9660, предполагающее использование длинных имен для файлов и UNIX-подобных ссылок. Позволяет сохранить все атрибуты файла, такие как владелец и права доступа. Атрибуты UNIX-файлов при чтении диска в Windows не отображаются.
* Joliet: Расширение ISO-9660, разработанное Microsoft, которое позволяет использовать символы Unicode в именах файлов, так же как и использовать длинные имена файлов. Кроме того, Joliet предоставляет возможность создания урезанных имен для совместимости с MS-DOS, выглядящих наподобие FILENA~1.TXT. Позволяет использовать имена файлов длиной до 64 символов, включая пробелы.
ЧАСТЬ 1: Создание образа с диска или локальной папки.\n Так уж получилось, что в Linux создать образ можно несколькими разными способами, например используя утилиты, которые есть в любой современной сборке, или же встроенные средства самой ОС.
Утилита Genisoimage (другое название mkisofs входит в состав пакета утилит под названием cdrtools) — Программа создания образа файловой системы для последующей записи на носитель. Утилита поддерживает расширенные форматы файловых систем для компакт дисков: Rock Ridge, Joliet, Blu-ray Disc и прочее.
- Программы для записи компакт-дисков с графическим интерфейсом обычно неявно используют mkisofs. На основе mkisofs создан усовершенствованный пакет программ dvd+rw-tools, позволяющий дописывать перезаписываемые компакт-диски без необходимости создания образа диска.
Позволяет создать такие типы образов как:
- Загрузочные (boot).
- С расширениями Rock Ridge. Эти расширения необходимы именно для ОС GNU\Linux, а точнее для работы с правами доступа пользователей.
- С расширениями Joliet. Joliet-расширения не являются частью стандарта ISO9660.
Эти расширения, в основном, используются в ОС Windows-подобных при записи дисков. Характерным для Joliet-расширений является: unicode-имена файлов и директорий, длина одного компонента пути может быть до 64 unicode-символов. Часто бывает полезно.
Создание образа из папки Создать образ из папки можно, выполнив следующую команду.
genisoimage -iso-level 4 -J -o yourname.iso /home/alex/doom3
где, - iso-level 4 указывает не накладывать ограничения на длину имени файла и вложенность директорий. - o задаёт имя конечного образа. - J указывает использовать Joliet-расширения (если диск будет использоваться на ОС Windows). - yourname.iso /home/alex/doom3 задаёт папку, которая будет рекурсивно включена в образ.
Можно поступить и проще, выполнив команду
genisoimage -o name_of_obraz.iso name_of_katalog
Для того чтобы смонтировать файл нам нужно выбрать точку монтирования, например
/media/iso/file_name/
mount -t iso9660 -o loop my.iso/media/iso/file_name/
Но прежде, создаем точку монтирования:
mkdir /media/iso/file_name
Производим монтирования iso файла:
mount -o loop -t iso9660 iso_file.iso /media/iso/file_name/
где iso_file.iso — это наш образ; /media/iso/file_name/ — точка монтирования;
теперь чтобы просмотреть файлы которые содержались в образе, нужно перейти в точку монтирования:
cd /media/iso/file_name
и выполнить команду
ls -la
Чтобы образ монтировался автоматически при загрузке, добавьте следующую строку в /etc/fstab/
my.iso /iso0 iso9660 rw,loop 0 0
Т.е. Сам процесс достаточно понятен и логичен. Создаем образ из необходимой нам папки, далее создаем точку монтирования (папку) после, монтируем образ и переходим в точку монтирования, где просматриваем содержимое образа.
Аналогичным способом выше описанному, является метод использования mkisofs Не стоит забывать как и в первом случае, что если диск должен быть совместим с windows системами об этом надо позабоиться, включив в команду необходимые опции, а именно -r которая включает расширение RockRidge стандартной iso9660
mkisofs -joliet-long -r -o disk.iso /home/alex/doom3
Образ будет сохранен в текущей директории.
Создание образа с носителя Почему в заголовке, я написал создание образа «с носителя» а не с диска. Ответ прост, как не странно многие забывают, что образ это своего рода архив в котором целиком сохраняется структура файловой системы того носителя который был указан при создании самого образа, соответственно это может быть и диск и Flash-карта и много что еще.
Тут все просто, что-бы создать образ CD\DVD выполняем следующую команду.
dd if=/dev/cdrom of=/media/my_iso/name.iso bs=2048
/dev/cdrom — наше устройство /media/my_iso/name.iso — путь для сохранения образа. loopback устройства в ядре должны быть включены. Но об этом можно не париться, если конечно вы не сами собирали ядро.
Так же аналогичного результата можно добиться выполнив команду.
cp /dev/cdrom /media/disk/my.iso
Стоит отметить этот способ не очень надежен. где /mnt/…/my.iso путь куда будет сделан образ. не забудьте, что папка /media/disk/ уже должна существовать.
Для создания образа с диска, так же, можно поступить так.
mkisofs -R -J -o image_name.iso /dev/cdrom
Утилита и опции нам уже известны.
Для создания образа с Flash-карты мы можем использовать все те же команды и опции. Например выполнив вот эту команду, вы получите образ флэшки
cp /dev/sdb1 /home/booch/new/my.iso
или же
sudo dd if=/dev/sdb1 of=/home/booch/new/image1.iso
ЧАСТЬ 2: Запись\очистка оптических дисков в консоли. (CD-R\RW) Сама процедура делиться на два этапа, на первом этапе мы создаем образ с помощью mkisofs, на втором записываем этот образ на диск используя программу cdrecord. Все просто и понятно. Я опишу полностью весь процесс, от начала до конца. И так, поехали…
Первым этапом копирования оптических дисков в консоли (как уже было сказано выше) является создания ISO-образа данных. Если в качестве источника выступает оптический носитель (не Audio CD), то достаточно выполнить команду:
dd if=/dev/cdrom of=test.iso
Система задумывается на какое-то время (это нормально, никаких внешних признаков вы не увидите), будет только гореть лампочка активности оптического привода и жесткого диска , что и говорит о том, что создается образ. Через 3-5 минут в текущей директории появиться новый файл test.iso, являющийся точной копией оптического диска в приводе /dev/cdrom.
Если же исходные данные находятся на жестком диске (т.е. в директории или в нескольких), то необходимо собрать их все в одной папке. Например, в домашнем каталоге создаем папку burn и в нее перемещаем данные, необходимые для переноса на оптический носитель. Для создания ее образа необходимо в консоли набрать команду:
mkisofs -o test.iso -Jrv -V test_disk /home/booch/burn
В этом примере следующие обозначения:
-o — имя создаваемого iso-файла (test.iso) -J — используем записи Joliet для совместимости с системой Windows -r — Rock Ridge расширение для совсестимости с *nix -v — так называемый verbose-режим. В этом случае в процессе создания образа будет выводиться различная дополнительная информация -V — указываем имя тома (test_disk); Это имя будет отображаться при просмотре в Windows
Система вновь уходит в долгие раздумья, после чего создает новый файл folder_image.iso. Можно проверить, насколько корректно был создан образ. Для этого необходимо смонтировать наш ISO-файл, для этого создаем папку /media/iso_image/new и монтируем туда наш образ
mount -t iso9660 -o loop test.iso /media/iso_image/new
Зайдя в папку new, можно увидеть содержимое образа folder_image.iso. Этот же образ можно записать на оптический носитель. Но сперва нам необходимо узнать параметры вашего привода. Для этого можно воспользоваться командой:
cdrecord -scanbus
выводом команды будет что-то в роде:
booch@alex:~/new$ cdrecord -scanbus scsibus0: 0,0,0 0) 'PIONEER ' 'DVD+-RW DR-K17Y ' '0.95' Removable CD-ROM 0,1,0 1) * 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) *
Выделенная жирным строка — это и есть наш привод, а цифры 0,0,0 — его адрес.
Результаты работы данной команды будет необходимо использовать во время указания параметров ключа dev команды cdrecord. А именно адрес нашего оптического накопителя. Для записи оптического диска наберите команду:
cdrecord -v -eject dev=ATAPI:0,0,0 speed=40 fs=16M folder_image.iso
Обозначения здесь следующие: -v — verbose-режим. Обозначает тоже, что и в предыдущем случае -eject — выдвигает лоток привода после окончания процесса записи -speed — указываем скорость записи диска. В нашем случае — 48х -dev — записывающее устройство. Числа взяты из вывода программы cdrecord с параметром scanbus
Параметр speed указывает скорость записи, -eject заставит привод выдвинуть лоток после окончания записи, fs определяет размер буфера FIFO, а -v указывает утилите выводить подробную информацию о ходе записи.
Опции speed в качестве параметра так же можно передать ноль, speed=0 в таком случае программа сама выберет оптимальную скорость для записи диска, это конечно если вы не хотите указывать ее в ручную или вам это просто не нужно.
Стоит сказать, что процесс можно полностью автоматизировать, написав скрипт, что будет сводить весь процесс к одному нажатию кнопки enter (о пути к файлу я молчу) Еще один интересный момент, это то, что все необходимые вам параметры можно занести в конфиг /etc/cdrecord/cdrecord и в будущем просто забыть о них.
Запись CD-RW дисков В данном случае, есть несколько вариантов, диск может уже содержать данные, и нам либо надо дописать новые на диск, либо удалить старые и записать все по новой. Очистка диска может проводить как быстрая так полная. Быстрая выполняется командой:
cdrecord -v blank=fast dev=ATAPI:0,0,0
Через несколько секунд диск будет готов для записи. Oпции: blank=all — очистить весь диск blank=disc — то же самое blank=fast — быстрая очистка диска blank=session — очистить последнюю сессию blank=unclose — открыть последнюю записанную сессию
Прямое копирование.
Для прямого копирования содержимого с одного диска на другой можно воспользоваться командой:
cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd1
Эта команда перенаправляет поток данных с привода CD-ROM (/dev/scd1) на записывающий привод, dev=0,0,0. Прямое копирование достаточно удобная процедура, однако в случае возникновения ошибок вы можете испортить болванку. Для избежания печальных последствий лучше вначале сделать образ CD-ROM’a и сохранить его на жестком диске и лишь потом уже писать на болванку. Эта процедура будет иметь следующий вид:
mount /mnt/cdrom dd if=/dev/scd1 of=/tmp/diskfile.iso cdrecord dev=0,0,0 speed=48 fs=8m -v -eject -dummy /tmp/diskfile.iso
Новые параметры
fs=8m и -dummy
отвечают за следующее. С помощью fs=8m мы указываем программе размер буфера, чем больше, тем лучше. Важно также, чтобы он не опустошался во время записи. Указанных 8 мегабайт в обычных условиях вполне достаточно для качественной записи диска даже на слабых машинах. Опция -dummy позволяет протестировать привод прежде чем приступить непосредственно к записи данных.
Создание мультисессийного диска Диски создаются сессиями, а сами сессии деляться на треки. Структура одной сессии такова: вводная часть, содержание сессии(TOC — Table Of Contents), непосредственно данные, и закрывающая часть, которая делает невозможным дальнейшее добавление данных на диск. Используя режим мультисессии несколько сессий можно объединить, слинковав их содержания. Создание многосессионых дисков очень просто с помощью графических программ, таких как X-CD-Roast или K3b. Но такая же процедура выполняется не намного сложнее и в консоли.
Пример:
cdrecord -v -eject speed=48 dev=0,0,0 -multi test.iso
Так создается первая сессия на диске. Опция -multi позволяет сделать диск открытым для добавления других сессий, оставляя диск читаемым. Для того, чтобы добавить еще одну сессию, программе mkisofs необходимо знать номера начального и конечного секторов диска. Узнать это можно следующим образом:
cdrecord dev=0,0,0 -msinfo 0,27139
Результат будет правильным, только в том случае, если диск записан с возможностью добавления данных. Теперь к уже известным параметрам программы mkisofs, рассмотренным ранее, добавим еще два — -C и -M
В результате, команда для создания iso-образа будет иметь следующий вид:
mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /path/to/files
Можно так же эту команду объединить с предыдущей. В итоге, получим следующее:
mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/
Теперь привод считает информацию о последней записанной сессии и объединит ее содержание с содержанием новой сессии. Предполагается, что последняя сессия записана с опцией -multi
Запись DVD-R/RW Для этого необходим пакеты dvd+rw-tools, которые содержаться практически в любом современном дистрибутиве и включают в себя программы для записи и форматирования DVD-дисков. Для выполнение записи мы будем использовать утилиту growisofs, а так же dvd+rw-format для очистки DVD+RW. Запись DVD не намного отличается от записи CD-болванок. В этом легко убедиться.
Запись DVD-/+R дисков Для этого нам потребуется утилита growisofs, которая входит к комплект dvd+rw-toots. Для записи используем команду
growisofs -Z /dev/cdrom -R -J /home/alex/test_dir
для DVD+R или DVD-R Эта же команда может использоваться с опцией speed
growisofs -speed=8 -Z /dev/cdrom -R -J /home/alex/test_dir
Для записи образа используем
growisofs -Z /dev/cdrom=image.iso
В процессе записи будет постоянно выводиться вся полезная информация о ходе записи. Надо отметить, что сам процесс весьма ресурсоемкий, так что могут наблюдаться торможения.
Запись DVD-/+RW дисков Очистить диск можно выполнив команду
dvd+rw-format -f /dev/cdrom
Теперь диск готов, что-бы записать на него данные
growisofs -Z /dev/cdrom=image.iso
Пару слов Что сказать, запомнить все это, включая все опции, операнды, команды и т.п. тяжело, но оно и не к чему, если конечно вы не работаете исключительно с серверами, да еще и удаленно, в таки случаях вам нужно знать намного больше описанного. Суть в том, что часто выполняемые задачи можно автоматизировать, или же запомнить необходимые команды, не так уж сложно, это важно, так как в таком случае вы не будете иметь не малейших проблем с качеством записи и проблемами ресурсов системы. К тому же умея использовать эти окманды, выполнять все операции с дисками и образами вы будете еще и быстрее нежели в GUI. Приятной работы!