As part of the SP1 upgrade, it changes from using AIK (windows 7 base) to ADK (windows 8 base) for OSD deployments and Windows 8 does not enable 8dot3name by default. So when you deploy a system, the Partition Disk step creates the volume with no SFN support. Microsoft added native LFN support in the Windows 95/NT4 days via VFAT so in their defense it’s been many many years, so is a good time to remove it as they gave well over a decade for vendors to catch up. My issue is they did not tell anyone of this change, none that I can certainly find. So how did we fix it? I made a few TS changes.
I normally create an updated WIM quarterly so after we
upgraded to SP1 I created a new WIM via a Build and Capture TS along with PE media. This WIM
contains the OS, .NET Frameworks, Visual Studio Tools, and all applicable patches. Then the
deployment TS deals with drivers, apps A-Z and what not. I was in the middle
of this cycle when this problem arose and since it takes a while to send out an updated
WIM to several hundred DPs so I had to do a break/fix in the mean time to get
our users productive again. Since I sent out a new WIM built with ADK it did not
have SFN in it so I had to enable SFN on the affected folders.
Production TS
After the Apply Operating System steps (my production TS has
both 32-Bit and 64-Bit in it), we had to use FSUTIL to enable SFN and create
the SFN for the affected folders. In the Deployment TS, I created a group with
the following items as Run Command Line steps.
As everyone knows, MS had to strip stuff out so that PE can
be small and agile. They took out obvious stuff like ACPI, games, etc., however
they also took out FSUTIL. This EXE allows you to mess with the file system, really
it should be in PE. Since ADK is Windows 8 based, I went to my W8 media and
pulled out FSUTIL and tried to run it. It failed with some weird errors. Turns
out I needed the MUI as well to get correct error messages. That failed and got different errors. Turns
out while experimenting more that FSUTIL must be ran from %WINDIR%\System32. So the
first two entries are to get FSUTIL over to the PE ramdrive from a package.
CMD /C COPY fsutil.exe.mui %WINDIR%\System32\en-US
CMD /C COPY fsutil.exe %WINDIR%\System32
To turn it on was a simple endeavor via FSUTIL and anything
created this point forward will get SFN created. NOTE that during my Partition
Disk step I save that partition letter as the variable OSDISK.
%WINDIR%\System32\FSUTIL.EXE 8dot3name set %OSDISK% 0
Since the source WIM did not have SFN enabled, I created SFN
for the affected folders. Since the TS has both X86 and X64 arches (chosen via
HTA), it will handle both deployment scenarios.
32-Bit Only.
%WINDIR%\System32\FSUTIL.EXE file setshortname "%OSDISK%\Program Files" progra~1
%WINDIR%\System32\FSUTIL.EXE file setshortname "%OSDISK%\Program Files\Common Files" common~1
Additionally if the OS being deployed is 64-Bit it will enable
SFN for the Program Files (X86) folders as well.
%WINDIR%\System32\FSUTIL.EXE file setshortname "%OSDISK%\Program Files (x86)" progra~2
%WINDIR%\System32\FSUTIL.EXE file setshortname "%OSDISK%\Program Files (x86)\Common Files" common~1
While I had to push out a small package for FSUTIL it definitely
shows how quickly a change can be made if you do your entire deployment via
Task Sequence and keep your WIM thin.
Build and Capture TS
To fix it in the B&C is a lot simpler as you just do the first three steps between the Partition Disk step and Apply OS step. When the OS is installed, it will create the SFN and you have a WIM captured with SFN enabled and all created. Once I deployed the updated WIM the above was removed from the Production TS.
Also as a change in SP1 is the move from Installation source
to using the install.wim for the Apply OS step, so I no longer have to maintain
a separate 64-BIT PE instance to do the B&C. All deployments are done via
32-Bit PE.
I wonder what changes 2012 R2 and ADK 8.1 hold for OSD.
Update
While not as fun as mine, a quick and dirty way is to do another format with a switch. Do this right after built in Partition Disk step. The /s switch is what your after. cmd /c format %OSDISK% /fs:ntfs /q /v:SYSTEM /s:enable /y
No comments:
Post a Comment