Создание компакт-диска с длинными именами файлов
Эта статья рассказывает о том, как самому сделать компакт-диск с по-настоящему
длинными именами файлов. Кто-то недовольно хмыкнет: "Что тут рассказывать,
поставил пару галочек в нужной закладке настроек у любимой программы,
и пиши сколько хочешь!". Тот же, кто хоть раз сталкивался с невозможностью
записать на компакт-диск свои любимые mp3 файлы с именами:
01. (День рождения Лены) Вася, Гена, Боря и Петя поют свою любимую
песню.mp3
или личный фотоальбом из jpg файлов вида:
(22 сентября 2000 г.) Я стою в Париже около Эйфелевой башни и смотрю,
как садится Солнце.jpg
или какой-нибудь JAVA toolkit в распакованном виде, с именами еще похлеще
вышеуказанных - могут читать дальше.
Как известно, наиболее распространенными форматами, описывающими метод
хранения файлов на CD, являются ISO 9660 и Microsoft Joliet extension
к ISO9660. Остальные экзотические варианты распространены в меньшей
степени, поскольку, обычно, поддерживаются либо только на родной аппаратной
платформе, либо требуют для своей работоспособности установки дополнительных
драйверов и утилит.
Кратко напомню ограничения, накладываемые на имя файла двумя вышеупомянутыми
стандартами.
- ISO9660 - имена файлов с длиной до 31 символа
- Joliet - 64 символа на имя файла
Между тем, вполне возможно записывать на CD файлы с именами, длина
которых превышает допустимые для Joliet шестьдесят четыре символа. Аналогично,
возможно расширить набор используемых в имени файлов символов и сделать
его идентичным тому, который использует, к примеру, Win 95 на диске
с файловой системой FAT32.
Такие диски умеет создавать теперь уже раритетная программа Unite CD
Maker. Перед процессом создания диска "без ограничений" остается
только одно значительное препятствие - программа эта написана под OS/2,
и несколько незначительных - программа имеет ограничение на глубину
вложенности каталогов и не умеет создавать образы дисков более 650 мб.
Чтобы преодолеть и эти ограничения, я модифицировал исходный код пакета
для создания образов CD под названием mkhybrid (пакет этот родом из
*nix, что объясняет факт его распространения в исходных текстах). Модифицированный
код был скомпилирован, опять же, под операционную систему IBM OS/2 -
поскольку именно эта система является для меня основной и рабочей.
Модифицированной программе я дал простое название mkhybridr, где буква
"r" означает не что иное, как "Russian".
Модифицированная программа обладает следующими возможностями:
- Создание iso образа диска из файлов, имена которых значительно больше
64 символов. На данный момент поставлено искусственное ограничение в районе
150 символов, но ничто не мешает записывать и файлы с именами 200 символов
(собственно говоря, я так и поступаю).
- В именах файлах допускаются и русские символы, и прочие знаки, какие
допускает ваша файловая система.
- Отсутствует ограничение в 650 Мбайт на размер образа диска.
- По сравнению с оригинальным mkhybridr также русифицирована часть выдаваемых
информационных сообщений и поставлен простой кэш на чтение с диска файлов
при построении образа. Ввиду примитивности алгоритма добавленного кэша,
это помогает только на достаточно больших файлах.
Программа находится в использовании уже больше года, что дает повод
говорить о некоторой стабильности выдаваемых ею результатов.
Полученный в результате работы mkhybridr ISO образ может быть записан
на CD диск практически любой из свежих программ записи CD под Windows.
В случае необходимости выбора формата образа диска, следует выбирать
стандартные 2048 байт/сектор. Практика показала, что полученные диски
с длинными именами успешно видятся под OS/2 (может потребоваться обновление
cdfs.ifs, поставляемого от IBM), Windows 95, 98, NT, и Linux (как минимум
RedHat 6.0). Под DOS, естественно, нас ожидает неудача.
Теперь почти ничто не мешает созданию архива из файлов с по-настоящему
длинными именами. Почему почти? Потому что программа-то под OS/2, а
эта операционная система ныне достаточно редка и живет лишь в умелых
руках профессионалов. Чтобы дать возможным пользоваться этой программой
и пользователям Windows, был предпринят следующий шаг. Я сделал загрузочный
компакт-диск с мини-версией OS/2, работающей в текстовом режиме, специально
для запуска mkhybridr. В загрузочный образ диска был помещен драйвер
поддержки FAT32 в OS/2, который позволяет полноценно (хотя и небыстро)
работать с FAT32 разделом.
Теперь набор необходимых требований для использования mkhybridr сокращается
до следующего:
- Компьютер с IDE CDROM, способный грузиться с компакт-диска (проверьте
наличие соответствующего параметра в BIOS).
- Загрузочный компакт-диск с мини-вариантом OS/2
- mkhybridr.
- FAT32 раздел.
- Любая программа записи CD для используемой вами операционной системы,
правильно воспринимающая ISO образы дисков.
Конечно, если вы работаете в OS/2, то все, что вам необходимо - это пункты
3 и 5.
Как это все работает:
- Для создания загрузочного диска с мини-набором OS/2 воспользуйтесь
образом диска boot.iso (стандартный
ISO образ) и той вашей любимой программой, которая сделает из него CD.
- Выставьте в BIOS Setup параметр загрузки с CD.
- Загрузитесь с компакт-диска. При успешной загрузке (в некоторых редких
случаях придется подождать несколько минут) Вы увидите на экране синие
панели FC (File Commander) - файловый менеджер для OS/2.
- При успешной загрузке драйвера FAT32 вам будут доступны все FAT32 диски.
- Чтобы создать образ диска, запустите mkhybridr со следующими параметрами
(пример):
mkhybridr.exe -o d:/image/vac3.iso -full-iso9660-filenames -L
-a -omit-period -omit-version-number -D -V "VAC3" g:/VAC3/
В этом примере:
| d:/image/vac3.iso |
имя создаваемого iso-образа |
| "VAC3" |
метка диска в кавычках |
| g:/VAC3/ |
путь к файлам, которые будут записаны в образ диска.
|
Обратите внимание, что рекомендуется использовать mkhybridr только
с вышеуказанными параметрами. Все остальное - на ваш страх и риск. Конечно,
имя создаваемого образа, метку диска и путь к файлам можно менять без
опасений :)
Важно! Обратите внимание на "/" в путях к каталогам
и файлам. Не используйте "\", и не забывайте поставить закрывающий
"/" в конце пути к каталогу, содержимое которого будет помещено
в ISO образ. После того, как mkhybridr успешно создаст образ диска (в
конце написав его объем), вы можете перегрузиться (Ctrl-Alt-Del) в привычную
вам ОС для записи этого образа на CD.
Необходимые предосторожности:
Следует помнить о том, что OS/2 не имеет встроенной поддержки разделов
с FAT32. Для этого используется драйвер FAT32, разработанный Henk
Kelder. Скачать можно здесь.
Я сам пользуюсь этим драйвером достаточно давно, проблем с потерей данных
не было. Тем не менее, лишние меры предосторожности в виде выделения
отдельного FAT32 раздела не помешают.
Желаю успехов!
|