Sunday, February 03, 2008

VistaPE WinBuilder 011 - Basic Walkthrough

When I last posted about VistaPE builder, VistaPE Builder Tutorial - Highly Advanced (and Fun!), it was clear that this was a fantastic tool to build a powerful system troubleshooting and utility CD based on the WinPE 2.0 boot disk format.

At its core is Vista.

The version I was using at the time of that post was 008.

It worked great and with a few minor points I had to learn, it built flawless VistaPE disks.

VistaPE Version 11 puts them all to shame.

It is polished, and it is professional.  It comes with a slew of new utilities and programs to (optionally) include in your build,and really looks like a prime-time product.

I got goose-bumps the first successful build I was able to pull off.

But it came with some work and lessons learned.

Time to pass the torch of knowledge to you so you don't repeat my mistakes and pass up using this incredible tool.

The Dread "Black Screen and Cursor of Death"

Starting with version 009 and continuing through version 011, I ran into a BIG problem.

I couldn't get the builds to work.  008 continued to work fine, but with 009 I kept getting a boot error and with versions 010 and 011, I kept getting a black screen and cursor of death.  Happened on both my XP Home and XP Pro systems.  I was getting very frustrated as version 008 which I had tucked away continued to turn out flawless ISO builds.

I reviewed the error logs and there were a lot (21) showing with "FileCopy - Failed to copy."

I spent days on this until I found out that these particular errors are "normal" if you are using the WAIK Developer's kit as your source (which I was) instead of an original Vista setup DVD and happened to check certain build options that call to the Vista DVD disk.  Once I figured those were just (literally) red-herrings, I could turn my attention elsewhere as they are not "fatal" errors after all.  I just needed to ensure I de-selected those script options since I was using the WAIK as my build source.

I was using a NTFS formatted partition (required) as my building volume for the WinBuilder folders. So that wasn't the cause.

Eventually I found a series of forum threads that cleared up the issue with the dread black boot screen and cursor of death for VistaPE Winbuilder: The build-folder (and sub-files/folders) must have a user security permissions object "Everyone" with full rights assigned for that user. 

I have some serious security concerns about this, but I will save mitigation of that risk that until the end of the post.

Turns out that beginning with version 010 (I think) the scripts were modified and unless the files during the build process have full "Everyone" rights, you can build the ISO for VistaPE, but during the boot process, the files that were created don't carry with them sufficient security permissions to allow the boot process to execute.  Thus you seem good at first, but when doing the Vista WinPE 2.0 boot, it dies on a black screen with the cursor present.

Once I worked this out, all my builds worked flawlessly again.

So what do you do?  I'll cover that in a minute (look for Tip #3 a bit below). But for now, if you have XP Pro (or Vista) you shouldn't have any issues setting up the security rights.  If you have XP Home, it isn't as easy.  See my GSD post "Get the Security Tab in XP Home! For Free!" to see what options you will have to consider.

Shall we proceed?

Some Pre-Assembly Required

I will perform this version 011 build walkthrough on a XP-SP2 system.  Mine is a XP Home version.  I have done this quite well on XP Professional and Vista.  There may be some slight differences between the OS versions, but if you understand the concepts, you should be good to go. 

First, the drive partition you are doing your mastering on MUST BE formatted as NTFS.  If you don't know what I am talking about, you might not be at the point of taking on this project. 

I always just do my building in a C:\VistaPE_WinBuilder_v011 folder on the root of my C: drive.

Also, be sure your drive/partition has enough space to build the project.  One GB should do nicely for this base project, but two would be better.  You will be creating an ISO file for the disk so you need that room for it as well as the build files and applications you will be fetching down to your local drive.

First: Get and prep the active components

  1. Download and Install the Windows Automated Installation Kit (Windows AIK), or
  2. If you have a Vista setup-disk (not the same as a system-restore disk), you should be able to use that instead and skip step one above. It is recommended you copy the files on that disk to your hard-drive just for performance improvement in building.
  3. Download and unpack WinBuilder to your NTFS partition.  It is a .rar file format, but most all compression programs should be able to unpack it. If not, just get and use either the free 7-Zip or the more user-friendly free jZip.  I unpacked mine on the root at C:\VistaPE_WinBuilder_011.  Note: I am using the download-link offered for the "Latest stable version 11 (01.01.2008)" on the download page for this guide.  Again, you can actually put the file anywhere you wish, but it must be on an NTFS formatted partition!
  4. Once the main build folder is ready, we must prep the file and folder security permissions.  Right-click on the folder and select "Properties".  Now click the "Security" tab.  Add/Create a user account called "Everyone."  Now select that account and ensure that all the items in the bottom window are checked to "Allow".  Good.  Save, apply, and click on out.

