mkisofs: диск не bootable если в каталоге I386 больше чем 4260 файлов

guest4321
Дата: 21.04.2010 18:42:05
opensolaris b134, mkisofs 2.01.01a63

Пытаюсь сделать установочный диск для Win2003 server standard edition с интегрированным SP2.
Скопировал содержимое CD в каталог, sp2.exe /integrate:... написало что успешно интегрировался (это было проделано на WinXP).

Теперь на opensolaris собираю ISO образ, далее пробую грузиться с этого образа в VritulaBox в резултате черный экран и курсор в левой верхнем углу.

Методом проб выяснил что если оставить в каталоге I386 количество файлов 4260 или меньше (каталоги в том числе), то диск получается загрузочный.
Удалил все файлы, оставил только те что нужны для загрузки и остальные создал touch I386/file0001, touch I386/file0002 и т.д.
То же самое - если файлов не более 4260 с диска могу грузиться, если больше - то нет. Похоже что первичный(или как он там на CD называется) загрузчик даже не пытается найти вторичный (I386/SETUPLDR.BIN), потому как при уделении SETUPLDR.BIN ничего не меняется.
Что это? Загрузчик не может читать каталог такого размера или mkisofs как-то по-особому записывает их (список файлов не помещается в один блок или еще что)?

Загрузочный образ взял с оригинального диска.
Оригинала диска сейчас нет, так что не могу сказать сколько файлов в I386 на оригинальном диске.
Мутаген
Дата: 21.04.2010 18:53:09
Дело может быть ещё и в ключах mkisofs.
Он в образ добавляет ещё RockRidge расширения (юниксовые атрибуты и тп), может они мешаются.

В 2003R2 VLP в каталоге i386 - 5958 файлов.
guest4321
Дата: 22.04.2010 11:14:34
Проблема решилась.
Просто убрал ключик -r (Rock Ridge extensions) из опций mkisofs и образ получился замечательно-загрузочный.

Сравнив вывод mkisofs (ключик -v) я было подумал, что причина в следующих цифрах.

| без RR | RR |
Directory tree Block(s) | 185 | 492 |
Joliet directory tree Start Block | 215 | 522 |
Directory tree cleanup Start Block | 437 | 744 |
The File(s) Start Block | 437 | 745 |
Extension record Start Block | | 744 |
Extension record Block(s) | | 1 |

Но, создав вместо фейк файлов столько же директорий, получил гораздо большие цифры (больше тысячи во всех строках).
Так что в чем точно причина - для меня загадка.