Jump to content
  • entries
    63
  • comments
    51
  • views
    20,412

Discussing Myths: You can't boot Windows that was installed for another computer

Mira Yurizaki

1,338 views

This is a statement I see prevalent in tech circles: Whatever computer you install Windows on can't be booted on another computer. The most common cited reason is the drivers that were installed on that particular Windows will conflict and cause issues with the hardware in another computer. This is false. If only because I've not only successfully booted into Windows installed for another machine, but managed to do work in it. I used this method to fix someone else's computer and even when the drive was installed back, it ran just fine.

 

Okay, an anecdote isn't the best way to disprove this. So let's think about this using what we know about the booting process for computers:

  1. System powers on, loads up BIOS/UEFI, sets up basic I/O
  2. System applies settings to configure hardware and the motherboard chipset
  3. Other hardware is figured out if they exist or not, and possibly configured accordingly for bare minimum operation
  4. System looks at the boot devices table and checks each one for a bootloader. The first bootloader encountered is ran.
  5. If the bootloader points to an OS, it begins the OS starting process
  6. The OS will load the kernel and do a hardware detection check. As part of the hardware detection check, it sees which driver for said hardware is available.
  7. After the kernel and hardware is loaded and configured, the rest of the OS gets setup until the user can finally interact with it

Step 6 leads me to believe that if an OS installed for one system is booted into another with different hardware, it's not going to break assuming there's some driver for it. For modern operating systems, there's going to be a generic driver for most of the core devices. So how can Windows not boot or "break" if the driver set installed on it won't be loaded in the first place because the hardware for said driver isn't detected? I guess if you consider "break" to be "not running as intended", sure. But that's kind of a stretch.

 

Further Reading

http://www.c-jump.com/CIS24/Slides/Booting/Booting.html

https://www.cs.rutgers.edu/~pxk/416/notes/02-boot.html

https://en.wikipedia.org/wiki/Booting

https://en.wikipedia.org/wiki/Ntdetect.com

0 Comments

There are no comments to display.

×