Tip1:  For an added bonus, I now strongly recommend downloading and unpacking the following file handy: GImageX, but it is not required. If you want to skip this, don't worry about it.  See this post ImageX - Welcome to the Imaging X-Zone to see why I think it is a great addition to the project.

Tip2: If you forget for some reason to do this on a NTFS formatted partition, when you run the final build file (virtually or off a burned disk) it will boot to a point but then stop at the following error: "...winload.exe is either corrupt or missing."  That's because you didn't do the building on a NTFS formatted partition. If this is the case find and move your WinBuilder folder and contents over onto one and try another ISO build again.  It should work fine the second time.

Tip3:  If you are completely lost about step 4 about with setting of security permissions, see these related (illustrated) posts from assorted websites:

Second: Get the inactive components

  1. Browse to where you unpacked WinBuilder and run the exe file. (You did remember to set the Everyone account and set full permissions, right?)
  2. The version I am using reports "WinBuilder 074" in the title bar.  If yours is different you probably can still follow the principles outlined here, but some of the references might not exactly match.
  3. Take a moment to examine the window. There are two tabs "Web" and "Download" as well as some mini navigational icons "home," "forward," "back," "refresh," and "stop."
  4. Click on the "Download" tab.
  5. After a moment, the program tabs load.  Click the "Servers" tab and take a look.  I recommend starting out with just the default servers.  Checking others provides additional project scripts for extra building features.  Play with this once you have mastered the basic steps..
  6. On the left hand side, you should now see "Recommended" in a drop-down option box.  If you click the drop-arrow you will see additional projects "basic," "complete," and "beta."  Again, let's leave it on "Recommended" for this build run. Play with the others as you gain experience.
  7. Note that on the info area for this tab (at the top) you should see that you have 44 files selected and about 89.29 MB of data to download. I hope you have a broadband Internet connection!
  8. I like to go in and ensure the VistaPE > Shell > 2-BSExplorer.script is checked.  I prefer this one over the LiteStep interface.  Strictly optional at this point.
  9. Click the "Download" button at the bottom and the WinBuilder will begin fetching the files and scripts needed for your project.  A "Projects" folder will be automatically created in your C:\VistaPE_WinBuilder_011 folder (or whatever you called yours) and the files placed into there.
  10. On the left-hand side you will see the detail elements being ticked off as they are obtained with a download status bar showing the progress on the bottom right hand side.  This may take a while so get up and go spend some time with your loved ones (family, friends, cat, rat, etc.)
  11. WinBuilder should restart when done.

Additional notes:  Once you get the basics of VistaPE building down, come back here and play around on this page. Note that when you select other Web Servers, additional projects or project sub-elements appear.  There are a lot of cool ones so take your time exploring.  Also, under each project should be some "+" signs. You may expand these to see what the projects elements contain in more detail and select them to be individually included/excluded.  Finally, the drop-down box allows you to fine-tune the project with "Minimum," "Recommended," "Complete," or "Beta" levels of element inclusions.  Again, try different options to see what happens and appears.  Unless you start out on the "Complete" build version to begin with, you will need to do the download process again to bring down the additional project scripts and programs.

Third: Into the Crucible!

You should now see that a third tab has been added to our WinBuilder window.  This is the "Scripts" tab.  It has a four-tabbed element screen on the right with tabs for "Scripts," "Paths," "Log," and "Code Box."  Now the fun begins!

  1. Click on the "Paths" tab and set your Source directory.
    • If  you are using the WAIK and installed it to the defaults, browse to the following location using the folder icon next to the blank line: "C:\Program Files\Windows AIK". Or,
    • If you are using a Vista setup disk, you probably should have first copied the setup files to your drive, so point to that location, or the DVD if you didn't. 
    • Note: The Vista disk is not required...the WAIK installation works great by itself.
  2. The "Target directory" is set by default.  I would leave it alone for now.
  3. The "ISO file" location and name is set by default.  I would leave it alone as well.
  4. Click the "Scripts" tab (next to the "Paths" tab) again.
  5. On the left-hand side next to "VistaPE" project, you will see the project elements listed in detail. Each of these also has a "+" you can select to expand if you find it helpful.

