CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Как пингвины пишут диски

mchno mchno@ukrpost.net

Я надеюсь, вы уже повелись на описании какого-нибудь дистрибутива Linux в «Моем Компьютере» и установили его у себя на машине. Несколько дней в новую ОС можно просто повтыкать, но потом неплохо бы начать что-то в ней делать. А начнем мы, пожалуй, с записи CD-R(W).

Несколько слов о пишущих девайсах

В принципе, под Линуксом будет работать любой пишущий девайс. Если он у вас древний, проблемы могут возникнуть разве что с распознаванием древнего же SCSI-адаптера, если новый — проблем не должно быть вообще. А если совсем новый, то есть появился уже после установки Линукса, вам сначала нужно будет сделать несколько несложных пассов.

Современные писалки с точки зрения интерфейса подключения к компьютеру представляют собой IDE/ATAPI, хотя Linux в силу неких загадочных обстоятельств определяет его как SCSI — об этом нужно сообщить ядру. Пусть писалка, для примера, будет secondary master, или, как говорят пингвины, hdc (кстати, если вы только не любитель портить болванки, никогда не ставьте писалку slave'ом). Если писалка взята у друга на ночь, можно передать ядру параметр hdc=ide-scsi прямо в командной строке загрузки. Если же этот замечательный девайс у вас поселяется, стоит поправить конфингурационный файл загрузчика. Предположим, вы используете LILO. Открываем файл /etc/lilo.conf в любимом текстовом процессоре и смотрим на пункты, относящиеся к Линуксу. В них либо есть строчка типа append=" что-то там", либо нет. Если нет — добавляем ее:

а если есть, просто добавляем туда параметр hdc=ide-scsi, сохраняем файл, говорим в командной строке: lilo — и готово. После перезагрузки файл устройства /dev/cdrom будет ссылкой уже не на /dev/hdc, а на /dev/scd0.

Если писалка покидает ваш компьютер и на ее месте будет трудиться обычный сидюк, нужно обязательно удалить параметр hdc=ide-scsi из конфигурационных файлов загрузчика, иначе при первой же попытке смонтировать сидюк будет как в поговорке: семь бед — один Reset.

Как это бывает у пингвинов

Две наиболее стандартные, они же самые замечательные, утилиты для записи дисков в Линуксе — это mkisofs и cdrecord (между прочим, портированные и под Винду тоже). Для записи аудиодисков бывает еще cdrdao. Естественно, все они консольные, а графические проги, которые вам встретятся, почти наверняка окажутся фронт-эндами к ним (а также, возможно, граберам, mp3- и не только кодекам и т. д.) Графические тулзы я обозрею в другой раз, а сейчас расскажу вам такое, после чего уже ни одна подобная софтина вам не будет страшна :-). Зная принципы работы mkisofs и cdrecord, вы не только сможете разобраться в настройках любой графической программы (без которых она не побежит), но, вполне возможно, сочините когда-нибудь скрипт, который автоматизирует эти процедуры раз и навсегда.

Диски с данными в Линуксе жарятся в два этапа: сначала создается образ диска или сессии (ISO-image), затем этот образ записывается на болванку. С аудиодисками проще — образ делать не нужно, но о них в следующий раз.

Кстати говоря, в дистрибутивах эпохи ядер 2.2.x время от времени встречалась утилитка cdwrite для записи дисков. Не пользуйтесь ей ни в коем случае! Редкостнейшее глюкало.

Создаем образ диска

Проще всего, если вам нужна копия уже существующего диска. Тогда образ диска создается одной командой. Вставляем диск, который нужно скопировать, говорим:

и готово. Чаще, однако, диск нужно соорудить из какого-то набора ваших данных. Для простоты будем считать, что все эти данные уже упорядочены и собраны в одной директории — например, my_trash, а диск мы будем делать не многосессионный. Что ж, приступим.

Для создания образа диска используется утилита mkisofs. Образ — это файловая система сидюка, которая называется ISO9660, вместе с ее содержимым. В минимальном варианте команда создания образа будет выглядеть так:

Первый аргумент команды (-o isoimage.iso) задает имя образа, без него команда работать не будет. С точки зрения UNIX-систем вообще-то абсолютно все равно, как называется образ, однако по некоторым причинам я рекомендую всегда прибавлять к имени расширение .iso. Если, например, файл образа попадает на виндовую машину, запустить процесс записи можно будет всего лишь двойным кликом по его имени. Да и в UNIX-системе никто не мешает определить iso-файлы как еще один MIME-тип, чтобы система реагировала на них какими-то стандартными действиями.

Если данные, из которых делается образ диска, находятся не в одной директории, а в нескольких, эти директории просто перечисляются через пробел:

На практике файловая система ISO9660 в чистом виде — тот еще кошмарик: для совместимости с DOS имена в ней имеют формат 8.3 и пишутся в верхнем регистре. Чтобы обойти такие ограничения, используются различные расширения ISO9660, а у mkisofs — соответствующие опции командной строки.

Во-первых, это Joliet, расширение, привычное нам по работе на Windows-машинах. Это расширение обеспечивает длину имен файлов и директорий до 64 символов (если имя еще длиннее, при создании образа все символы за 64-м обрезаются). Включается это расширение опцией -J (регистр, как всегда в Юниксах, имеет значение). Рекомендую включать, если, конечно, вы не хотите, чтобы под виндами имена файлов на диске были в формате 8.3.

Во-вторых, замечательная программка mkisofs горазда создавать диски для Макинтошей — с расширениями Apple и с маковской файловой системой HFS. Прямо сейчас у меня нет под рукой Мака, поэтому о создании дисков для него я думаю рассказать в следующий раз, как и о создании загрузочных дисков.

