Not everybody with a non-Windows partition type is a geek


In the discussions following why Windows setup lays down a new boot sector, some commenters suggested that Windows setup could detect the presence of a non-Windows partition as a sign that the machine onto which the operating system is being installed belongs to a geek. In that way, the typical consumer would be spared from having to deal with a confusing geeky dialog box that they don't know how to answer.

The problem with this plan is that not everybody with a non-Windows partition type is necessarily a geek. Many OEM machines ship with a hard drive split into two partitions, one formatted for Windows and the second a small non-Windows partition to be used during system diagnostics and recovery. The presence of this small non-Windows partition is typically not well-known, and it comes into play only when you boot from the manufacturer's "system recovery CD".

The upshot of this is that if Windows setup took the "anybody with a non-Windows partition must be a geek" approach, it would end up tagging an awful lot of people as geeks who really aren't.

Now, you might say, "Well, only geeks install the operating system anyway. Normal people typically buy a computer with the operating system pre-installed. The fact that they are running Windows setup proves that they're a geek in the first place. Therefore, Windows setup should be optimized for geeks." Indeed, the premise of this argument—that only geeks run Windows setup—is true, but only once you've reached steady state. In the months immediately following the release of a new version of Windows, everybody is installing the operating system, geeks and non-geeks alike. (There is also an influx of non-geek people installing Windows every Christmas.) Magazine reviewers are writing boatloads of articles on the new operating system, and the initial setup experience is the very first thing they notice about Windows. It had better be smooth and painless.

