How branching works for installing updates


I was asked this question the other day and I thought it would make a good quick entry in the blog.  A customer was having difficulty installing a particular update but they werent getting any kind of error message when they attempted the install.  The customer could tell that the update wasnt applying because the version of the file in the update was not changing to the version number specified in the KB article.  (BTW, this is exactly how you should determine if something is installed or not, many customers use the date of the file but that’s never accurate).  When the engineer working on the case asked me about it, they asked it in a way that I wasnt expecting.  The question I was asked was:

“How do I force GDR/LDR branching on an update in Windows?”

This is a great question.  First, in case you havent heard the terms before, GDR is General Distribution Release and LDR is Limited Distribution Release.  In general terms, GDR versions of files are generally the version that files are after you do a clean install of Windows and then after installing a Service Pack for Windows.  LDR versions of files are those shipped in between GDR releases and are usually shipped in the form of Windows Updates, QFE’s (Quick Fix Engineered files) and private fixes built for instrumentation.  Why would you want to enforce a particular branch of a file?  Typically because a particular branch of a file might contain a slice of code that addresses an issue where another branch of the same file does not.

On Windows 2003 systems and earlier, you can force the branching of a file by using the switch /B:RTMGDR for GDR branched files or /B:RTMQFE for LDR branched files.

On Windows Vista/2008 systems and greater, branching has been deprecated and no longer takes place.

So, back to our customer.  The customer was running Windows 2008 SP2.  When we looked over the version of the file in the update they were trying to install and the version that was on their system, the version on their system was greater than that of the one in the fix. So in this case, we wont install that update.  If the customer wanted to install that version of the fix, and their might be a good reason to do so, then they would need to remove whatever update on the system updated the file and then reinstall the update that previously wasnt installing.

–Joseph