Куда интереснее для юниксоида третье юниксовое расширение ISO9660, которое называется Rock Ridge. Это расширение позволяет сохранять на диске информацию о длинных юниксовых именах файлов (до 255 символов), владельце файлов и правах доступа, а также включать в файловую систему диска ссылки (как жесткие, так и символьные).

Rock Ridge может включаться опциями -R или -r. Во втором случае идентификаторы владельца и группы для всех файлов присваиваются равными нулю (идентификатор суперпользователя), поскольку, как правило, идентификаторы остальных пользователей будут работать только на той машине, на которой создается диск. Впрочем, идентификаторы пользователя и группы можно указать какие угодно с помощью дополнительных опций -uid номер и -gid номер.

Что касается символьных ссылок, возможны два варианта. По умолчанию символьные ссылки прибывают на файловую систему создаваемого диска как таковые, то есть продолжают указывать на файлы или директории, на которые указывали. Если же задана опция -f, ссылки при создании образа диска заменяются тем, на что они указывали.

Права доступа сохраняются очень приблизительно, то есть всего лишь позволяют различать, исполняемый файл или нет. Бит права на запись сбрасывается, поскольку файловая система CD-R(W) все равно бывает только для чтения. Бит права на чтение, наоборот, устанавливается для всех.

Впрочем, когда вы копируете файл с диска на винчестер, для копии устанавливается такой же набор прав, как и для любого создаваемого вами файла, и владельцем копии будете вы, а также ваша основная группа.

Теперь вы почти все знаете, осталось только рассказать, как дать имя дисковому тому, получаемому с помощью mkisofs. Нет ничего проще. Назовем наш диск, например, «Linux Rules!». Для этого нужно добавить опцию -V 'Linux Rules!' Обратите внимание: если в имени тома присутствуют препинаки и прочие спецсимволы, то нужно заключать его в одинарные кавычки, но если такие вот одинарные кавычки присутствуют в имени в качестве апострофов (например, вы хотите назвать диск «Gandalf's Not Dead!»), тогда всю конструкцию заключаем в двойные. Такой уж он, этот синтаксис командных интерпретаторов.

В общем, целиком наша команда будет выглядеть примерно так:

Самая первая опция, -v, — это стандартная для юниксовых консольных команд опция, которая заставляет выдавать как можно более подробный отчет о ходе выполнения. Если вас напрягает подробный отчет, то вместо -v можно сказать -quiet, и тогда если вы увидите что-то, то оно будет сообщением об ошибке.

Осталось проверить, все ли нормально с созданным образом. Для этого его нужно куда-нибудь смонтировать. Для примера это будет пустая директория по имени mount-point. Итак, говорим:

после чего заходим в директорию mount-point и смотрим, все ли получилось так, как хотелось. Если да, можно перейти к записи.

Записываем на болванку

Для записи служит команда cdrecord, которой также указываются всяческие параметры.

Если вы пишете впервые, сначала нужно выяснить, как cdrecord распознает писалку. Для этого даем команду:

и видим на экране табличку. Одна из строк всячески характеризует ваш девайс, в остальных все, кроме крайнего левого столбца, пусто (если, конечно, у вас только одна писалка). Вот значение в этом столбце, относящееся к вашему девайсу, нас и интересует. Для современных ide-scsi-писалок это наверняка будет 0,0,0,но проверить на всякий случай все равно стоит.

В принципе, этого уже почти хватит, чтобы записать образ на болванку. Почти, потому что нужно указать еще скорость записи, иначе ваши 700 мегабайт будут писаться все 80 минут. Для примера воспользуемся восьмикратной скоростью записи. Итак, простейшая команда записи будет иметь такой вид:

Адрес девайса состоит здесь только из двух цифр, хотя cdrecord -scanbus выдал три. Это не ошибка, просто если в вашей системе только один scsi-интерфейс (внутри писалки), первая цифра может указываться, но все равно не будет использоваться.

Разберемся теперь с другими опциями, которые нужны, чтобы все точно работало как следует. Во-первых, тип записываемого трека. По умолчанию cdrecord предполагает, что пишет трек с данными, но на всякий случай можно и указать это явно с помощью опции -data. Явным образом обязательно нужно указывать только аудиотреки (опцией -audio), но об этом, как мы договорились, в следующий раз. А в этот раз мы договорились, что диск мы делаем сразу целиком, а не из отдельных сессий. Чтобы указать это, применяется опция -dao (disk-at-once).

Еще одна полезная опция, которой я всегда пользуюсь, регулирует размер FIFO-буфера в оперативке, которым cdrecord пользуется при записи. Чтобы мало не показалось, я выставляю его в 16 мегабайт. Вот так: fs=16m.

У cdrecord бывает и знакомая уже вам опция -v, которая заставляет программу подробно отчитываться о своих действиях. Опция -eject поручает писалке выдвинуть трей со свежезаписанной болванкой по окончанию работы. А опция -dummy используется для тестирования: девайс честно проделывает все положенные операции, только понарошку, с выключенным лазером. Если вы записываете диск впервые, рекомендую сначала дать команду с такой опцией и посмотреть, как это вообще бывает. А потом уже писать взаправду:

В мануале предупреждают, что некоторые старинные писалки могут ругаться на опцию -dao. В таком случае просто не указывайте ее.

На сегодня, пожалуй, все. В следующий раз я расскажу о создании многосессионных дисков и аудиодисков, о работе с CD-RW и, может быть, о записи дисков для обмена данными с Макинтошами. А пока что удачи вам в освоении Линукса!

(Продолжение следует)

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov