2

I don't want to care about my C:\ drive. I want to be able to casually reinstall Windows whenever I want, and be up and running quickly, with the programs, configuration, and data that I like. This process should be automated and repeatable, and driven by something I can check into github.

Off the top of my head, some of the things I want to know about:

  1. The best way to get all of my programs installed:
    • Should I install everything from scratch into the new installation? If so, what's the best way to do that? Chocolatey?
    • Or is there a way to install all my programs on a separate disk to the OS, and have them 'import' somehow into my fresh Windows installation? Does this differ from program to program?
  2. Automatic configuration of the Windows settings I care about. Is there a better way than powershell scripts?
  3. Separation of my data from the OS. E.g., is it safe to symlink my entire User folder from a separate disk? I like Windows' Libraries feature, but that doesn't cover AppData, or all of the programs that write user data to ~/.program_name or ~/Documents/Program Name
  4. What about all the Windows updates?
  5. What about drivers?
  6. Anything else I should think about?

I hope this isn't too broad of a question; I think it would be nice to have a bit of a canonical reference on how to make your home PC into cattle instead of a pet.

(Final note: I am a developer, with some Puppet experience, but ideally answers to this question should be useful for future readers who are superusers, but not necessarily programmers.)

closed as primarily opinion-based by CharlieRB, Dave, Xavierjazz, Kevin Panko, Matthew Williams Oct 7 '14 at 13:09

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • Well I think this could be done quite a number of ways or even a combination of both. You could slipstream the drivers, service packs, windows updates, and other programs. In terms of settings or registry values I believe you would need to script these – Eric F Oct 3 '14 at 11:41
  • To make it more disposable and up to date you could also have an ISO to USB tool in combination with a slipstream one and then every so often update a USB stick with the slipstream install and any scripts. That way you can add updates as they come out too. – Eric F Oct 3 '14 at 11:44
  • Why not VMware? Take an image of what you want as a 'default' ? – Dave Oct 3 '14 at 11:48
2

Full partition image with all your settings and installed programs should do the job. You will be able to revert to it anytime you want. Nothing will beat this solution in terms of timing. Restoring from image will be always faster than re-installing with slipstream. For creation of actual image I would recommend dd in combination with gdiskdump.

I would totally recommend this as the most reliable and clean solution if you are planning to only use it one machine.

Separation of user and system data should not be a problem - you can keep you data on non-system partitions and use registry to make sure that user folders point to correct location.

When it comes to multiple machines, this approach will face following difficulties:

  1. Drivers. Less now than 10 years ago, but still system specific drivers that are not installed in your original setup may prevent your system from booting on a new machine. Linux is less effected, but original question is about Windows.

  2. Copyright. As soon as you start cloning your image to other machines you will run into the problem with licenses for both: OS and installed applications

  3. Windows Updates. Every time you restore your system from the image it will be lacking all the recent updates.

If you are looking for a system that can be quickly and easily backed up, restored and used across multiple machines, then plain and simple - use virtual machine.

I will also mention my own experience that I believe is relevant. I have created an installation of Windows XP back in university days with all settings that I prefer and all software that I like. I have created a complete image of the system using dd in 2007. Up until 2012 I was using this image to restore system after crashes, unsuccessful experiments and when my system was getting too slow over time. Restore procedure was usually taking less than 15 minutes.Currently I am practicing the same approach to backup my Linux Mint - works like a charm.

2

Use native VHD-boot(you'll lose a TINY amount of system resources). Example guide: https://4sysops.com/archives/native-vhd-boot-in-windows-8/

  • After installing, setting up everything, and getting just like you want it, simply boot into the directly installed instance, do a copy of the VHD-file.
  • Whenever you feel like "reinstalling", simply copy the original back where it boots from.

Extra: whenever you boot the backup/"reinstall" , run all updates, any new programs you gotten used to etc, and reboot-> create a new copy. That way you don't have THAT many updates to run each time you reset.

Have done this since Win7, and it's extremely simple once you get in the habit.

1

Since I have a dual boot with Linux, I always separate the system and everything else in two patitions. Making it faster to rebuild once Windows gets too buggy.

Furthermore, I also use boot to VHD, which allow me to prepare a VHD in order to have everything set up when I want to "start from zero" again. And, everytime I replace my Windows, I don't have to bother about erasing my Grub anymore.

http://www.hanselman.com/blog/LessVirtualMoreMachineWindows7AndTheMagicOfBootToVHD.aspx

Swapping Windows become much more easier, but also backups since it's already done inside a vhd file that you can open with Virtualbox. That can also isolate any virus inside those VHDs :D

Not the answer you're looking for? Browse other questions tagged or ask your own question.