Linux Создание образов в Консоле: различия между версиями

Материал из support.qbpro.ru
imported>Vix
(Новая страница: «'''ISO-образ''' - это, традиционно, один из видов цифровых копий данных оптических дисков, и в …»)
 
imported>Vix
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 1: Строка 1:
'''ISO-образ''' - это, традиционно, один из видов цифровых копий данных оптических дисков, и в первую очередь он необходим для создания и копирования CD и DVD. Так же, использование такого формата файла допустимо и копии жесткого диска, или одного из его разделов.
Всем хорошо известно, что в '''Linux''' самыми популярными и наиболее часто
используемыми программами для записи дисков (и остальных связанных с этой темой
операций) являются '''K3B''' и '''Brasero''', отчасти эту картину дополняет '''GnomeBaker''' и
'''NeroLinux''', последняя кстати говоря является далеко не свободной или бесплатной.
Безусловно, эти программы удобны, активно развиваются, например уже в '''Ubuntu
9.04''' мы увидим новую версию Brasero, но что, если сложилась такая ситуация,
когда использование '''GUI''' программ невозможно, например когда я работал с
серверами, там никакого графического интерфейса и быть не могло, такая же
ситуация может сложиться и дома, если вы используете свой старенький компьютер в
качестве сервера для домашней сети, шлюза, '''PROXY''', или просто в качестве
подопытной рабочей станции. Зачем такую машину перегружать графическим
интерфейсвом, даже таким легким, как например '''Xface''', ведь '''Linux''' мы используем с
той целью, что-бы не зависить от всяких буржуазных привычек. :-) В этой статье я
расскажу как можно, совершенно разными способами выполнять любые операции с
'''CD\DVD''' не используя '''GUI'''
<br>


Создать '''ISO-образ''', из локальных файлов или извлечением с другого носителя, в консоли можно программами genisoimage и dd, соответственно. Для работы в более удобном графическом окружении можно использовать Brasero или K3b (для Gnome и KDE, соотвественно): создайте в любой из них необходимый Вам проект и запишите его в образ ISO (без использования оптических дисков).
'''Для удобства, я решил поделить всю статью на две части. А именно:'''


Программа '''dd''' копирует побайтовую последовательность содержимого любого файла, включая файлы устройств Linux: т.е. при помощи dd Вы можете извлечь содержимое любого носителя данных (программа dd, однако, не считывает технических данных оптического диска, записанных, например. для защиты от копирования). Для извлечения образа ISO с оптического компакт диска (как и любого другого накопителя), выполните в консоли, заменив необходимыми адрес устройства и имя ISO-образа (например, "/dev/sda" и т.п.), следующую команду:
'''Часть 1: Создание образа с диска или локальной папки.'''
dd if=/dev/cdrom of=cdrom.iso


Программа '''genisoimage''' способна создавать образы ISO из указанных Вами частей файловой системы. Например, выполните в консоли команду:
'''Часть 2: Запись\очистка CD\DVD'''


genisoimage -J -o cd.iso ~/disk
'''СПРАВКА'''


Параметр "-J" сообщает программе о необходимости создания ISO-образа в формате Joliet (с поддержкой длинных адресов и имен файлов). Вместо него Вы так же можете использовать параметр "-udf" для использования UDF, соответственно (критично для DVD, и DVD-видео, особенно).
''* ISO-9660: Старый стандарт расположения данных, позволяющий
использовать только стандарт 8.3 для имен файлов (т.е. 8 символов -
имя файла и 3 — расширение).''


Для обзора списка всех многочисленных опций работы программы '''genisoimage''' наберите в консоли "'''genisoimage --help'''" или "'''man genisoimage'''".
'''* 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.
Приятной работы!
 
* [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. Приятной работы!