Создание, монтирование и работа с iso образами в Linux Ubuntu. Работа с DVD-R\RW, CD-R\RW (запись, очистка) — в консоли
Всем хорошо известно, что в 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: Создание образа с диска или локальной папки.
Так уж получилось, что в 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-символов. Часто бывает полезно.
Создание образа из папки
Создать образ из папки можно, выполнив следующую команду.
1 | genisoimage -iso-level 4 -J -o yourname.iso /home/alex/doom3 |
где,
- iso-level 4 указывает не накладывать ограничения на длину имени файла и вложенность директорий.
- o задаёт имя конечного образа.
- J указывает использовать Joliet-расширения (если диск будет использоваться на ОС Windows).
- yourname.iso /home/alex/doom3 задаёт папку, которая будет рекурсивно включена в образ.
Можно поступить и проще, выполнив команду
1 | genisoimage -o name_of_obraz.iso name_of_katalog |
Для того чтобы смонтировать файл нам нужно выбрать точку монтирования, например /media/iso/file_name/
1 | mount -t iso9660 -o loop my.iso/media/iso/file_name/ |
Но прежде, создаем точку монтирования:
1 | mkdir /media/iso/file_name |
Производим монтирования iso файла:
1 | mount -o loop -t iso9660 iso_file.iso /media/iso/file_name/ |
где
iso_file.iso – это наш образ;
/media/iso/file_name/ – точка монтирования;
теперь чтобы просмотреть файлы которые содержались в образе, нужно перейти в точку монтирования:
1 | cd /media/iso/file_name |
и выполнить команду
1 | ls -la |
Чтобы образ монтировался автоматически при загрузке, добавьте следующую строку в /etc/fstab/
1 | my.iso /iso0 iso9660 rw,loop 0 0 |
Т.е. Сам процесс достаточно понятен и логичен. Создаем образ из необходимой нам папки, далее создаем точку монтирования (папку) после, монтируем образ и переходим в точку монтирования, где просматриваем содержимое образа.
Аналогичным способом выше описанному, является метод использования mkisofs
Не стоит забывать как и в первом случае, что если диск должен быть совместим с windows системами об этом надо позабоиться, включив в команду необходимые опции, а именно -r которая включает расширение RockRidge стандартной iso9660
1 | mkisofs -joliet-long -r -o disk.iso /home/alex/doom3 |
Образ будет сохранен в текущей директории.
Создание образа с носителя
Почему в заголовке, я написал создание образа «с носителя» а не с диска. Ответ прост, как не странно многие забывают, что образ это своего рода архив в котором целиком сохраняется структура файловой системы того носителя который был указан при создании самого образа, соответственно это может быть и диск и Flash-карта и много что еще.
Тут все просто, что-бы создать образ CD\DVD выполняем следующую команду.
1 | dd if=/dev/cdrom of=/media/my_iso/name.iso bs=2048 |
/dev/cdrom — наше устройство
/media/my_iso/name.iso — путь для сохранения образа.
loopback устройства в ядре должны быть включены.
Но об этом можно не париться, если конечно вы не сами собирали ядро.
Так же аналогичного результата можно добиться выполнив команду.
1 | cp /dev/cdrom /media/disk/my.iso |
Стоит отметить этот способ не очень надежен.
где /mnt/…/my.iso путь куда будет сделан образ.
не забудьте, что папка /media/disk/ уже должна существовать.
Для создания образа с диска, так же, можно поступить так.
Утилита и опции нам уже известны. Для создания образа с Flash-карты мы можем использовать все те же команды и опции. или же ЧАСТЬ 2: Запись\очистка оптических дисков в консоли. (CD-R\RW) Первым этапом копирования оптических дисков в консоли (как уже было сказано выше) является создания ISO-образа данных. Если в качестве источника выступает оптический носитель (не Audio CD), то достаточно выполнить команду: Система задумывается на какое-то время (это нормально, никаких внешних признаков вы не увидите), будет только гореть лампочка активности оптического привода и жесткого диска , что и говорит о том, что создается образ. Через 3-5 минут в текущей директории появиться новый файл test.iso, являющийся точной копией оптического диска в приводе /dev/cdrom. Если же исходные данные находятся на жестком диске (т.е. в директории или в нескольких), то необходимо собрать их все в одной папке. Например, в домашнем каталоге создаем папку burn и в нее перемещаем данные, необходимые для переноса на оптический носитель. Для создания ее образа необходимо в консоли набрать команду: В этом примере следующие обозначения: -o – имя создаваемого iso-файла (test.iso) Система вновь уходит в долгие раздумья, после чего создает новый файл folder_image.iso. Можно проверить, насколько корректно был создан образ. Для этого необходимо смонтировать наш ISO-файл, для этого создаем папку /media/iso_image/new и монтируем туда наш образ Зайдя в папку new, можно увидеть содержимое образа folder_image.iso. Этот же образ можно записать на оптический носитель. Но сперва нам необходимо узнать параметры вашего привода. Для этого можно воспользоваться командой: выводом команды будет что-то в роде: Выделенная жирным строка – это и есть наш привод, а цифры 0,0,0 – его адрес. Результаты работы данной команды будет необходимо использовать во время указания параметров ключа dev команды cdrecord. А именно адрес нашего оптического накопителя. Обозначения здесь следующие: -v – verbose-режим. Обозначает тоже, что и в предыдущем случае Параметр speed указывает скорость записи, -eject заставит привод выдвинуть лоток после окончания записи, fs определяет размер буфера FIFO, а -v указывает утилите выводить подробную информацию о ходе записи. Стоит сказать, что процесс можно полностью автоматизировать, написав скрипт, что будет сводить весь процесс к одному нажатию кнопки enter (о пути к файлу я молчу) Запись CD-RW дисков Через несколько секунд диск будет готов для записи. Опции Прямое копирование. Для прямого копирования содержимого с одного диска на другой можно Эта команда перенаправляет поток данных с привода CD-ROM (/dev/scd1) Новые параметры Создание мультисессийного диска Диски создаются сессиями, а сами сессии деляться на треки. Структура одной сессии такова: вводная часть, содержание сессии(TOC — Table Of Contents), непосредственно данные, и закрывающая часть, которая делает Так создается первая сессия на диске. Опция -multi позволяет сделать диск открытым для добавления других сессий, оставляя диск читаемым. Для того, чтобы добавить еще одну сессию, программе mkisofs необходимо знать номера начального и конечного секторов диска. Узнать это можно следующим образом: Результат будет правильным, только в том случае, если диск записан с возможностью добавления данных. Теперь к уже известным параметрам программы mkisofs, рассмотренным ранее, добавим еще два – -C и -M Можно так же эту команду объединить с предыдущей. В итоге, получим следующее: Теперь привод считает информацию о последней записанной сессии и объединит ее содержание с содержанием новой сессии. Предполагается, что последняя сессия записана с опцией -multi Запись DVD-R/RW Запись DVD-/+R дисков для DVD+R или DVD-R Эта же команда может использоваться с опцией speed Для записи образа используем В процессе записи будет постоянно выводиться вся полезная информация о ходе записи. Надо отметить, что сам процесс весьма ресурсоемкий, так что могут наблюдаться торможения. Запись DVD-/+RW дисков Теперь диск готов, что-бы записать на него данные Пару слов Viewed 4803 times by 3109 viewers 1
mkisofs -R -J -o image_name.iso /dev/cdrom
Например выполнив вот эту команду, вы получите образ флэшки1
cp /dev/sdb1 /home/booch/new/my.iso
1
sudo dd if=/dev/sdb1 of=/home/booch/new/image1.iso
Сама процедура делиться на два этапа, на первом этапе мы создаем образ с помощью mkisofs, на втором записываем этот образ на диск используя программу cdrecord. Все просто и понятно. Я опишу полностью весь процесс, от начала до конца.
И так, поехали…1
dd if=/dev/cdrom of=test.iso
1
mkisofs -o test.iso -Jrv -V test_disk /home/booch/burn
-J – используем записи Joliet для совместимости с системой Windows
-r – Rock Ridge расширение для совсестимости с *nix
-v – так называемый verbose-режим. В этом случае в процессе создания
образа будет выводиться различная дополнительная информация
-V – указываем имя тома (test_disk); Это имя будет отображаться при
просмотре в Windows1
mount -t iso9660 -o loop test.iso /media/iso_image/new
1
cdrecord -scanbus1
2
3
4
5
6
7
8
9
10
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) *
Для записи оптического диска наберите команду:1
cdrecord -v -eject dev=ATAPI:0,0,0 speed=40 fs=16M folder_image.iso
-eject – выдвигает лоток привода после окончания процесса записи
-speed – указываем скорость записи диска. В нашем случае — 48х
-dev – записывающее устройство. Числа взяты из вывода программы cdrecord с параметром scanbus
Опции speed в качестве параметра так же можно передать ноль, speed=0 в таком случае программа сама выберет оптимальную скорость для записи диска, это конечно если вы не хотите указывать ее в ручную или вам это просто не нужно.
Еще один интересный момент, это то, что все необходимые вам параметры можно занести в конфиг /etc/cdrecord/cdrecord и в будущем просто забыть о них.
В данном случае, есть несколько вариантов, диск может уже содержать данные, и нам либо надо дописать новые на диск, либо удалить старые и записать все по новой.
Очистка диска может проводить как быстрая так полная. Быстрая выполняется командой:1
cdrecord -v blank=fast dev=ATAPI:0,0,0
blank=all – очистить весь диск
blank=disc – то же самое
blank=fast – быстрая очистка диска
blank=session – очистить последнюю сессию
blank=unclose – открыть последнюю записанную сессию
воспользоваться командой:1
cdrecord -v dev=0,0,0 speed=4 -isosize /dev/scd1
на записывающий привод, dev=0,0,0. Прямое копирование достаточно
удобная процедура, однако в случае возникновения ошибок вы можете
испортить болванку. Для избежания печальных последствий лучше вначале
сделать образ CD-ROM’a и сохранить его на жестком диске и лишь потом
уже писать на болванку. Эта процедура будет иметь следующий вид:1
2
3
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 позволяет протестировать привод прежде чем приступить непосредственно к записи данных.
невозможным дальнейшее добавление данных на диск. Используя режим мультисессии несколько сессий можно объединить, слинковав их содержания. Создание многосессионых дисков очень просто с помощью графических программ, таких как X-CD-Roast или K3b. Но такая же процедура выполняется не намного сложнее и в консоли.
Пример:1
cdrecord -v -eject speed=48 dev=0,0,0 -multi test.iso
1
2
cdrecord dev=0,0,0 -msinfo
0,27139
В результате, команда для создания iso-образа будет иметь следующий вид:1
mkisofs -o test2.iso -Jr -V Session2 -C 0,27139 -M 0,0,0 /path/to/files
1
mkisofs -o test2.iso -Jr -V Session2 -C `cdrecord dev=0,0,0 -msinfo` -M 0,0,0 /files/path/
Для этого необходим пакеты dvd+rw-tools, которые содержаться практически в любом современном дистрибутиве и включают в себя программы для записи и форматирования DVD-дисков. Для выполнение записи мы будем использовать утилиту growisofs, а так же dvd+rw-format для очистки DVD+RW. Запись DVD не намного отличается от записи CD-болванок. В этом легко убедиться.
Для этого нам потребуется утилита growisofs, которая входит к комплект dvd+rw-toots.
Для записи используем команду1
growisofs -Z /dev/cdrom -R -J /home/alex/test_dir
1
growisofs -speed=8 -Z /dev/cdrom -R -J /home/alex/test_dir
1
growisofs -Z /dev/cdrom=image.iso
Очистить диск можно выполнив команду1
dvd+rw-format -f /dev/cdrom
1
growisofs -Z /dev/cdrom=image.iso
Что сказать, запомнить все это, включая все опции, операнды, команды и т.п. тяжело, но оно и не к чему, если конечно вы не работаете исключительно с серверами, да еще и удаленно, в таки случаях вам нужно знать намного больше описанного. Суть в том, что часто выполняемые задачи можно автоматизировать, или же запомнить необходимые команды, не так уж сложно, это важно, так как в таком случае вы не будете иметь не малейших проблем с качеством записи и проблемами ресурсов системы. К тому же умея использовать эти окманды, выполнять все операции с дисками и образами вы будете еще и быстрее нежели в GUI.
Приятной работы!
Комментариев нет
Комментариев нет.
RSS-лента комментариев к этой записи. TrackBack URI