Fourth: Tweak to Perfection!

  1. Back on the "Scripts" area on the right-hand side, in earlier versions you would see two small and blue arrows (forward and back) separated by a light line.  These allowed us to step through the project elements and "tweak" the build. Those are gone now in version 011.  We must manually step through the elements.
  2. On the left-hand side, select the "Main Configuration" item.  For the most part, I leave the options alone with the following exceptions:
    1. I like to set the screen resolution to "1024x768", but you can leave it at "800x600" for compatibility with other monitors if you like.
    2. I like to set the "Main Shell" to "BS Explorer" as it mimics a Windows Classic theme a bit more.  If not, just leave the "LiteStep" set as it is.
  3. Let's leave the "Extended Configuration" settings, as-is.
  4. On the left-hand side, Click the little "+" next to the "Build" folder.
  5. Notice we are now in the "0 - PreConfig" sub-element area of the project.
    • If you are using the WAIK, you should see the path listed. If you are using a Vista disk, it's program files path should be showing.
    • I always set the "boot.wim" container setting to "1"  I think this is puling the 1st image stored in the boot.wim file.  I have had good success with using "1" but if things don't work for you, try using "2" instead.
    • Leave the "install.wim" container value set on "1".
  6. Select the "1 - Copy Files" sub element.
  7. We are now in the "1 - Copy Files" sub-element.
    • If you are not using a Vista DVD, then uncheck the "Same recovery tools" checkbox. It won't hurt if you leave it checked but are using the WAIK, but doesn't hurt either to remove it if you don't.
    • Notice the "Copy Custom Folder" checkbox.  If you make a "\Custom\VistaPE" subdirectory in your C:\VistaPE_WinBuilder_011 folder, then any files\folders added manually by you into this location will be added to the root of the media disk you are building.  This is REALLY awesome as it lets you place additional 32-bit applications (most "standalone\portable" applications work great) on the disk for use.
    • If you did download the GImageX utility earlier, go ahead and make the "C:\VistaPE_WinBuilder_011\Custom\VistaPE" subfolders and place the unpacked file (gimagex.exe from the x86 folder version) in there.  If not, no biggie...
    • Also copy the imagex.exe executable and the wimgapi.dll file into it from the C:\Program Files\Windows AIK\Tools\x86\imagex.exe location.
    • Leaving the "Clearing Target Folder" checked forces WinBuilder to empty the build-location folder it uses to create the disk, before it starts the build process.  I generally leave it checked, but it does add extra time in building if you uncheck it.  So let's leave it checked for now.
  8. Select the "2 - New Hives for VistaPE" item.
  9. We are now in the "2 - New Hives for VistaPE" sub-element.
    • Just leave "Clean custom registry files" checked.
  10. Select the "3 - Shell & Config" item.
  11. We are now in the "3 - Shell & Config" sub-element.
    • First we have a drop-down to set the FBWF value.  I must confess, I didn't know what the heck this was at first.  It is the "File-Based Write Filter" which allows PE "...to maintain the appearance of read and write access to write sensitive or read only storage. FBWF makes read and write access transparent to applications."
    • I just left it at the default "64" setting. Once you get used to building, you can fiddle with higher values.  64 seems to work fine for my tests on various systems.
    • Leave the "delete work folder' checked.
  12. Select the other folder elements and click the little "+" arrows to expand...repeat as needed.
    • Now you will jump down into "Apps" elements (and others) and can set custom options for these as you advance through them.  I would just leave everything set as-is for now.  They are generally very self-explanatory.  Add and remove project script applications as you see fit.  For now why don't you just leave them set to the defaults.
  13. Select the 2nd "Finalize" folder and click the "+" next to it.
    • Click the "7 - Create ISO" item and then click the check-box to enable this feature.
  14. We are now in the "7 - Create ISO" sub-element.
    • If you wish, you can give your volume name a different name.
    • Let's leave the "Show mkISOfs window" and "Compatible mode" boxes checked.
  15. If you really like the build, go back to the "Main Configuration" line at the top and select.  Then click the "Save button at the bottom, center of the window to save your configuration settings.  Good habit to get into!

We should now be all set.  If you want to go back and check something in your project configuration, you can just click on the specific element on the left-hand side tree structure...just be careful to not accidentally uncheck something.

Fifth: Fire the Crap out of it!

All ready?  Good!

