2014-02-25

You may have noticed that grub4dos does not always list all file names and folder names in the correct case.

e.g. under Windows or linux, we can list these files:

AA

bb

Cc

CCC.txt

ddd.TXT

ANTIVIRUS

ANTIVIRU

 

but the same files are listed by grub4dos in the console as:

aa

bb

Cc

ccc.txt

ddd.txt

ANTIVIRUS

antiviru

 

It turns out this is because grub4dos does not support VFAT. This was a special enhancement in NT4 and later OS's which would allow you to have either all uppercase or all lowercase filenames, extension names and folder names as long as they were 8.3 in format. This was before long file names (LFN) was introduced.  Cc and ANTIVIRUS are displayed correctly because they are either not 8.3 or they are of mixed case in the filename base part.

 

Byte 12 in the directory entry can have two bits set in VFAT to indicate all lower case:

I have proposed a fix for this to chenall - see issue log here.

 

If grub4dos scripting is used to obtain the names of files and folders using current versions, the case will be incorrect and may fail if the path+filename is used to automatically specify a kernel parameter cheat code.

 

At the moment, a path might appear in Windows on a FAT32 drive as \_ISO\MAINMENU\Ubuntu.iso.

But if you list this under grub4dos, it will be listed as \_iso\mainmenu\Ubuntu.iso.

 

This may cause problems if you use the path in a kernel parameter when booting to linux:

e.g.

 

kernel /vmlinuz  from=/_ISO/MAINMENU/Ubuntu.iso

or

kernel /vmlinuz  from=/_iso/mainmenu/ubuntu.iso

or

kernel /vmlinuz  from=/_ISO/MAINMENU/UBUNTU.ISO

 

Which is correct?

Well it would depend on whether that particular distro of linux (at that boot stage) is case-sensitive AND if it used FAT or VFAT for directory name interpretation.

 

As most people would see the path as \_ISO\MAINMENU\Ubuntu.iso (in Windows Explorer) or /_ISO/MAINMENU/Ubuntu.iso (in linux), most people would use the same case when constructing a menu.lst file. Has anyone found that they needed to specify all lowercase or all capital letters with grub4dos+linux in order to get something to work correctly? Of course, the folders and filename would have to be 8.3 and all uppercase to show the problem.

 

I don't think that changing grub4dos to correctly display VFAT filenames correctly would cause any problems.

Show more