|
Vark
15.11.2004 (11:58)
|
|
Дружба уродов, или дописывание мультисессионного диска средствами другой ОС.
Цель: проверить, насколько корректно софта в одной ОС дописывает сессию на CD-R,
первая сессия на котором была создана в другой ОС.
ОС и ПО:
FreeBSD 4.8, mkisofs+cdrecord version 2.0
(man по mkisofs внимательно прочитан :)))
Windows 98 SE Rus, Nero version 6.0.0.11
Тест №1
1-я сессия в Nero Burning ROM: имена файлов/директорий latin-coded, есть длинные имена
и имена с пробелами.
Параметры
ISO: ISO Level 2 (max of 31 chars),
Format: Mode 2/XA, (по дефолту -- Mode 1, впрочем, для нашего теста разницы никакой)
Character Set: ISO 9660 (standard ISO CD-ROM), Joliet.
Relax ISO restrictions:
allow path depth of more than 8 directories,
allow more than 255 characters in path.
Relax Joliet restrictions:
allow more than 64 characters for Joliet names.
2-я сессия (latin-coded filenames, longnames with spaces)
> mkisofs -C num1,num2 -M /dev/name -J -check-oldnames -force-rr -V volname -o imagefile source
> cdrecord dev=/dev/name -multi -data -v -speed=num -driveopts=burnfree imagefile
(В принципе, параметры cdrecord-а и burncd никакой роли не играют, главное -- параметры mkisofs; в дальнейшем
параметрыcdrecord указывать не буду.)
В результате имена файлов/директорий 1-й сессии в обеих ОС выглядят как ISO Level 1 (8.3, uppercase, вместо пробелов - "_"),
а имена файлов/директорий 2-й сессии в обеих ОС отображаются корректно.
Тест №2
Пишем теперь 1-ю сессию во FreeBSD.
В принципе, на автопилоте Nero Express нормально дописывает 2-ю сессию, если в 1-й *nix-овой сессии были только latin-coded filenames.
Вылезли грабли с Nero Burning ROM: он не увидел 1-ю сессию (т.е. закатал 2-ю сессию как на чистую болванку).
Nero Express продетектил, что размер записанного на болванке соответствует сумме размеров 1-й и 2-й сессий,
но увидел только 2-ю. В итоге ни виндовс, ни FreeBSD не видели файлов из 1-й сессии, зато
> cat /path/to/myimage.iso
> cat /path/to/myimage.iso
вытаскивает содержимое только той самой "невидимой" 1-й сесии %)).
Итак, тест (в компиляцию включены файлы с кириллическими именами).
> mkisofs -r -J -jcharset koi8-u -V volname -o imagefile source
Win98 корректно видит кириллицу и укр. символы.
Дописываем 2-ю сессию. Nero Burning ROM в топку!
Nero Express ругнулась, что, поскольку предыдущая сессия не соответствует стандартам Nero multisession,
то её параметры не будут корректно поддержаны. Во 2-ю сессию тоже были включемы файлы с кириллическими именами.
Естественно, вместо кириллицы в 1-й сессии обе ОС потом увидели чёрт-те что (впрочем, получить доступ к содержимому этих
файлов удалось в обеих ОС), а длинные имена файлов с пробелами и в латинской кодировке из 1-й сессии обе ОС отображали нормально.
Естественно, 2-я сессия в винде выглядела корректно, а FreeBSD с прикрученным модулем cd9660_koi8-r.ko увидела и кирилличяеские имена
во 2-й сессии.
Тест №3
1-я сессия в Nero Express (используем на автопилоте, как среднестатистический виндовый юзер),
в компиляции имена файлов/директорий latin-coded, есть длинные имена и имена с пробелами.
2-я сессия: есть кириллические имена файлов, есть и длинные имена с пробелами. Без граблей не обошлось.
> mkisofs -C num1,num2 -M /dev/name -f -r -J -jcharset koi8-u -check-oldnames -force-rr -V volname -o imagefile source
С параметром -force-rr mkisofs ругнулся:
BAD RR ATTRIBUTES:....
mkisofs: **BAD RRVERSION 0 FOR 0.
mkisofs: Cannot parse Rock Ridge attributes for 0.
естественно, iso-файл создан не был.
Без -force-rr:
NO Rock Ridge present.
Warning: Neither Rock Ridge (-R) nor TRANS.TBL (-T) name translations were found on previous session.
ISO (8.3) file names have been used instead.
В результате в обеих ОС 1-я сессия выглядит как ISO (8.3), 2-я сессия -- нормально (т.е и кириллица на месте, и длинные имена с пробелами).
Тест №4
1-я сессия: Nero Burning ROM, настройки по умолчанию + Joliet (его настройки тоже дефолтовые, см. тест №1). Есть кириллические имена.
Параметры
ISO: ISO Level 1 (max of 11 chars, 8.3),
Format: Mode 1,
Character Set: ISO 9660 (standard ISO CD-ROM), Joliet.
2-я сессия: параметры см. тест № 3 (2-я сессия, без -force-rr).
В результате в обеих ОС 1-я сессия выглядит как ISO (8.3), в кириллических именах все пробелы и русские буквы (в пределах первых 8-ми символов, естественно :))
заменены на "_", с отображеннием содержимого 2-й сессии всё в порядке в обеих ОС (т.е и кириллица на месте, и длинные имена с пробелами).
Выводы:
Параметры предыдущих сессий сохраняются только в том случае, если в 1-й сессии были имена файлов/директорий только latin-coded,
а 2-я сессия дописывалась в Nero.
Хреновенькая какая-то дружба получается, мягко выражаясь...
|
|