Comments (79)
  1. Lon says:

    Some sort of special keypress during install startup (along the lines of ‘boot to safe mode’) might be one way to balance geek-friendliness with idiot-proofing.  It would prevent most users from inadvertantly seeing options that they can’t make intelligent decisions about while allowing power users to do what they need to do.  

    This keypress could even be documented in some some sort informational medium.  Perhaps several pieces of paper bound together in a convenient handheld form?  Someone ought to invent something like that.  People must have had some way of recording and transmitting useful information before the invention of the internet and cd-roms.  I’ll ask my parents.

  2. Robert Moir says:

    Lon,

    So this keypress. The documentation for it. Is it likely to read "If you’re a geek, press this button" or is it likely to read something like "Advanced users may want to press this button in order to access further configuration options".

    I think it’ll be more like the latter option, and run into the problem already discussed here of asking users to assess their own ability reliably.

  3. Steve Loughran says:

    I know we have to deal with boot disk images on sparate partitions. But why? Because MS cracked down on separate OEM install CDS/DVDs and the PC OEMs, eager to save 20c per PC jumped for it.

    "You break it, you fix it", as they say to Bush and Blair over the middle east situation.

    How about recognising a windows fix paritition and treat that separately from a legit installation of a real OS. That gives me an idea. How about I complain to my EU representative that its done deliberately to stop linux working. It doesnt matter if that’s true or not, it’s the thought that counts.

  4. Diego says:

    Not having a boot loader configuration option is one of the reasons windows install is so painful…hide under an "advanced" feature button in the new vista partitioning tool, so newbies will still get their boot sector overwritten by default. By the love of god, we’re not in the 90’s anymore.

  5. Buo says:

    Would it be too hard to identify if LILO or GRUB are present in the MBR, and leave it alone if they are?

    It’s an honest question. I believe it should be easy but I don’t fully understand the implications.

  6. vince says:

    Modern Linux installations handle this properly.  They detect existing windows partitions, and even offer to resize them to make extra room.

    Even OSX can detect existing Linux partitions and deal with them properly.

    The fact that windows can’t deal sanely with this shows an incredible amount of laziness on MS’s behalf.  

    As with IE, they’ll probably claim that no one really wants this feature up until they start losing market share, and then suddenly implement it while trumpeting it as some sort of "innovation" on their behalf.

  7. thomasa88 says:

    "If you dont know what mbr is click continue?" and if they still click they want to poke: "Warning! Changing … may make your computer unusable!"

  8. namenlos says:

    Why in the world does every system seem to get this right except Windows? A little "Advanced"-button with some warning behind it that you should not tinker there if you don’t know, what you doing and everything would be fine. I don’t even expect the setup to identify other partitions and their respective operating systems (even if other operating systems manage to do this properly). I agree with vince that this looks like pure laziness on MS’s side.

  9. I think that the premise that all people who install Windows are geeks simply because they are performing and installation is untrue.  The reality is that a Windows OS installation is generally quite painless and simple – especially when using OEM recovery disks with all the drivers present.  I suggest to everyone that I know that they reinstall their OS on a regular basis since non-geeks tend to destroy their machines one way or another fairly often (viruses, root kits, bazillions of random downloads all installed and running, etc.)  Most people can handle this even if they dread the idea.  And once people are used to keeping their data backed up they get comfortable installing over and over again so the numbers pick up in that segment.

  10. Squibble says:

    Non-geeks are probably installing Windows more often than geeks, as a reinstall is usually the quickest and simplest way to solve whatever problem they’re having (malware, driver issues etc.)

  11. Matt Michie says:

    I can’t tell if your blog supports trackbacks or not, but I’ve responded at:

    http://hivearchive.com/2006/07/11/microsofts-intentional-ignorance-of-other-operating-systems/

    It is really disingenuous to claim this is a difficult problem to solve, when as others have pointed out, every OS other than Windows has solved this issue.

    [It depends on what your definition of “solve” is. Is it “Windows Setup should understand LILO and add itself to the LILO boot sector?” What if LILO changes after Windows 2000 ships? Who decides which boot loaders are supported and which aren’t? You say LILO makes the list. Does GRUB? XOSL? Will System Commander file a lawsuit because they were left out? -Raymond]
  12. Lon says:

    Robert,

    At a certain point you have to accept that a small minority of users will do the Wrong Thing at the Wrong Time.  It slipped my mind while posting earlier, but there is in fact a precedent for this.  When installing XP, during the initial startup, there is a message along the bottom of the screen that allows a keypress (F6, I think?) to break out of the startup and load SCSI drivers from a floppy.  The same technique would work fine here.

  13. Brian says:

    Raymond is right.

    Complicating Windows setup for normal users isn’t worth it because the needs of people who are non-technical outweigh the needs of the tiny technical minority (who will figure out their own solution anyway).  How common do you guys really think dual-booting is?  Change your Cheetos-stained t-shirts, go outside, blink like a mole in the sunlight, and look around.  Wow, almost no one who wants to learn anything about this magical "detect my LILO partition" option!  And, yes, they will notice the button or link or whatever you make it.  That becomes another decision point and when you are nontechnical decision points like this cause anxiety and confusion.

    Linux use is almost by definition restricted to geeks, so asking, "Why doesn’t Windows just do what blah blah blah distro does?" is missing the point.  Something geeks do with alarming frequency when it comes to assessing the needs of normal users.

    Which is why, you know, Linux market share is around the statistical margin of error.  And every year is the "Year of Desktop Linux Adoption".  Again.

  14. ::wendy:: says:

    I know some none-geeks who have installed XP.  Their story:

    They originally bought their machine with XP installed on it,  then it get ‘very slow’ after a year or two of use.  Their diagnosis was that they’d probalbe got all sorts of strange invisible things on their computer thuough using it with the internet.  Solution = clean it.  How to clean away invisible things?  REINSTALL THE OS using.  

    Re-installing the OS is cheaper than taking a ‘dodgy’ pc to the PC doctor.  

  15. ajb says:

    In the months immediately following the release of a new version of Windows, everybody is installing the operating system, geeks and non-geeks alike. (There is also an influx of non-geek people installing Windows every Christmas.)

    You answered your own question.  Run setup in ‘geek mode’, unless it is 2 weeks before or after Christmas, or within 3 months of the release date for the OS being installed, in which case you run in ‘Average Joe’ mode.  Duh.

  16. Daniel says:

    Run setup in ‘geek mode’, unless it is 2 weeks before or after Christmas, or within 3 months of the release date for the OS being installed, in which case you run in ‘Average Joe’ mode.  Duh.

    That would lead to some “interesting” support calls: “I installed Windows 3 weeks ago and it didn’t do this!”

    The best solution (IMHO) is to have a “Don’t rewrite MBR” option somewhere with a nice big “Your computer won’t start until you update your bootloader!  Are you sure?” message when selected.

    [Scaring the bejeezus out of a user during setup is not the best way to coinbvince them that computers are easy and fun to use. Every question you ask during setup is a liability. The benefit had better be enormous. -Raymond]
  17. Stu says:

    Why does Microsoft just not get the idea of putting advanced options behind a button marked "Advanced"??

    It seems that Microsoft is building the OS to the lowest common denominator, "if an idiot doesn’t understand it, don’t include it" principle.

    Why?? Surely you should target the OS towards the intelligence level of the middle of your usebase, but provide provisions for those above and below that level.

  18. Cody says:

    > Why does Microsoft just not get the idea of putting advanced options behind a button marked "Advanced"??

    I think the point that has been made here is that many users that should not tinker with "Advanced" options will do it anyway, and then they will blame Microsoft for putting in options that break the system.

  19. jmmv says:

    "(The setup) had better be smooth and painless."

    I have to disagree here.  It is not painless when it destroys the boot configuration that another operating system installed.

    Also note that it is a fact that non-geek people (ok, few of them) are installing Linux in their machines.  These people may need to reinstall Windows some day and, if it destroys their boot loader, they will be unable to restore it without a full Linux reinstall (remember, non-geeks!).

    The idea of adding a special keypress to enter "advanced setup" (which could allow you e.g. to not touch the boot loader) makes sense to me.

  20. Dewi Morgan says:

    If the problem is geek-detection, then have the option past a "geek-gate": a hurdle that only geeks would pass.

    Geeks will read the readme on the disk. Regular users will insert the bootable disk and boot from it. So a commandline param or a note saying "hit Key Fx at time T to enter geekmode" will work.

    There are lots of precedents for this. The Scsi drivers option is one. Another is the windows boot menu where there are hidden function keys you can press to get special modes listed in the menu (safe mode with extra cheese, etc).

    Another alternative might be to let bootloaders have an "ask before overwriting me" flag – say, have bytes X to X+6 set to "PROMPT". This is placing the decision about hwo is a geek into the bootloader authors’ hands, though: maybe not the best option.

    The upside of permitting people not to have their data trashed, is that geeks who almost know how to restore the boot sector to its previous state, don’t have to do that, which actually saves MS exactly nothing. So isn’t really an upside for MS, even though it might save the user grief.

    The downside is that there is then another code path, and the attendant coding, support, documentation and testing costs for that path. Personally I believe that "not trashing the users’ data" is an important enough cause to bear the cost, but then, I’m a geek.

  21. vince says:

    This is sort of a self-fulfilling problem anyway.  Part of the reason alternative OSs aren’t around is because MS has made it so difficult to dual boot.

    So MS saying they won’t support dual booting because no-one uses it is sadly amusing in a way.

    DR-DOS, OS/2, BeOS, NextSTEP, FreeBSD, x86 Solaris, various Linux distros.  There’s been a lot of variety in available OS’s over the years, so it’s not suprising MS has refused to support dual booting.  

    Claiming it is some sort of technological hurdle or user-frienliness move rather than an intentional business decision is a bit suspect though.

  22. Stu says:

    Kuwanger: Microsoft already has a dual-booting standard.

    The Windows NT/2000/XP/2003 bootloader can be made to boot other operating systems. You will need to have a copy of the other OS’s boot sector in a file on your NT partition, which is the problem, as with NTFS being completely closed, you need Windows to be able to safely write to NTFS, therefore other OS’s cannot add themselves to the NT bootloader automatically.

    If only MS would document NTFS…

  23. Matt Michie says:

    [Windows Vista setup doesn’t ask that strange NTFS question any more (thank goodness). And remember the article topic: Most drive have some bizarro partition on them. Asking the user an incomprehensible question about boot sectors just makes them say, "If I knew I needed a computer science degree to install an operating system, I’d have used Linux." -Raymond]

    Yikes, so Vista just blindly decides to format/reinstall or upgrade without any user input?  I guess we’ll just have to agree to disagree on this one.  You’re right though, just blindly overwriting the hard drive does make a simple install :)  You should try out the latest Ubuntu sometime, so far it has been the easiest install I’ve used on any operating system, and I’ve done everything from DOS to OS/2 to BeOS to Solaris to OSX to Windows.

    Cheers,

    Matt

  24. Julian says:

    It really shouldn’t be difficult: if the drive has an existing non-windows OS, then an active partition will be (99% or greater probablity) not FAT16/32 or NTFS. In this case offer the "Advanced Boot Option" during setup. No restore partition should be marked bootable so it won’t trigger on these. Empty disks won’t have a matching active partition.

    The real reason for Windows always overvwriting the MBR is simply that Microsoft doesn’t want to help with multi-booting. Pretty much every other modern OS can handle this, so why doesn’t Windows?

  25. David Hunt says:

    It looks pretty clear (to me at least) that the only scalable solution that doesn’t place additional work on people to support products that aren’t their own is to make the hardware handle the role of ‘master bootloader’.

    How does EFI boot factor into this debate?

    [Once again, x86 is the weirdo. Everybody else does multiboot in the BIOS. (A little web searching says that EFI support on x86 was originally planned for Vista but got postponed to Longhorn Server, alas.) -Raymond]
  26. Weiguo says:

    <i>Why?? Surely you should target the OS towards the intelligence level of the middle of your usebase, but provide provisions for those above and below that level.</i>

    yes, surely you should, if you want to shrink your market.  This is fine for Linux users who want to feel exclusive in the "you have to have passed the test of intelligence and persistence in the face of clumsy interfaces and 5 million options" club.  But Windows is an OS that can make money; good reason to actually attempt to satisfy customers and sell more copies.

    what sense does it make to target an OS above the intelligence of a significant portion of your target market?  I can understand an OS written for someone less intelligent than I am; one written for someone MORE intelligent means I’m out of luck.  About the only people you’ll offend with an overly dumbed-down OS are the Linux geeks who never would have used your OS in the first place.

  27. Yuliy Pisetsky says:

    What about a command-line parameter to the setup program? i.e. "setup /dualboot"

    A non-advanced user will not go looking there, while this still gives the user a chance to get to the advanced configuration.

  28. Stu says:

    Weiguo: You optimise your OS towards the middle level, but you make it usable at the minimum level.

    You do this by having sane defaults, so that a "low" user doesn’t have to set anything up, but you still allow those defaults to be changed.

    You don’t dumb-down the OS. You make it so that it is easy to use.

    Easy to use != dumbed down.

  29. Kuwanger says:

    Stu: No, the problem isn’t that NTFS is closed.  The problem is that you can’t very well make a copy of your OS’s boot sector to a partition that doesn’t exist.  Clearly the standard would have to be written in such a fashion that any OS of the standard could be installed first, last, or anywhere inbetween without one’s boot sector overwriting another.  That means either supporting a standard boot system for all OSs (fat chance) or having a system in place where each OS can, through user invocation (possibly post-install) reorder the chain loading of boot sectors.

  30. andy says:

    Sure, there are lot’s of problems getting the correct balance. But just deciding that the problem is impossible to solve is too weak, in my opinion.

    Maybe take advantage that most non-geeks won’t notice a *small* "Partition Options" command (e.g. could be just a "hyperlink") in one of the setup dialogs? Most of them will just click "Next" instead. I believe you’ve written about this behaviour earlier. And if a novice user accidentially clicks into this dialog then give them a warning where the default option is to cancel "advanced partitioning mode".

    I would prefer to click twice/thrice to come to such a place where I can configure my parititions correctly, instead of not having the option.

    But I guess you’re not working at the Windows setup team, so it isn’t worthwhile to write a more extended comment here.

  31. Brian says:

    "You don’t dumb-down the OS. You make it so that it is easy to use."

    Yeah, like Linux.  Those distros really set the standard in ease of use.

  32. Stu says:

    Brian: Err… No. Linux is not easy to use. The easiest to use OS I have seen has to be MacOS classic. (System 7 was best.)

  33. Nar says:

    Why are you talking about partition types, when it’s the MBR that matters. Maybe you could detect and handle LILO or grub, or at least offer to add other partitions to the NT one. It’s not magic, and other people have done it for a long time.

  34. Carlos says:

    People who think that Windows setup’s limitations are some kind of anti-Linux plot have obviously never tried to install Windows 98, NT, 2000 and XP on the same computer.  (Hint: install Windows 98 first, then the NT-based operating systems in order of release.)

    But this is all history; if I need to run multiple OSes I use virtual machines.  Doesn’t everyone?

  35. Michael Cecil says:

    I’d be happy if Vista didn’t require booting from hd0 and could boot from the boot record written just to the partition where it is installed.  That way I could use the XP boot loader to load XP, Gentoo and Vista the way I like.

  36. andy says:

    “What if LILO changes after Windows 2000 ships?”
    Then please include a fix for this in the next service pack.

    Options to handle the “leave no boot loader outside”-problem:
    1) Just ignore what kind of boot loader is installed and let users handle the situation themself. E.g. “do not wipe out the MBR, I’ll adjust my boot loader after setup myself. Thanks Windows!”

    2) Do something similar as you do to support RAID. Tell the user, and assume the user is “advanced” (see above about hiding the functionality), that it has detected a boot loader and ask for a “driver disk”/USB storage device which allows Windows Setup to handle this boot loader

    So, it is assumed that users themself knows which kind of boot loader is installed (maybe Windows can display a little hint, such as the first bytes of the MBR-code, to help out?).

    And it is now up to the “boot loader manufacturer” to decide if they would like it to be detected by Windows or not. I assume you haven’t got any lawsuits by RAID manufacturers about the way you handle them…

    Yes, you do need to create a standard for these “boot manager drivers”, which is the biggest drawback to this solution in my opinion.

    3) Please DO NOT just wipe it out. That is just a bad, bad, bad solution.

    Finally, Brian wrote:
    “How common do you guys really think dual-booting is?”
    Should be quite common for people at college and universities, because *NIX is quite common there and teachers expect them to use certain tools (e.g. simulators) for their tasks.

    Personally I’ve tried to use Services For UNIX as much as possible, but most of the time it has costed me much more effort then dual-booting with some *NIX. Sure, VM is an option here but unfortunately they don’t handle graphics very well currently. Hopefully Windows Codename Wienna will make life easier with the Hypervisor (obviously may not be included in the final “Wienna” since it is far from finished ;))

    [“Then please include a fix for this in the next service pack.” Ah, no good deed goes unpunished. What started out as a favor turns into a recurring support cost. -Raymond]
  37. Cooney says:

    Gee Raymond, who are all these noob people installing windows? Most people that I know with windows don’t do the install, and the recovery disk (which eats your data) is utter garbage.

    Do the right thing – offer an option, saying that you found some stuff, and ask what to do. Right now, installing linux is easier than windows.

    This is, of course, moot to me. Ever since windows required activation and that stupid little WGA wart, I stopped upgrading.

  38. Matt Michie says:

    “[It depends on what your definition of “solve” is. Is it “Windows Setup should understand LILO and add itself to the LILO boot sector?” What if LILO changes after Windows 2000 ships? Who decides which boot loaders are supported and which aren’t? You say LILO makes the list. Does GRUB? XOSL? Will System Commander file a lawsuit because they were left out? -Raymond]”

    I would suggest that if it detects it, ask the user if they want to overwrite the boot sector. Leave it up to them to figure out how to add it to their multi-boot software. Your definition of “solving” the problem, leaves me with a broken system.  I agree that most users shouldn’t have to deal with this, but the heuristic for detecting this is fairly simple.

    [“if it detects it…” That doesn’t address the issue of *how* to detect it. Do you hard-code LILO, GRUB, XOSD and hope that System Commander doesn’t sue? Do you just assume that anything that isn’t a Windows MBR is a multiboot? (That means every user will get the prompt when the install Windows on a brand new hard drive.) -Raymond]
  39. Norman Diamond says:

    Tuesday, July 11, 2006 10:39 AM by Robert Moir

    > Lon,

    > So this keypress. The documentation for it.

    There’s already a keypress that’s possible when the installer says to press F6 for something or other.  The documentation is in Knowledge Base articles, which say that when the prompt says to press F6 for something, you can press F5 for something else or F7 for something else.  If another Knowledge Base article would say you could press F4 to preserve your existing MBR, and if the article would be findable by ordinary searches, maybe it would be acceptable.

    Tuesday, July 11, 2006 10:48 AM by Steve Loughran

    > How about recognising a windows fix

    > paritition and treat that separately from a

    > legit installation of a real OS.

    It already does!

    Tuesday, July 11, 2006 12:30 PM

    > Is it "Windows Setup should understand LILO

    > and add itself to the LILO boot sector?"

    > -Raymond]

    Maybe it should just be more like recognizing a command (keypress) to not overwrite the MBR, and content itself with writing its PBR on its own partition (i.e. the partition where its Windows folder or renaming thereof was installed to).  If the user has an MBR that they want to keep using, then they also have the responsibility of using their boot configuration tools to add their new Windows installation to their configuration.

    > [Scaring the bejeezus out of a user during

    > setup

    It’s not fun during recovery attempts either.  I’ve had both of the following situations:

    (1)  Suspect that the user has a boot virus but not be sure.  Use recovery commands which I think are fixmbr and fixboot.  Get a scary warning that the existing MBR is nonstandard so rewriting might actually make the existing installation unbootable.  Eventually decide that’s the way to go anyway.  After not fixing the problem, repeat these commands, and repeatedly get the same scary warning even after it’s pretty obvious that the MIcrosoft’s tools did already write Microsoft’s standard MBR and PBR.

    (2)  Not get any such scary warning, but eventually figure out that the user really did get a boot sector virus while Windows XP was running (I think it was called Wyx).  Eventually figure out that the person really did find correct recovery instructions, that every partition on the hard drive has to be deleted and then the MBR rewritten from scratch.  Unbelievable but it worked.  Anyway this is a case where a scary warning would have been appropriate, but it wasn’t shown.

    > [Windows Vista setup doesn’t ask that strange

    > NTFS question any more (thank goodness).

    That question used to me meaningful.  If the user had a backup of their data then we wanted to do a quick reformat during the reinstall.  If the user didn’t have a backup then we wanted to let the reinstall delete the old Windows and Program Files directories, leave the rest of the folders alone, and we’d figure out what parts of the Documents and Settings folder to delete afterwards.

    Then there was the time that a Windows 98 installation left my LILO MBR intact.  I never figured out how that happened, but of course I was happy to see that.

  40. Nathan says:

    “Will System Commander file a lawsuit because they were left out?”

    Will Red Hat sue you when you disable their OS?  Or perhaps a certain continent’s government?  I see you use this “avoid lawsuit” reasoning quite regularly, yet it rarely makes any sense – disabling the use of all other Operating Systems is clearly a bigger legal danger financially then leaving out some small company.

    “If I knew I needed a computer science degree to install an operating system, I’d have used Linux.”

    Heh.. its unfortunate that installing Linux is both easier and faster than installing Windows XP.

    1. Buy a new computer
    2. Try to install Windows XP. Doh, I need drivers to boot my SATA controller!
    3. Go to someone’s house and use their internet to get them. Or maybe boot a Linux Live CD, that actually lets me use my computer.
    4. Go borrow or buy a floppy drive and discs, since thats all I can use.

    Installing Windows XP is the very essence of geekiness.

    [The appearance of preferential treatment raises alarm bells for me (preferring one vendor over another). Better to treat everybody the same: They all get overwritten, doesn’t matter who they are. -Raymond]
  41. Matt Michie says:

    “That doesn’t address the issue of *how* to detect it. Do you hard-code LILO, GRUB, XOSD and hope that System Commander doesn’t sue?”

    I guess I’m missing something here.  

    If Master Boot Record is not Windows and the drive is formatted or is of a type other than NTFS/FAT32/FAT16 explain what you’ve found and ask the user how to proceed.  Windows setup already asks whether you want to format existing NTFS partitions, so I don’t see how that is somehow user friendly and understandable and using a heuristic to determine whether to overwrite the MBR is opening you to a lawsuit.

    If you were really worried about a lawsuit you wouldn’t overwrite the MBR at all.  Are you implying that Red Hat, Novell et all could bring Microsoft up on anti-trust charges because of the way Windows currently behaves?  I don’t think anyone here is advocating that.  

    I can’t help but feel that Microsoft just doesn’t want to deal with supporting alternative operating systems in any way.  I can understand that this could create a lot of hassle for you guys for not much return, why make it easier to use a competing system and the testing would have to be pretty intensive.  If that’s the case, just be honest about it.  

    I don’t believe for a second that a heuristic that handled most of the cases can’t be developed.  I’m sure there are some nasty edge cases that I haven’t considered, but then again  I’m not being paid $200 an install to get it 100% either.  In Redmond you guys have One Microsoft Way, but out here in the hinterlands,  please remember even if I have Linux or FreeBSD or Joe Bob OS, when I’m installing Windows I’m still a Microsoft Customer, and it is upsetting that when I install your product, you blindly overwrite a vital part of a system that worked before your software.

    Cheers,
    Matt

    [Windows Vista setup doesn’t ask that strange NTFS question any more (thank goodness). And remember the article topic: Most drive have some bizarro partition on them. Asking the user an incomprehensible question about boot sectors just makes them say, “If I knew I needed a computer science degree to install an operating system, I’d have used Linux.” -Raymond]
  42. Kuwanger says:

    ‘[It depends on what your definition of "solve" is. Is it "Windows Setup should understand LILO and add itself to the LILO boot sector?" What if LILO changes after Windows 2000 ships? Who decides which boot loaders are supported and which aren’t? You say LILO makes the list. Does GRUB? XOSL? Will System Commander file a lawsuit because they were left out? -Raymond]’

    Should I even begin to state how there’s an obvious answer?  It’s not like it’s unknown for Microsoft to just make up a standard and go with it.  If Microsoft were really interested in supporting a variety of dual-booting, they could make up a standard to support it and leave others to follow it with their choosing (and yes, people could sue over that, but then people can sue over anything).  However…

    ‘["Then please include a fix for this in the next service pack." Ah, no good deed goes unpunished. What started out as a favor turns into a recurring support cost. -Raymond]’

    And that’s exactly the problem.  Microsoft’s attitude is that of a monopolist.  Instead of thinking, "we could add this feature to gain some more market share", any ability to use another OS is seen as a recurring support cost (ie, it’s more a liability than an asset).  In the long term, this is the sort of attitude that motivates people to *never* install Windows.  I mean, why would I really want to use an OS that’s a hassle to work with?  And in the long term, isn’t it those minority of people who dual boot who are also the frequent developers?  With the fashion in which Microsoft seems geared to usurp every major application that is sold on their platform with their own version, the long term commercial ventures (IMHO) would seem to be one that should focus on developing for the Mac anyways.

  43. Miral says:

    "[The appearance of preferential treatment raises alarm bells for me (preferring one vendor over another). Better to treat everybody the same: They all get overwritten, doesn’t matter who they are. -Raymond]"

    I agree that preferential treatment is bad, which is why any plan that involves detecting the existance of a specific non-Windows bootloader and then trying to add yourself to it is doomed to failure.

    But there should be an option somewhere (even in one of those hidden-unless-you-read-the-docs function keys or something) that will prevent Setup from overwriting the MBR, and provide more options when configuring partitions (eg. maybe you really want your boot drive to end up being E:).  Definitely hide the options away from the casual user, for all the reasons you’ve stated before, but don’t remove them.  Customisability is king (so long as you can avoid confusing Joe Average with it).

  44. Brian says:

    Stu:  That was heavy duty sarcasm on my part.  Sorry!

  45. Geek/Nerd: derogatory term used to describe people smarter than oneself, who contributes rather than consumes.

    Why embrace it?

  46. Puckdropper says:

    I think the setup /multiboot option is one of the best ideas I’ve seen yet.  However, what happens when you start setup from a bootable CD?  Do you need to start the computer (using some form of CD-aware OS) to execute the special command?

    Here’s an alternative:  Don’t lose the original MBR.  Write it in a different location during setup then add an option to the FDISK tool (does Windows even have it any more?) that restores the original MBR.

    /nosetupmbr   Restores the master boot record to its original condition before running Windows set up.

  47. Tom says:

    @Vince

    "This is sort of a self-fulfilling problem anyway.  Part of the reason alternative OSs aren’t around is because MS has made it so difficult to dual boot."

    Actually it’s more like they haven’t made it easy. I always copied the boot sector to a file and then specified it in boot.ini back when I needed to multiboot a bunch of OSs.

    http://www.geocities.com/epark/linux/grub-w2k-HOWTO.html

    I reckon that legally, their are probably limits on what they can do, but not having dual boot support in Windows setup is probably ok, i.e. that they can’t make dual booting impossible, but they’re under no obligation to make it easy.

    And as Raymond points out, the ~97% of people who don’t dual boot would find installing Windows even harder if it asked them the sort of questions it would need to.

    Basically it comes down to whether you should inconvenience the least technical majority just to save a tiny ultra technical minority a few minutes futzing around with dd.

    And realistically, if they did add features to setup, do you really think the Linux zealots who complain about this sort of thing would stop complaining, or complain that it was some new plot to keep them down.

  48. Tom M says:

    97% of people don’t dual boot. probably 2% dual boot different windows versions and 1% dual boot linux. Not only is it not worth it for microsoft to make the lives of the 1% a bit easier by doing something for them that they can already (almost by definition) do themselves, but in fact they should probably be thanking microsoft because it gives them a) something to complain about (which they love), and b) an opportunity to show their friends, family coworkers how l33t they are.

  49. Stu says:

    Puckdropper: That sounds like a pretty good solution.

    When a non-Windows MBR is detected, dump it to a file and provide an option in FDISK and Disk Management to restore the MBR.

    There’s no option to confuse non-geeks, no need for Setup to know about third party MBRs…

    Why don’t you suggest it to the Setup people Raymond?

  50. BryanK says:

    Puckdropper: That’s exactly what LILO does every time you install it (it saves a backup copy of the boot sector that it wrote itself to, in a file named boot.abcd, where abcd are 4 hex digits corresponding to the device major and minor number that it wrote to).

    This is actually pretty useless after it runs once (because then it’s backing up itself, and removing the first backup), but the first time you run it, it’s good.  And presumably Windows setup would only be run once (lilo has to be re-installed to the boot sector or MBR every time its config changes; in Windows (or grub), you can just modify boot.ini (or menu.lst)).

  51. Why not have two install programs?

    One that auto-runs (called Setup.exe to match what it always has).

    And another called "somethingelse.exe" (make it very different from setup.exe) that you have to manually launch.

    Then the geeks can install using the seperate setup with advanced features.

    Yeah… it means two setup packages… but most of the setup will be the same code, you just prompt for options.

  52. Chris Becke says:

    @Tom M: I dislike that argument. At least some of that 97% that don’t dual boot, don’t dual boot because its too hard. Myself included.

    Well, I use my PCs bios settings to change primary drives when i want to change which OS boots. Given a – now 20 year – history of MS #*$!ing with my MBR, this seems the only safe way I can guarantee access to both OSes after any sort of re-install.

  53. ender says:

    While on the topic of bootloaders, how do you convince the Windows setup to write it’s bootloader to the correct disk? I was installing XP to a new computer that was set to boot from a SATA drive, but which also had the owner’s old disk attached as the secondary master (no drives on the primary channel, and the drive would be there for a few weeks only – just enough that the owner would find out which data he needs from the old drive). The setup happily added the new XP installation to the bootloader on the old drive (which was dual-boot 2000/98), and couldn’t be convinced not to do it any other way than to physically disconnect that drive while installing.

    [/syspart? -Raymond]
  54. CG says:

    Pretty much everyone who thinks they are refuting Raymond does so with the classic logical fallacies.  Argue something else, move the goalposts when Raymond answers, call MSFT a monopolist.

    It wouldn’t be so funny except… no wait… it is hilarious.

  55. David Walker says:

    I just wish I could mark a partition as non-active somehow.  It’s easy to mark a partition as active, but marking a partition not-active seems to be unpossible.

  56. David Walker says:

    Oops, I ran across DiskPart, which saysit can mark a partition inactive.  Why couldn’t I find that before?  Oh well.

  57. J says:

    "Right now, installing linux is easier than windows."

    Oh yeah, it was a piece of cake last time I did it.  I installed Windows first, and it was flawless.  Then, here’s how easy Linux was to install.

    At the bootloader prompt, I typed linux to start the installer.  Hmm, black screen.  Ok, I restart and this time search through the menus to find the command to turn the framebuffer off (it wasn’t nofb).  Ok, the installer started.  Wait, it’s installing kernel 2.4.  I restart the installer again, and search through the menus to find I need to type linux26 for this distribution to install the 2.6 kernel.  Ok, whatever, the install finishes and my system reboots.  Oh look, a driver crashed while trying to bring up the system for the first time.  So now I reboot using the install CD, start the installer and go to the point after it mounts the hard drive and then I start a console.  It took me a minute to realize I was in the ram disk instead of the hard drive (good luck figuring that out, newbies!).  I blacklisted the driver and restarted… success at last.  Except my wireless card and audio device didn’t work, so I had to rebuild and install a new kernel (having to run mkinitrd seperately and manually editing the grub config to load the new kernel btw).

    You’re right, that sure was easy!!

  58. vince says:

    J: You’re right, that sure was easy!!

    At least you had a working system in the end.  The last time I re-installed XP it demanded that I contact MS to verify my license (even though it was installed from the OEM supplied restoration disk).  I didn’t have a phone available, and the network wasn’t working (and I couldn’t diagnose it because the machine wouldn’t let me log in until the license had been verified).

    Solution… install Linux, which installed w/o a hitch.

    Proving I guess that the plural of anecdote isn’t data.

  59. J says:

    vince:  Duh.

  60. Norman Diamond says:

    [The appearance of preferential treatment

    > raises alarm bells for me (preferring one

    > vendor over another).

    Agreed.  Especially if the one preferred vendor is a monopoly.  So it would be surely better not to do any overwriting unless the user asks for it.

    > Better to treat everybody the same: They all

    > get overwritten, doesn’t matter who they are.

    > -Raymond]

    Ooooops.

    Wednesday, July 12, 2006 6:13 AM by Tom M

    > Not only is it not worth it for microsoft to

    > make the lives of the 1% a bit easier

    If Microsoft really felt that way, they wouldn’t include Microsoft Management Console or any of its snap-ins, which only 1% of users use.

    If Microsoft catered to the majority simply because the majority is the majority, then Vista would include built-in support for only one search engine:  Google.

  61. Miral says:

    "If Microsoft catered to the majority simply because the majority is the majority, then Vista would include built-in support for only one search engine:  Google."

    Existing versions of Windows and IE do, in fact, already only include built-in support for exactly one search engine: MSN Search.

  62. Hamish says:

    MS has always overwritten the MBR bootloader on install, MS has never changed which partition is active.

    I have heard arguments that this behaviour is undocumented, but MS essentially invented the partitioning format, so they get to define how it works and this defacto standard has not been changed since the earliest days of the MBR existing.

    This means that the answer is just that the defined function of the MBR bootloader is to load the first sector of the active partition.  Nothing more, nothing less.

    You want a fancy multi-boot thingy?  Stick it in a partition.

    You have an OS that supports boot-menus and other winkles?  It has its own partition.

    If you have a maintenance partition, they are not normally marked active in the partition table.  If you dont have any multi boot functions, then the active partition will be either the one that windows is creating or the one that windows is overwriting and it will continue to be the active partition.

    It seems that too many alternative operating systems are too busy saying that Windows does evil to sit back and realize that they have stolen the DOS/Windows disk partition format and not the other way around

  63. ender says:

    [/syspart? -Raymond]

    But where do I specify this if I boot from CD?

    Also, on topic of replacing the MBR, didn’t NT 3.51 restore the
    original MBR after it was installed? (it’s been a while since I
    installed it.)

    [I’m confused. I thought you were doing an offline install. (Installing to a drive that you intend to move to another computer.) If you’re booting off the CD then you’re doing an online install, in which case swap the cables before power on the machine. -Raymond]
  64. andy says:

    "the initial setup experience is the very first thing they notice about Windows. It had better be smooth and painless."

    And the "backup the current MBR"-solution, first mentioned here by Puckdropper I believe, would fit perfectly here.

    Add an option to diskpart.exe (so it is hard enough to find that users won’t do it by accident. Believe diskpart is closest to FDISK anyways) to restore the MBR.

    Not much work implied by such a solution:

    – Copy the MBR to a file during setup. I’m sure you do automatic testing of Windows Setup, so add a test case there to check if that file is written.

    – Add the diskpart option, which probably must be internationalized. Internationalization & documentation is probably the biggest task. Test is simple enough: check that the new MBR is identical to the MBR copied during setup.

    – If anything goes wrong the user can boot to Recovery Console and type the fixmbr command. If users knows enough about diskpart they should also know that RC is available and how it works. Or be capable to learn it quickly when necessary.

  65. Chris Becke says:

    I tend to agree with Hamish here. One way or another the "alternate" bootloaders are being broken by Windows Setup because they do not conform to the standard: That standard being that the MBR will simply load the boot sector in the active partition.

    If the "competing vendors" installation tools conformed to the  existing standard, then I’d be able to multiboot my linux and XP partitions seemlessly.

  66. Leonid says:

    It’s so amusing to see Raymond refusing to see any technical solution presented:

    * “This dialog is scarry”

    * “That would be support-costly”

    * “Those vendor(s) will complain”

    * “And detection is too damn complicated, so our OS, which already contail ~Gb of bloatness can not include it”

    Face it, Raymond, Microsoft have _decided_ not to support multi-boot for monopolistic reasons only.

    Every self-respecting Linux setup is able to detect Windows
    partition(s) AND mount it for you AND configuring bootloader for
    dualboot. All you have to do is answer “Yes”. Moreover, this question
    is being asked only if you actually _have_ Windows partition(s).

    It must be some extreme AI involved there, since MS is unable to comprehend that “detection algorithm”.

    Raymond looks silly in this argument. You decided not to support
    it? Fine, but please, don’t looks for some technical reson behind, it
    looks stupid.

    [The issue is not primarily technical, it’s one of usability and engineering. How usable is a computer that doesn’t boot? Note also that Windows Setup is an equal-opportunity offender: It even overwrites the MBR from other versions of Windows! -Raymond]
  67. Archangel says:

    “the initial setup experience is the very first thing they notice about Windows. It had better be smooth and painless.”

    Smooth and painless? Well, I tried installing a copy of Windows 2000 on my PC a few days ago. The major issue is that it requires SATA drivers, being a modern machine – so I located a USB floppy drive, plugged it in and faithfully pressed F6.
    Nope, no luck – USB keyboards aren’t woken up until well after the magic F6 point. Tried again with a PS/2 keyboard attached – this time it seemed to load drivers okay, but died when trying to write to the partition.
    Tried again with an XP disc. This time it seemed to load the drivers okay, then tried to find them again later on and couldn’t.
    So I spent some time slipstreaming them onto the Windows disc. This time setup gets to the third (are all those really necessary?) reboot, but Windows produces an UNMOUNTABLE_BOOT_VOLUME and stops.

    So finally, I gave in. It’ll remain Linux-only, because Windows’ setup is neither smooth nor painless.

    And to add insult to injury, I had to fire up a livecd and restore Grub several times, since the first thing Windows does to your hard disk is rewrite the MBR, irregardless of whether it’s put anything on the partition or not.

    Now I’m sure there’s something weird and wonderful about my setup that makes it much harder than usual for this hardware, but “smooth and painless” it is not. The first stage closely resembles the setup for MS-DOS 6.22, I can’t help but think that the absolute minimum necessary has been done to make it do the extra bits needed. If Bill G had issued a command from on high that it was a priority to make Setup nice, I’m sure it could have all been graphical, they could have asked all the questions up front (rather than scattered randomly throughout the install), sped it up a bit and eliminated one reboot for good measure.

    I think the best solution to the MBR thing is simple; have a hidden option at some point to press F7, which pops up a dialog saying “Do you want me to overwrite the MBR? Yes/No”. If it’s not offered to the user then nobody will know, but it might quiet some of the more vocal minority.
    Either that or improve NTLDR so it’s even remotely as functional as Grub, then one could just use that instead :-)

    [Smooth and painless is the goal. Obviously the goal was not achieved in your case, but that doesn’t mean it isn’t a valid goal. Or should the Setup team have said, “Rats, there are some cases we didn’t cover. Let’s give up on this smooth and painless goal and just be ugly and nasty for everybody”? -Raymond]
  68. BryanK says:

    Archangel: While I agree with you that Windows setup is neither smooth nor painless (at least, not 95, 98SE, NT4, 2000, or XP — all of them require way too many reboots during setup, and 10-20 more later, while installing drivers and apps; and although that’s gotten better in XP, it’s still not nearly as smooth as my experiences with Linux distros and their "install everything and the kitchen sink, then reboot once" operation), our personal experiences don’t prove the general statement.  As vince said up above, the plural of anecdote is not data.  ;-)

  69. Andrea Raimondi says:

    thomasas88,

    When did a "WARNING!!! WARNING!!" ever made a luser desist from continuing a hyper-dangerous operation?

    Andrew

  70. Marc says:

    Having read all this discussion, I must admit that Raymond answers only what he can answer and avoids replies to good suggestions like making a backup of the MBR and providing a magic key combination (What about ctrl+alt+shift+S+A+V+E+M+B+R? :-P).

    Maybe he simply can’t say “That’s a good idea” if he isn’t certain about the opinion of other people at Microsoft… :-(

    [The magic keystroke is not a good idea but it would take more than one sentence to explain why, so I put it into my blog topic queue. -Raymond]
  71. Archangel says:

    BryanK: My point was meant to be a little more general than it probably
    ended up sounding. Anyone with a USB keyboard and SATA hard drives (ie.
    a modern PC) won’t find the install smooth, because the keyboard isn’t
    initialised until after it asks them to press F6.

    Ironically, it’s the only point where it doesn’t work; prior to
    that the BIOS listens to it in a basic fashion, and later on proper USB
    drivers are working.

    [I’ve never had to hit F6 on any of my computers, and I like to think that I have a modern PC. Then again, all of my computers came with PS/2 keyboards, so maybe I’m not getting my PCs from the “hip cool” vendors. -Raymond]
  72. @Hamish: wrong in one point.

    Windows NT4 as well as 2000 write their boot loader only into the
    MBR when this is empty. As long as is has a valid BIOS signature it’s
    left untouched.

    For the rest: it’s a REALLY BAD IDEA to place a boot loader into
    the MBR (given the history of Windows that trashes it without asking).

    Unfortunately almost all Linux distributions follow this bad habit – despite the well-known danger.

    Yes, most of the distributions have an [Advanced] button where one can choose the place for the boot loader (naturally /boot).

    The MBR should be off-limits for every OS, boot loaders have to be placed into the respective OSs “boot” partition.

    @Raymond: overwriting a Microsoft-compatible MBR with another Microsoft-compatible MBR doesn’t do any harm!

    Stefan

    [Please go back and read the linked article. It describes the harm that results when one version of Windows ovewrites the boot files from another version of Windows. -Raymond]
  73. ender says:

    [I’m confused. I thought you were doing an offline install. (Installing to a drive that you intend to move to another computer.) If you’re booting off the CD then you’re doing an online install, in which case swap the cables before power on the machine. -Raymond]

    I was doing install in a new computer (to a new unformatted disk), to which the old hard drive was added "for a few weeks" (according to the drive’s owner). Old hard drive connected to secondary IDE as slave (primary IDE empty, previously I wrongly said that the disk was master), new hard drive on the 1st SATA channel, and the BIOS set up to boot off the SATA disk. Windows setup happily updated the bootloader on the IDE disk, but didn’t place one on the SATA drive. Luckily, with this machine, I could open it without voiding the warranty, but most whitebox retailers here don’t allow that without special arrangements (too many lusers breaking stuff, then trying to claim the warranty).

  74. Stefan Kanthak says:

    Raymond,

    I read the referenced article already around Christmas.

    The boot files are something different than the MBR or the PBR, the latter normally named "boot sector", as in the title of your referenced blog entry.

    Since it’s absolutely necessary that an OS installs it’s "boot sector" and boot files into it’s own partition (OK, Windows uses the active partition), I can’t imagine that your article just covers this triviality.

    As most other commenters too I read "boot sector" as "the code in the MBR" instead.

    Since Windows won’t install into a partition with unknown filesystem nor write it’s boot files to the active partition if that has an unknown filesystem without showing one or more dialog boxes giving no smooth installation the only sensibly interpretation for "boot sector" was MBR then.

    regards

    Stefan

    BTW: I never had problems installing multiboot systems. Every (Microsoft) OS gets it’s own primary partition and will then not overwrite any other OSs boot sector/loader.

  75. Neil says:

    Windows Vista has found that this disk does not have a valid master boot record. Windows Vista will write a new master boot record to your disk.

    ==OR==

    Windows Vista has recognised your existing master boot record and will upgrade it to work with Windows Vista.

    ==OR==

    Windows Vista has not recognised your existing master boot record. If you do not replace it then Windows Vista may not install correctly.

    (*) Replace the unrecognised master boot record (recommended)

    ( ) Do not replace the master boot record.

    Use the Repair option if Windows Vista does not install correctly.

    [My father will know exactly what to do when he sees that dialog box: Call me! (Can you imagine a Macintosh displaying that error message?) -Raymond]
  76. Norman Diamond says:

    Friday, July 14, 2006 6:31 AM by Archangel

    > a hidden option at some point to press F7

    F7 is already taken.  When a prompt says to press F6 for some purpose, F5 and F7 also have meanings.  (Therefore I suggested a different keystroke.)

    Friday, July 14, 2006 3:17 PM

    > [The magic keystroke is not a good idea

    > -Raymond]

    By comparison to dialog boxes sure, but by comparison to the existing situation… well, I’ll wait for your article about it.

    Saturday, July 15, 2006 2:48 AM

    > [I’ve never had to hit F6 on any of my

    > computers, and I like to think that I have a

    > modern PC. […] -Raymond]

    On computers that you and I have that include SATA controllers, you and I don’t have to hit F6 because one of the emulation modes built into the controller and/or BIOS works well enough with Windows’ ATA driver and we have no problem.  But surely your employer had some reason for, not only making the F6 keystroke available, but even naming it in a prompt?

    Sunday, July 16, 2006 5:29 PM by Neil

    [Two cases which can be handled automatically]

    > ==OR==

    > Windows Vista has not recognised your

    > existing master boot record. If you do not

    > replace it then Windows Vista may not install

    > correctly.

    > (*) Replace the unrecognised master boot

    > record (recommended)

    > ( ) Do not replace the master boot record.

    > Use the Repair option if Windows Vista does

    > not install correctly.

    > [My father will know exactly what to do when

    > he sees that dialog box: Call me! […]

    > -Raymond]

    Agreed.  That dialog box will arise in one of the following situations:

    (1)  Your existing MBR was written by a non-Windows OS, and the person who installed it for you should be well prepared for that question.

    (2)  Your existing MBR was written by a virus, and unless you’re in those lucky 1% of users who know why you should back up your data then it really would be best for you to get help.

    (3)  You have at least one hardware failure which resulted in not properly reading either a previously valid Windows MBR or newly purchased blank disk drive.  Again it really would be best for you to get help.

  77. Colin Wyers says:

    "Every self-respecting Linux setup is able to detect Windows partition(s) AND mount it for you AND configuring bootloader for dualboot. All you have to do is answer "Yes". Moreover, this question is being asked only if you actually have Windows partition(s)."

    Uh… yeah. There’s, last I checked, one vendor making Windows. New releases are spread out by several years. Most desktop computers use it.

    So, Linux vendors have the ability, time and inclination to support dual-booting with Windows; in fact, it’s pretty well necessary for them.

    On the other hand, there are hundreds of Linux distros, from hundreds of distributors, with frequent changes. And that doesn’t include all of the other boutique OSs that people could choose to dual-boot with.

  78. BryanK says:

    Colin:  You’re assuming that each distro uses a different bootloader, so Windows would have different byte patterns to detect.  In fact, they all use one of two, unless you’re booting them from a CD (in which case this whole discussion doesn’t matter).

Comments are closed.

Skip to main content