Jump to content

UDF breaks NTLDR


Mexxi

Recommended Posts

I'm not sure if I understand what you mean. Mkisofs places all directories at the beginning of an image and then appends the files according to the specified sort order.

Sorry for the confusion. Yes, directories are not sorted themselves.

There are Path Table Records at ISO9660.

ECMA 119 is also approved as ISO9660. http://www.ecma-international.org/publicat...ds/Ecma-119.htm

6.9.1 Order of Path Table Records request the sort order.

Some hardware rely at this sort order. As far as I know all applications create the Path Table Records to the specification.

I'm used to set a weight at directory level, mkisofs set this level to all files within this directory and all sub directories.

E.g. a weight to I386 includes all files from I386, I386\ASMS\1, I386\ASMS\10 and I386\ASMS\1000

Textmode boot files are sorted in addition.

Example: part of sort.txt by mkISO_RAMload_sort.cmd

./boot.catalog 10000
./bootsect.bin 9990
./WIN* 9978
./AMD64/* 1100
./AMD64/SYSTEM32 9000
./AMD64/COMPDATA 20
./AMD64/LANG 1000
./AMD64/WINNTUPG 1000
./I386/* 1100
./I386/SYSTEM32 9000
./I386/COMPDATA 20
./I386/LANG 1000
./I386/WIN9XMIG 1000
./I386/WIN9XUPG 1000
./I386/WINNTUPG 1000
./DOCS -1000
./DOTNETFX -1000
./WIN51IP 9899
./WIN51IP.SP3 9898
./BOOTFONT.BIN 9897
./I386/*.SY? 9010
add_copy_sort_files -1
./I386/_DEFAULT.PI_ 7999
./I386/1394.IN_ 7998
./I386/1394BUS.SY_ 7997
./I386/1394VDBG.IN_ 7996
./I386/1394VDBG.SY_ 7995
./I386/8514FIX.FO_ 7994
./I386/8514OEM.FO_ 7993
./I386/8514SYS.FO_ 7992
./I386/61883.IN_ 7991
./I386/12520437.CP_ 7990
./I386/12520850.CP_ 7989
add_boot_sort_files -1
./I386/SPCMDCON.SYS 9896
./I386/TXTSETUP.SIF 9895
./I386/BIOSINFO.INF 9894
./I386/NTKRNLMP.EX_ 9893
./I386/NTOSKRNL.EX_ 9892
./I386/BOOTVID.DL_ 9891
./I386/SETUPDD.SY_ 9890
./I386/SPDDLANG.SY_ 9889
./I386/SETUPP.INI 9888
./I386/KDCOM.DL_ 9887
./I386/SETUPREG.HIV 9886
./I386/CTYPE.NL_ 9885
./I386/LOCALE.NL_ 9884
./I386/L_INTL.NL_ 9883
./I386/SORTKEY.NL_ 9882
./I386/SORTTBLS.NL_ 9881
./I386/UNICODE.NL_ 9880
./I386/SETUPLDR.BIN 9600
./I386/WINNT.SIF 9599
./I386/BOOTFIX.BIN 9598
./I386/BOOTFONT.BIN 9597
./I386/NTDETECT.COM 9596
./I386/SYSTEM32/$OEM$/* 9596
./OEM/* 200
./$OEM$/* 100
./$OEM$/TEXTMODE/* 9950

Just wondering: Did you ever try reading such a disc in Win9x or DOS?
Given a ISO9660:1999 disk:

MS DOS mscdex.exe find 8.0 upper case directory names and 8.3 upper case file names, longer names are not acessible. Basically all DOS files are accessible.

FreeDOS shsucdx does find long ISO9660:1999 names, lower case is possible.

No idea about Win9x.

I hope this won't change in the future.
Well, I hope this too.

Contrary as you indicated already oscdimage with ISO9660, Joliet and UDF is another working approach.

Maybe I'm forced to use this file system mix in future.

Link to comment
Share on other sites


MS DOS mscdex.exe find 8.0 upper case directory names and 8.3 upper case file names, longer names are not acessible. Basically all DOS files are accessible.

FreeDOS shsucdx does find long ISO9660:1999 names, lower case is possible.

No idea about Win9x.

I may add:

  • mscdex reads iso-level 3 and partially iso-level 4 as detailed above
  • shsucdx (that can be used under MS-DOS allright) reads iso-level 4 allright
  • NT/2K NTLDR/SETUPLDR.BIN read iso-level 3 but has usually problems with iso-level 4
  • XP SETUPLDR/NTLDR read iso-level 4 allright

jaclaz

Link to comment
Share on other sites

Pheew : both nlite and iso level 4 are can then be acquitted on the grounds of not having committed the crime.

:lol:

I'm used to set a weight at directory level, mkisofs set this level to all files within this directory and all sub directories.

Interesting method. I once tried sorting with wildcards sicne the documentation said that mkisofs supported that, but it didn't work for me. May be I did it wrong, may be the compile was just buggy. In any case it's nice having seen an example. This should really speed things up for creating sort-files for multi-boot projects.

Contrary as you indicated already oscdimage with ISO9660, Joliet and UDF is another working approach.

Maybe I'm forced to use this file system mix in future.

Well. I don't mind using Joliet. It's pretty efficient for the features it offers, but UDF is just terrible. It created a 35MB TOC for my ISO which had only 15.000 TOC-entries. After having maxed out a DVD-R's capacity this really was a blow. The bad thing about UDF is that it isn't flexible enough. It reserves the same space for meta-information for every file, even if none is available. You'd think that those oh so clever engineers who developed this format would have thought of wasting another few bits to implement flags to signal the length of the following meta-data. This way each entry could have a variable length which would have made UDF quite a good filesystem.

Thanks for the very specific in-depth info on the readability of iso level 4 discs guys :)

Edited by Mexxi
Link to comment
Share on other sites

i had no problem with doin XP vista multiboot. http://www.msfn.org/board/bootmgr-based-mu...sta-t99823.html

only thing u need a UDF bridge filesystem for Vista/7 and joliet extesions for XP

This command works nicely (i didnt tried mkisofs)

cdimage -lXP_Vista -j1 -u1 -e -m -h -bD:\vista-l\boot\etfsboot.com D:\vista-l d:\xp-vista.iso

note -j1 -u1

Edited by Innocent Devil
Link to comment
Share on other sites

[*]NT/2K NTLDR/SETUPLDR.BIN read iso-level 3 but has usually problems with iso-level 4
I've different experience:

NT4 SP1 boot sector and setupldr.bin does work at -iso-level 4. The installation does complete.

2000 SP1 boot sector and setupldr.bin does work at -iso-level 4. The installation does complete.

only thing u need a UDF bridge filesystem for Vista/7 and joliet extesions for XP
No, you do NOT need UFD bridge for Windows 7. ISO9660 is sufficient.

Yes, the -j1 -u1 is another solution. However this require addional space.

Link to comment
Share on other sites

[*]NT/2K NTLDR/SETUPLDR.BIN read iso-level 3 but has usually problems with iso-level 4
I've different experience:

NT4 SP1 boot sector and setupldr.bin does work at -iso-level 4. The installation does complete.

2000 SP1 boot sector and setupldr.bin does work at -iso-level 4. The installation does complete.

I take for good your report :), maybe it's just NTLDR (and not SETUPLDR.BIN) that has problems or maybe I remembered about SP0, you know how my memory is fading away ;) and it is a bit of time since I experimented.

It can also be that since the NT and 2K install files are "kosher" 8.3 CAPITAL LETTERS, the iso-level on a "plain" install CD does not make any difference, and the problems I seem to remember were on some more multiboot/complex thingies. :unsure:

jaclaz

Link to comment
Share on other sites

This command works nicely (i didnt tried mkisofs)

cdimage -lXP_Vista -j1 -u1 -e -m -h -bD:\vista-l\boot\etfsboot.com D:\vista-l d:\xp-vista.iso

note -j1 -u1

I know, I used that switch too. In fact, I already posted earlier in this thread that CDimage and OSCDimg can create valid UDF-bridges. I can see that you don't use any sort order, which is the most crucial thing when booting more than just a couple of operating systems. I needed to boot 6 entries for example which didn't work with CDimage's native way of sorting files (at least not all of them). Cdimage 2.54 and OSCDimg 2.55 support sort-files but seem to be buggy as building an image takes hours, so mkisofs ftw.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...