k3b - mkisofs - Lin/Win Совместимость
Aleksey Korotkov
ziga на udm.net
Сб Мар 24 04:23:54 GMT 2007
On Fri, 23 Mar 2007 15:52:55 +0300
EqQL wrote:
E> Создавая DVD-R для отдалённого пользователя
E> Windows, я хочу быть УВЕРЕН что он прочитает его.
В Windows используется свой, с позволения сказать, "стандарт".
Называется Joliet. В нём имена файлов и каталогов хранятся в юникоде,
точнее говоря, в UTF-16, и имеют ограничение на длину в 64 символа. В
Linux можно и писать и тем более читать диски в любой из файловых
систем: ISO-9660, Rock Ridge (это просто расширение ISO-9660), HFS (это
на Маках); в частности, можно записывать "гибридные" диски, содержащие в
оглавлении деревья Rock Ridge, Joliet и HFS, ссылающиеся при этом на
одни и те же файлы.
Вот так примерно (без HFS, поскольку, наверно, неактуально ;)):
mkisofs -r -J -o cd.iso ~/my_data/
создаём "образ" диска.
Тогда всё, что находится в каталоге ~/my_data, запишется в "образ" с
именем cd.iso. Опции -r и -J нужны для того, чтобы mkisofs создала в
дополнение к ISO-9660 дереву в TOC ещё и Rock Ridge и Joliet деревья
соответственно. Если используются русские имена в названиях
файлов/каталогов, то для корректного их отображения на диске следует
предпринять дополнительные действия: опции -input-charset и
-output-charset определяют наборы символов, используемые в локальной
файловой системе и в Rock Ridge именах файлов на диске соответственно.
С Rock Ridge проблем никаких не будет, если использовать диск при той
же локали, в которой он будет записан, а для Joliet необходимо указать
обязательно -input-charset (про исключение ниже), можно и совместить эти
две опции, примерно так (зависит от локали):
mkisofs -v -r -jcharset koi8-r -o cd.iso ~/my_data/
(если используется utf-8, с charset можно не париться).
Проверить, что всё нормально записалось и должно прочитаться под
Windows, можно с помощью программы isoinfo.
Проверка того, деревья для каких ФС созданы в TOC:
isoinfo -d -i cd.iso
(можно указать как "образ" диска, так и устройство).
Вывод TOC для дерева Joliet:
isoinfo -fJ -i cd.iso
или так:
isoinfo -lJ -i cd.iso
(как больше нравится). Для Rock Ridge J меняем на R.
Теперь о плохом. isoinfo уже достаточно давно сломана как раз в этом
плане. Так что для корректного отображения дерева Joliet в TOC надо
пользоваться её древней версией (дерево Rock Ridge отображает
правильно; это про русские имена -- на аглицком проблем нет). Точный
рубеж: когда ещё работало, а когда перестало, я не помню. Искать в
версиях примерно 2004 г. :) Хотя, если "образ" создавался правильно,
проверять излишне ;)
--
С уважением,
А.В.Коротков,
mailto:ziga на uni.udm.ru
Подробная информация о списке рассылки ubuntu-ru