Boot failure 0xc000000f: Windows failed to load because the NLS data is missing, or corrupt
book
Article ID: CTX238440
calendar_today
Updated On:
Description
You may see this when you attempt to create App Layers after importing a new non-US-English OS layer. This applies to every version of Windows from 7 onward. Below is what you get in Windows 7 when you have a missing NLS (Native Language Support) code-page file. You get a boot failure screen that says:
Status: 0xc000000f
Info: Windows failed to load because the NLS data is missing, or corrupt.
You will only see this while editing App Layers, because the process for editing OS and Platform Layers is different.
Resolution
This means that an NLS file (international code page) that Windows wants is not on the boot image, which means App Layering didn't recognize it during our boot analysis. When you import an OS layer, the ELM reads the list of drivers and services to determine what needs to be on the boot image and what can wait until layers are available. Unfortunately, NLS files are not recognized. We automatically include only US and Western Europe code pages.
However, there is a way to include a file on the boot disk that our drivers do not automatically detect. You can do this on the Gold VM and reimport, but it's usually easier to add a version to your existing OS layer and fix it there.
In the OS Layer, edit "C:\Program Files\Unidesk\Uniservice\bootfile.txt". This is a list of all files in this VM that we identified as being critical system boot-time files. Add the files you need, save the file, and finalize the OS layer.
Unfortunately, App Layering does not in general know all the files that are necessary for a particular language. We have successfully tested this procedure with only a handful of regionalized Windows 7 systems: Greek, Russian, Slovenian, Japanese, and a few others. So you will need to do the analysis to determine what you need.
But a good first step is to edit bootfile.txt, search down to the other NLS files, and add lines like this (these are the two additional NLS files necessary for Japanese, for instance):
C:/Windows/System32/C_10001.NLS
C:/Windows/System32/C_932.NLS
Note the slashes - they go forwards. Then finalize the OS layer and test.
If you are unsure what code pages you are currently using, you can get that information from the registry. Look for the three values in this key:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"ACP"="932"
"OEMCP"="932"
"MACCP"="10001"
You would need to include the appropriate NLS file for each of those entries. However, if you expect to need to support additional languages, remember to add them as well. A list of NLS tables for many languages is here, and that's what I derived the above files with (you will want the ANSI, MAC and OEM pages).
http://www.bullzip.com/products/pdf/cultureinfo.php
It's not clear that the NLS files alone will be sufficient in all cases. Yuo may wind up with an iterative process trying to identify what else might be required. However, if you determine that other files are necessary, you can always add those to bootfile.txt as well.
Do not be tempted to include all Windows files in bootfile.txt without a clear reason. Unidesk provides only 1GB of space for files in the boot image, and all the NLS files add up to at least 10MB. However, we have seen at least one case where the end-user was unable to determine what additional language was required, and they would up adding all of the NLS files anyway. Their boot image did not run out of space, and they were able to boot with that. So, as a last ditch effort, it's possible to just add all of them.
NOTE: It has been reported that "C:/Windows/System/vgaoem.fon" might be required and might not be present, so if this KB doesn't work, try adding that file as well if it is not already listed in bootfile.txt.
(Supplementary information for Unidesk V2 and V3 customers: you may not be able to fix this in a new version of the OS layer. You might need to fix it in the Gold VM and reimport the OS layer, if you have never gotten your OS layer to work. Or if the damage was introduced in a newer version of the OS layer, delete that new version, recreate it, and make sure you add the appropriate files to the bootfile.txt file before finalizing.)
Was this article helpful?
thumb_up
Yes
thumb_down
No