upgrading a legacy notebook with a contemporary ssd

The Samsung R580 is like the Timex watches of yore, when they “took a lickin’ and kept on ticken’.” Or maybe it should be compared to something more contemporary like the Energizer Bunny. Regardless, the R580 continues to do yeoman duty, what with its ‘mere’ 4GB of memory and now-modest Intel Core i5 m430 processor. It was originally purchased with Windows Vista installed back in 2010. It was upgraded to Windows 7 when that was offered as a free upgrade, and stayed that way until Windows 7 decided to corrupt itself. When that happened I installed Ubuntu 13.10 on it in December 2013. It’s been an Ubuntu workhorse ever since.

When I upgraded the R580 to Ubuntu I replaced the keyboard and put a new 500GB hard drive in it to match the size of the original hard drive. Over the years I started to replace the hard drive, first with a 1TB model, then a second just to make sure that at least the rotating media was kept up to date. I thought about upgrading to 8GB, the highest you could go with this model, but I just never got around to it. This December, I decided to be a bit more drastic with my upgrade.

As you’ll note above, I upgraded the R580 with a 1TB Samsung 850 EVO SSD. The price finally dropped low enough to make installation a no-brainer. I’d already upgraded a Samsung 17″ running Windows 10 with a 1TB Samsung 950 Pro, and I’d purchased a mid-2015 MBP with a 1TB SSD built in. So I was quite appreciative of how an SSD significantly speeds up a computer. It just made more sense to spend the money on the SSD rather than more memory, so when the Christmas sale on the 850 EVO was announced I picked up a copy, along with a Sabrent USB adapter. With Clonezilla on a USB thumb drive, I booted into Clonezilla and proceeded to clone the HDD disk to the SSD. Total time took about two hours, most of which was just waiting for it to finish. Once finished I swapped the HDD out for the SSD, booted the system back up, and here I am writing this blog entry on it.

Before you ask: No, dd is not as good as Clonezilla, at least not for this use case. For example, Clonezilla (for which I have extensive experience) will analyze the drive to be cloned and only copy over what needs to be copied over. dd is blind in that it duplicates the entire drive from one device to another. And in order to make that work you still need to boot into a live version of the OS from a thumb drive, so the amount of prep work is identical. It makes far more sense to use Clonezilla.

Needless to say, everything is so much faster, from startup and shutdown to launching applications. And if it goes to swap, well then, it goes to very, very fast swap. I don’t intend to do any more hard disk upgrades, just as I don’t intend to update the OS beyond Ubuntu 16.04 LTS. I’ll keep using the R580 until it literally dies of something, I’m not sure what. I keep thinking I’ll replace it with another used notebook, but its overall combination of reasonable performance, many ports, and the fact it has a Blueray drive make it hard to find a replacement for, now that everybody and their relative wants to drop ports and repairability and upgradability in the name of convenience, cost cutting, and dare I say it? Lock-in.

Here’s to another five years of drama-free usage.

windows 10 build 14393.10

It’s been over three weeks since I last wrote about Windows 10 build 14393.0. Note the ‘.0’ at the end. It’s still version 1607 but the point release has bumped to ‘.10’. Based on that bump I’m assuming I’ve picked up all the bits for the Anniversary Update, and so far I haven’t had any issues with using the OS or any of my typical applications. For example, after the updates I used Lightroom 6.6 to edit a series of photos I took in Indiana and posted in the prior blog post. Rather than talk about what I did find, let me lead off about what I didn’t find:

  1. Unlike any number of articles on the web have seemed to document, I did not have Skype re-installed on my system against my will. I uninstalled Skype early on (when it showed up in Windows 8.1) because I had no use for it. It has stayed uninstalled ever since. Whether that non-installation is due to my being on the ‘slow ring’ I can’t say, but I went looking for it and the only thing I found was a ‘Skype Preview’ in the Windows Store. It can stay there for all I care.
  2. I don’t get ads, either on my lock screen or anywhere else for that matter. I do get the occasional question, such as “Would you recommend Windows 10 to your worst enemy?” to statement such as “Too many background apps can drain your battery. Select here to improve battery life.” Little things, but I expect those, because I am running with pre-release code and the coders in particular would like to know how it’s working out.
  3. Unlike Thom Halwerda’s bombastic whining, I don’t find Windows 10 an “incomplete, buggy, slow, broken, and effectively useless mess” (It should be noted he writes the same things about Mac OS X and Linux). Honestly, if you’re that provoked with the current state of desktop environments then get off your lazy duff and write your own. Then present it out to your peers and make sure your underwear is sufficiently fire retardant and bullet proof. Otherwise, kindly STFU.

So, with those points taken care of, let’s meander a bit and see what’s on the system. The most interesting change for me is the Windows Subsystem for Linux, or WSL. Practically speaking it’s Bash plus Ubuntu 14.04 LTS minus the graphical subsystems running on Windows. Here’s what it looks like running on my system:

There’s a lot going on in that shell, so let’s break it down a bit.

  1. ‘cat /proc/version’ gives us the version of the kernel we’re running with. It’s a fairly current version (greater than 2.6, but not up to the current 4.x releases). It’s the same version underpinning Ubuntu 14.04 LTS.
  2. Since it has a kernel as part of the subsystem, it’s various /proc resources I’ve checked out seem to work. In particular the ‘cat /proc/cpuinfo …’ shows the eight cores of my Samsung notebook (four cores with hyper threading enabled on each core).
  3. Free shows all memory available and in use on my notebook, not a subset.
  4. ‘ll /mnt’ shows it sees my Windows ‘C:’ drive. If I cd down /mnt/c I’ll be able to traverse my entire C drive. Any other drives attached under Windows are equally visible. The problem I’ve run into so far is soft links. I created one from my home to /mnt/c/Develop (C:\Develop), and while it shows up properly under ls, traversing down the link creates a peculiar error condition. I get to the part of the filesystem it points to, but any attempt to traverse deeper leaves me in the top area the link points to. The only way to traverse deeper is to take the full path down /mnt/c. As an alternative I can create bash aliases (alias develop=’cd /mnt/c/Develop’) and move there that way. But other applications that depend on soft links behaving properly may break, so YMMV. Just beware.
  5. ‘gcc -v’ produces a higher GCC version (4.8.4) than that used to build the kernel (4.7). The gcc version also includes the full 14.04 LTS version it was produced from (14.04.3). Unfortunately for me I need a gcc version 5 or 6 for the kind of work I’m interested in, so this version of gcc is something of a non-starter for me.
  6. I can update and upgrade using apt and/or apt-get, and I can install standard Debian/Ubuntu command line applications (such as htop).

Overall WSL is both an impressive tour-de-force as well as an ever-so-slight disappointment. I fully understand basing WSL on a long-term-support version of Linux, but it would have made life a lot better if Microsoft had chosen 16.04 instead of 14.04. Perhaps future versions or the official release will switch. All the tools are locked to the 14.04 baseline, such as Python and Ruby, not just gcc. Overall I consider working in WSL’s bash superior to Cygwin‘s, but then again, Cygwin has more up-to-date tools.

Another mark against WSL is its difficulty in mixing Windows tools at the command line. There are (hackerish) ways to do this currently, but I’m more interested in a clean built-in way to do this. It would be very nice to call a windows executable directly from the WSL bash command line instead of possibly having duplicate tool chains on both Windows and WSL. Currently the only way I see of avoiding this is to have tools on either one or the other, but not both.

Is there a better way than WSL? Possibly; it involves using VirtualBox and installing a full-blown Linux distribution. My recommendation for Linux development on Windows 10 if you can support it is to install Mint 18 in a VirtualBox VM. Linux Mint 18 comes with VB drivers already built and installed (negating the need to mount the Guest Additions and building them from scratch within the running VM), so that all you have to do is download the ISO and install the OS from the ISO in a VM. During VM configuration you can enable file system sharing to any part of the Windows file system (not just at the root of the Windows drives) and have full networking out of the VM and into the world. It is, for all practical purposes, a full graphical Linux installation indistinguishable from one on hardware, except it is more tightly integrated with Windows. And from my own experience, the latest VirtualBox combined with the latest Windows 10 is very fast and smooth. That’s a lot of effort to go through and it consumes non-trivial system resources, so you should think this path through carefully.

Other native Windows applications have no issues with Windows 10. In particular I still have Office 2010 and Visio 2013, and they work just fine. I’d migrate over to my Office 2016 subscription I have running on my MBP, but Office 2016 subscription wants to fully uninstall my Visio 2013, and there is no Visio equivalent for the Mac (although I do have OmniGraffle). For the time being I keep going back to my Samsung/Windows 10 notebook for Visio work that can’t be handled by OmniGraffle (and Lightroom work, to be honest) while the majority of my work is done on the MBP.

If you came here looking for Windows 10 controversy you won’t find it here. Windows 10 is like every other major OS/DE out there; it has its strengths and its weaknesses, but it is overall a very solid environment that works just fine as long as you leave your rabid political leanings concerning certain software companies at the door.

Update 8 August – WSL Is Removed From My System

After reading a few shrill articles on the Interwebs about how WSL is another security “attack surface” to Windows 10, I disabled it completely. Perhaps it is, perhaps it isn’t, but the soft-link problem coupled with these rumblings made me to decide to remove a marginally useful capability. Perhaps I’ll revisit it when it’s finally released, but for the time being I have Linux Mint18 running in VirtualBox, and that’s a far more complete Linux environment for me. The command to do this (in either a command or powershell window) is ‘lxrun /uninstall /y /full’

This is the story that convinced me turn this feature off is: Risk From Linux Kernel Hidden in Windows 10 Exposed at Black Hat