We are about to process all the pieces to make our masterpiece!

  1. Click the BIG blue arrow "Play" at the top-right of the WinBuilder window.
  2. WinBuilder will start to process the build.
    • If you are prompted to install a driver, click "OK".  This allows WinBuilder load the ImageX filter driver used to mount the WIM (Windows Image File) and make changes to the base one shipped with the WAIK or Vista DVD). I haven't seen this appear in using version 011.
    • If something errors out, that (usually) doesn't prevent the build process from completing, just that element may fail to work.
    • Depending on the addition of extra files you want added, the copy files process may take a bit.
    • You will see a nice progress meter for each stage of the process.  If additional programs are needed, it will attempt to go and fetch them.
    • For the "6 - Finalizing" stage, you may see a "boot.wim" window appear..
  3. If all is well, you should see a DOS window for mkISOfs pop up and it will show the progress of rolling up the ISO file.  Depending on your system's CPU, RAM and drive-speed, as well as how many (if any) custom files you added, this might take a moment, but should be relatively quick. On my system it takes about 5 minutes or less for a "Recommended" build.
  4. When done you will be back to WinBuilder with the "Log" window displayed.
  5. I sometimes have a few "errors" as I noted where the builder was actually looking for associated Vista DVD files that don't exist when you use the WAIK as the building source.  No big deal. You can explore this window if you want.  As you get used to things, you will discover what scripts call to the Vista DVD and can disable them (uncheck them) if you are using just the WAIK as your build source.

Playtime!

At this stage you can go into the ISO folder of your WinBuilder location and find the ISO file.

The "Recommended" build ISO with only a few extra files (gimagx and imagex) comes in at just over 144 MB in size.  The "Complete" builds come in at over 386 MB in ISO size.

To play with it you can burn the ISO to disk, using your favorite ISO burning tool.  Mine is BurnCDCC for it's simplicity.  Then in a system that has the BIOS set to boot from CD first, pop in the disk and boot the system.

I prefer to first test my boot-images using Virtual PC first to avoid making coasters.

From what I understand, you really need to set your virtual machine at 512 MB system RAM.  Lower than that and the WinPE 2.0 environment gets kinda cranky.  Go too low and it won't boot.  Seems to apply this way in "real-life" system booting as as well.

WinBuilder does allow you the options (under the second "Finalize" element) to burn the ISO directly to a cd when done as well as run the ISO in a VirtualBox session automatically.  You do have to have VirtualBox (freeware) installed on your system prior to doing the build with this option selected, however. WinBuilder provides you a link to the site or you can get it here.

If all went well, you should see a GRUB4DOS boot loader with the slick new blue-wallpaper background.  Very nice! You can select the default (VistaPE) or one of several other options.  This really comes into play in the advanced and beta build projects.  For some of them you can also install MemTestx86, other Windows boot options, as well as Linux "livecd" builds.  It is really amazing.

You may also see a Vista'ish logo appear in the "Complete" build version; again a very nice and professional touch.

When the default configuration comes up, you should see command-line box with the Win PE 2.0 doing some initial PE 2.0 work.  It's turning on some services and starting a network connection.

Then (again depending on the build options you selected) you might see the PE Shell Swapper window come up that will allow you (briefly) to select a different shell as well as screen resolution if you wish to deviate from the defaults.  Just wait for it to tick down or hit the "Go" button.  If you set a particular shell as your default (like I suggested doing with BS Explorer) then it should just load to the desktop with that shell.

If you did select BS Explorer, you will have a task-bar, the familiar Windows Classic "Start" button, and various application icons on the desktop.

So what can you do?  A lot!  Click on the Start menu and get playing (carefully as there could be a lot of high-powered tools here).   

I wanted to cover the basic (easy) approach first as it was a quick and easy way to get familiar with the VistaPE WinBuilder program and process.

Advanced Techniques

If this worked successfully for you and you are comfortable, try selecting the VistaPE Project again but going into all the detail sub-project elements and selecting them ALL or even maybe the VistaPE MulitBoot at "Complete" setting for your second attempt.

Then expand and go into the details "+" sub-project elements and click-away to your heart's content adding additional tools, recovery options, applications, office applications, browsers...etc.  Add and remove depending on your needs and what size you want your final ISO/CD/DVD-media size to come in at.

There are so many options and possibilities, it is simply amazing. 

Once you have picked all the elements you want to add, and have everything checked off (tip: by default some sub-element items are not checked, even though the upper box is, to select all at once, uncheck the higher element then re-check it.  The container objects underneath should all be checked now). 

