8 ms·
Perhaps I missed it, but the article doesn't mention this in any way: Windows ABSOLUTELY needs a way to go from 'Fresh Install' to 'Fully upgraded' with minima
by tomswartz07 11y ago
Perhaps I missed it, but the article doesn't mention this in any way:
Windows ABSOLUTELY needs a way to go from 'Fresh Install' to 'Fully upgraded' with minimal interaction.
Linux can do this: run `apt-get dist-upgrade` in Ubuntu, and you get all of the most recent updates.
However, in Windows, you install 3 updates, restart, install 5 updates, restart, install 110 updates, restart....
- BinaryIdiot 11y agoYeah I think they need to address this but it's going to require a pretty big, fundamental change so it might take a while. It's certainly needed.
- drzaiusapelord 11y ago>restart This isn't going to happen. MS is tied deeply into restarting due to how it loads libraries and other issues. Unless they write a new OS from scratch and give up on legacy compatibility, well, don't hold your breath.
- level 11y agoI don't even mind the multiple restarts, the part that bothers me is that I have to babysit Windows Update as soon as my machine finishes restarting, tell it to get updates, tell it to install now, and then have it restart again. If Windows Update could collect all the update packages, and I could leave it alone for 20 minutes and come back to a fully updated system, that would be fantastic.
- glesica 11y agoYeah, this seems like it should be pretty straightforward (I'm sure it is harder than it seems, but still). Set a flag that persists through multiple reboots that says "after Windows loads, if there are updates, apply them and reboot, repeat, otherwise unset the flag".
- tomswartz07 11y agoFun fact: I helped tweak up a Powershell script that does this exact thing: https://github.com/tomswartz07/packer-windows/blob/master/scripts/win-updates.ps1 https://github.com/tomswartz07/packer-windows/blob/master/sc...
- tacticus 11y agoI owe you a reasonable beverage of your choosing. Please redeem anytime you're in melbourne.au :)
- seanp2k2 11y agoIf only it had a place to register a setting or store a file containing information like "update until you reach the latest version". It'd also need to be able to get through all the updates without crashing even once (otherwise we'd need to check the disks and repair start-up files, and that can't be automated), so maybe this is just impossible.
- tomswartz07 11y agoHeck, I'd be okay with booting into a Windows PE drive, if it meant that after 1 reboot I'd have a fully upgraded OS.
- the-dude 11y agoIf this day has taught anything: MS is moving to Linux
- derefr 11y agoEven in Linux you've got to restart once, if you update the kernel or somesuch. The problem with Windows is the restarts before the final one, where you need to finish upgrading to version N+1 before the updates taking you to N+2 will even download. If the updater software could just plan out a patch-graph ("once I do X, then Y will be available, so I'll do Y, and that means Z will be available"), then apply all the updates it had recursively discovered and only restart at the very end, everyone would be happy. Even though the resulting mechanism wouldn't be very similar at all to Linux's idempotent "just install the latest version of the package, you don't have to take the steps in-between" system, it's the UX that matters.
- Latty 11y agoActually the 4.0 release has added support for no-reboot kernel patching, IIRC.
- sz4kerto 11y agoThat's exactly what they're trying to do with the new app model.
- wlesieutre 11y agoI think he's referring to system updates, not just installed software. My usual workflow for setting up a Windows machine goes like this: 1. Install Windows 2. Download updates 3. Reboot 4. Download updates 5. Reboot ... 28. Download updates 29. Reboot 30. Download updates 31. Reboot 32. Install software It's not great. OS X has been doing cumulative updates from 10.x.0 to 10.x.current for what, a decade now? MS is rebuilding a lot of essential utilities in their "modern" app framework (including the start menu), but as far as I know, the lower level system updates still get distributed the same way as before, and frequently have long chains of prerequisites.
- nswanberg 11y agoSolving this is one of Matt Wrock's goals with Boxstarter. I've been experimenting with it recently and found it quite nice.
- stephengillie 11y agoOne of the core issues with breaking this pattern is that you're installing a new feature on this reboot, then installing all of its patches on the next reboot. So you install 186 updates on a fresh install. This includes .NET 4.5 (or 4.5.1 or 4.5.2), and requires a reboot. Now you're done right? You just installed 168 updates, how many updates can there be? On your next reboot, you get another 60 updates, of which 20 are .NET 4.5 updates and security updates. Another is the OS SP1, which needed a reboot before install. Now you're done right? You just installed 228 updates, how many updates can there be? On your next reboot, you have another 168 updates, most of which are patches for OS SP1. Now you're done right? You just installed 396 updates, how many updates can there be? On your next reboot, you have another 12 updates, including... I've seen this chain across more than 6 reboots. I once literally spent an entire day just patching a server.
- tomswartz07 11y agoYep, this is exactly what I'm talking about. I don't see why they cant 'look ahead' to say; Oh- this update X depends on update Y, but it's going to be installed, so we could just add it in the queue anyway.
- bentcorner 11y agoOr rather, slipstream future updates to current downloads. E.g., if you're installing component X that has patches A, B, C, then perhaps you should get customers to download component X that is already in a patched state.
- whoopdedo 11y agoWhat I always wonder, while twiddling my thumbs during the interminable upgrade-reboot-upgrade cycle, is how many of these these updates will be overwritten by a later update. Am I wasting my time downloading multiple versions of the same file?
- UweSchmidt 11y ago
- mhurron 11y agoThe way around this is to update your deployment images from time to time. It's one reason I liked service packs, new service pack comes out, generate a new install image.
- SmellyGeekBoy 11y agoI'm guessing this is the plan with the new system of "builds" we've seen in the Technical Preview. Just install the month's build and then the few updates it needs after that. Fingers crossed, anyway.
- tomswartz07 11y agoRight, and that takes care of the 'big ones', but you still have tons of other minor updates that are released every Patch Tuesday. I currently have Jenkins build an OS image every two weeks, just so our Deployment Server has an up to date image.
- mhurron 11y ago> I currently have Jenkins build an OS image every two weeks, just so our Deployment Server has an up to date image. Ya, lots of tools have made this easier recently, but thinking about it, doesn't WSUS handle this? I haven't been a Windows admin for a while, but I thought with WSUS it was install, join and forget while it did it's thing. Maybe it's been too long ...
- stephengillie 11y agoWSUS just caches updates locally, so you can download once and have the WSUS server distribute copies to your forest. It's a GPO that points your domains to the WSUS server. And I've only used Octopus to automate WU installs.
- mhurron 11y ago> WSUS just caches updates locally New updates do supersede others though, if they're marked to do so from Microsoft. That should cover at least some of the .Net point release updates and the like.
- e40 11y agoAn addendum to this is that Windows needs to restart way too often compared to Linux. When I apply my daily yum updates for CentOS, only kernel updates, which are very infrequent, require a reboot. Every time I do Windows Updates, I need to reboot. This is highly annoying and IMO makes Windows Server YYYY completely unsuitable for servers.
- Someone1234 11y agoWindows Server needs to restart at MOST once a month ("patch tuesday"). If I look at a 2012 Core server, it hasn't even restarted nearly that often in the past year. In fact 9 times in 12 months. Plus I can schedule this restart at any hour, on any day, I wish. And do. For example I restart mine on Thursday morning at 1 am. If that really makes Windows Server "unsuitable for servers" then your downtime requirements must be so high that any single server wouldn't be able to meet them (i.e. even with Linux you'd need two or more servers to provide that level of uptime).
- akulbe 11y agoOnce a month is way too often. Even if your downtime requirements are "so high", once a month is ridiculous. For the sake of this example, let's assume you have customers that depend on your server being up, for the product/service they're paying you for. Tell the customers that you plan on rebooting once a month, and see how they feel about it.
- noblethrasher 11y agoA server is just a name. Just because a host machine needs to go down doesn't mean that the "server" has to go down.
- Someone1234 11y agoIn that scenario I'd never have just a single server, be it Linux, Windows, BSD, or anything else. Being in a situation where you're completely unable to restart a machine without losing money, is being in a situation where you're living on a knife edge regardless. A single hardware failure and you're in deep trouble. I've been in exactly that situation (the entire company rested on a single Ubuntu server), it was really unpleasant and management didn't do a thing about it until we started getting sector errors which the RAID controller's error handling was struggling to cope with (after that incident and the downtime, management shelled out for four physical boxes, a SAN, VMWare licenses, and a setup with 15 minute rollbacks and dynamic migrations if a physical server died).
- deleted 11y ago[deleted]
- jackmaney 11y agoRemember the Windows 95 days? Your mouse pointer has moved. Please restart Windows for this change to take effect.
- Freaky 11y agoI got "You must restart your computer to apply these changes" in Windows 8.1 just by moving my mouse to another USB port a couple of weeks ago. I guess some other non-critical update was queued up.
- kijin 11y agoWhat I really don't understand is why Windows Update takes so long to apply each update. I wouldn't mind 200 updates and a couple of reboots if it only took 10 minutes to go through them. In most Linux distributions, an update simply unzips a tarball somewhere and runs some bash scripts. Unless it's a very large package, each update usually only takes a fraction of a second on SSD, and maybe few seconds on HDD. Windows, on the other hand, often takes minutes installing each update. Going from freshly-installed to fully-updated can easily take several hours, even on an i7 with SSD and a very fast connection (so the download speed is not a factor). It's even worse on an older computer; I've seen a smallish .NET update taking over 10 minutes to finish, and there were several such updates. What the hell is it doing behind the scenes that takes so much time?
- akandiah 11y agoA lot of the time, restarts are required to remove old versions of files that are still in use. AFAIK, there is no way to remove files that are 'in-use' (and not locked) without having to make an entry in the registry to schedule a deletion on the next reboot.
- ddingus 11y agoI always wondered about that. Shouldn't a real OS and filesystem be capable of removing something in use? IRIX always could. So can Linux a whole lot of the time, if not all the time, as can BSD and Mac OS. Here's something: Once I upgraded a pile of IRIX boxes to a new version of some CAD software. A few of them had the older version running... Didn't matter! The files got cached, and those versions continued running the next day, until shut down. Next launch, the new version popped up. One could just run a program, then delete the program right out from under the running process, and that process didn't know. IRIX just cached it all, and when the process was done, cleaned up the cache.
- useerup 11y ago> Shouldn't a real OS and filesystem be capable of removing something in use? It's a choice. Windows specifically uses DLLs as non-dirty swap, i.e. if the memory manager want's to free up pages it may free memory pages used for mapping a least recently used DLL because it will not require it to write any "dirty" memory. A DLL page can never be dirty. Windows knows that it really easy to read in the image again (from the DLL) - so it can just kill the page and reuse it immediately. But then it has to know that it can get the exact same memory page back from the DLL. If the DLL has been deleted or changed that would lead to some strange errors.
- Freaky 11y agoThis is no different from the situation in Linux, BSD etc, where executables and libraries are simply mapped into the process with mmap() - they're backed by the files and the system is free to discard those clean memory pages as it sees fit. When you install(1) a new version of a file, the old one is deleted and the new one written in its place. The file handle in existing processes continues to point to the original, and the filesystem will wait until everything's closed it before actually discarding the file data.