Comments (22)

  1. @someone:  We'll talk about Win8 at the appropriate time

    @dj:  Yes, you can use pkgmgr if you really, really wanted to.  Should you?  Depends on what you think you're going to accomplish by applying a specific update in a specific way.  The whole point is that servicing now works in a way that you dont have to do this like you had to before.

  2. I guess I'm not getting what you're looking for answer-wise here.

    A Service Pack is not an OS, so no, it does not contain all of the files that are included within the OS installation disk.  A Service Pack typically includes all of the Windows Updates from a specific point in time and may include some new features as part of its release.

    When the Service Pack is installed, it updates the files it contains to the GDR branch from the files that currently reside on the system, regardless of that files current branch UNLESS that file is a post service pack update, in which case its not touched.

    So yes, you would be correct in saying that post Service Pack install, "most" files would be at GDR branch but "all" of the files would not be at GDR.

  3. @Dean

    no, Dual-branch Servicing will always be used in Windows. Only Office still uses 1 branch and with security updates you get hotfixes, too. But in Windows there are still 2 files. 7601.17xxx for GDR and 6.1.7601.2xxxx for LDR on Windows 7 Sp1.

  4. Branching and supersedence are different concepts here.  What I was getting at was that update applicability is determined by supersedence within the branching for the file, unless that update is a Service Pack, in which case you move to GDR for those files.

  5. It's taken care of by the servicing stack during the operation by checking the branch of the file and the supersedence of that file against what is already installed on the operating system.  If you supersede, you're installed.  If you do not, you'll get an error message or the update will simply fail to install in a graceful fashion.

  6. Sounds like you're trying to bait me into some sort of answer here and I am not sure why.  But to answer the question, a Service Pack install will update all files it contains with SP1 GDR branched editions of those files unless a post Service Pack version of the file was already installed on the system.

  7. Hi Joseph,

    nice to see more blog posts of you 🙂

    You can force the LDR installation by extracting the MSU and the CAB file and installing the update-bf.mum with pkgmgr/DISM.

    Here you see what I suggested years ago on connect, give better error messages why an update can't be installed. "the update doesn't apply to your PC' is not useful. Maybe we get this in Windows 8.

    André

  8. @Dean;  As Andre stated,no, what I am saying is that we now take care of branching for you so you dont have to force branches as might have been the case in the past.  Even in the pre-2008 days, it was rare, but it happened.  That's why I wrote this blog, in case anyone wanted to know what happened the the /B switch when working with updates.

  9. Branching and supersedence are different concepts here.  What I was getting at was that update applicability is determined by supersedence within the branching for the file, unless that update is a Service Pack, in which case you move to GDR for those files.

  10. Pronichkin says:

    *milestone, of course 🙂

  11. only the option in the installer to force LDR installation was removed. But you can use pkgmgr to install the bf.mum if you want to force the LDR installation. 1 Note here. You must install the normal version (GDRs, too) otherwise WindowsUpdate detects missing updates. It looks like WU checks the GDR files. I forgot to add this …

  12. Pronichkin says:

    Well, I personally would aviod saying that Service Pack is GDR. It is a separate mailstone. It effectively brings both LDR and GDR updated files to a new “common denominator”. From where they can be updated further on.

    Secondly, even if you'd like to play with the -bf mums, you should not use pkgmgr for this since it is a deprected commain in Win7. Please use DISM instead (social.technet.microsoft.com/…/3323.aspx).

  13. Hey Andre, long time no see 🙂

    Yes, you can technically force the package in that way but we no longer have a quick and easy way to do this, the servicing stack takes care of the branching for us now.

  14. @Dean

    the installation is the same like always. The installer, in NT6.x the servicing stack, looks which branch the file is ( in Nt 6.x which component becasue >= Vista are component based operation systems based on packages) and if you already have a LDR fix installed for that component you get the LDR version if the update has both version included (like security fixes). Only the parameter to force the installation of LDR files was removed. In this case extract the update and use pkgmgr.

    But I suggested several years on connect, that users should get better error messages why an update "doesn't apply to your computer'. I think this is why you ask Joseph this.

  15. Oh, *deprecated* you say.

    Is *that* why you make it so incredibly convoluted and inconvenient to do:

    "pkgmgr /ip /m:update-bf.mum /log:xxxxx"

    I apologize for the sarcasm, but really now. Nearly every hotfix seems to include both GDR and LDR service branches for the *same* SR level. If I *really* wanted to play it safe, I wouldn't be applying hotfixes in the first place.

  16. Its really interesting to get this information, however, Thanks Joesph.

  17. anony.muos says:

    answers.microsoft.com/…/24d384c0-40d7-4ed3-865e-6044f4caa90a

    WIll WIndows 8 do anything to tremendously speed up installation of updates and to conserve disk space by not backing up older versions of components? The Windows 7 servicing mechanism is an unmitigated disaster.

  18. Dean says:

    So are you saying that the "General Distribution Release and Limited Distribution Release" stuff is gone now ? There is only ONE version of any file ?

  19. Dean says:

    Joseph,

               You didn't exactly say HOW 'we now take care of branching for you'.

  20. Dean says:

    Joseph,

               I'm not understanding how whether the VERSION of the file ( if it's newer or older ) has to do with if it's GDR or LDR. Can't you have FOUR versions ? An old and new  ( GDR ) and an old and new ( LDR ) ?

  21. Dean says:

    So a service pack always always always replaces EVERY single windows file with NO exceptions ?

  22. Dean says:

    Wasn't trying to bait anything. Just trying to get a straight answer.

    You said "unless that update is a Service Pack, in which case you move to GDR for those files"

    So then my mind asked the question for WHAT files. ALL of the windows files ?

    Now your saying " Service Pack install will update all files it contains"

    So now what your saying is that a service pack does NOT update ALL of the windows files but only SOME of them ? So in the end not ALL of the files will end up GDR files and there will still be LDR files left ?

    You don't understand how confusing this is.