If you are doing the VistaPE MulitBoot (Beta) project, pay special attention in deciding if you want the "VirtualTest", "Slax Linux," and "OtherOS" options checked.  That will greatly increase the download/build time as well as space required to build. 

Make sure you have sufficient quantities of both!  And forget about doing it without a broadband connection to the net!

Then follow the steps again to "Download" the script elements first.

Finally, when the downloads are done, go back to the "Scripts" and walk through all the options again and adjust accordingly.  It will take much longer this time but the steps I've outlined should be pretty-much the same.  Hit the "Play" button when you think you have it all set up the way you want and let the building begin.

At first it may be a bit confusing for the uninitiated in selecting your build project (VistaPE or the Vista PE Beta) and then selecting the default/additional script sub-project items and individual elements/programs for inclusion.  I don't really feel I have done as good as I job as I would like explaining that part, but take a while to play with it and select down through the sub-project elements and you should see what I mean.  You will pick it up quickly after the first couple of project builds you create. 

Then you can begin selecting other project servers and looking at the additional projects they offer as well.

Gallery Ready: A VistaPE Complete Build

VistaPE_Grub4Dos

GRUB4DOS - Pick a Boot mode!

VistaPE_PreBoot

Starting Windows Vista (WinPE 2.0)

VistaPE_Splash

My, what a pretty Vista splash Screen, you have VistaPE!

VistaPE_v011_Complete

All dressed up and places to go: tools, utilities, browser, and much much more!

Back to that "Everyone" Security Thing

Call me an alarmist, but I just don't feel comfortable leaving a folder/zone on my drive with the "Everyone" account on it and full rights.

Looks like a playground full of mischief waiting to happen.

What I do is this: Once I have completed my VistaPE building activity for the day, I go back to the folder, right-click and select "Properties" then the Security tab.  I select the Everyone account group I made, then go to the window below and unclick all the "Allow" checkboxes. 

When I apply the change this effectively removes the "Everyone" account.

Next time I need to do more building, I go in and recreate it with the rights and do my building again.

There are other ways (setting the items in the account to "deny" or deleting the account at the top, but I just personally like this technique.

Were any malware or other baddies get on my system, it would prevent them from using this folder as a launching ground for rouge behavior.  It's not perfect, but is better than leaving it there.

Final Thoughts: Refined and Rehashed

As in my original post, these thoughts remain unchanged.

WinBuilder VistaPE and BartPE are very similar in that you need to have some base Windows files to build the PE environments...with BartPE you have to have the XP setup disk and WinBuilder VistaPE does not require a Vista setup disk if you have the WAIK instead.  They both are based on scripts, but with BartPE, you must manually download the "plugins" into a plugin folder then download and configure (if needed) many of the actual applications you want to add.  WinBuilder VistaPE allows you to select the scripts/applications you want, then goes and downloads/and installs them for you automatically.

BartPE requires you to adhere to Microsoft's more restrictive PE 1.0 licensing requirements for usage.  Win PE 2.0 is free and open for all...no version of Vista setup disk is technically required to build these disks.  No limits on how many you may create or have in use at any given time.

BartPE does allow you to "slipstream" XP SP-2 in the build process if you only have a XP or XP SP-1 setup disk.  This is a nice feature.  Vista doesn't have SP-1 released quite yet (maybe later this week?) and I don't know what real value it could add to the Win PE 2.0 environment.  However, I am sure the VistaPE WinBuilder team will be taking this into consideration if they feel it is warranted, but I really don't think it will be (at this stage at least).

I love and will continue to use BartPE disks, but VistaPE will likely be an integral part of my CD-case from now on as well.  Especially now with the release of the slick version 011 release.

Props to NightMan and his team of contributors who have really done an outstanding job with this project.  I can only dream of the direction future versions can take.

Here are some more WinBuilder help website pages that might be of help:

WinBuilder Help Manual

WinBuilder Start Guide

VistaPE - Configuration

I've tried to be as accurate as possible in my post.  If you find something incorrect or radically different, please let me know.  I hope that this encourages others to play with this powerful PE 2.0 building tool of NightMan's.

Best Wishes!

--Claus

3 comments:

Bruce said...

Great blog post - keep it up!

Anonymous said...

Nice post- thank you :)

Anonymous said...

Excellent work and a finely detailed explanation. Thanks for all the hard work!