upgrading a legacy notebook with a contemporary ssd

screenshot-from-2016-12-18-11-16-40

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

Windows10Version14393.10It’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:

wsl

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

virtual box 5.1 report – it’s pretty good

Screen Shot 2016-07-16 at 11.59.36 AM

Oracle released VirtualBox 5.1 last week, and today I downloaded the latest bits and updated my VB installation on my MBP. Right now the MBP is running with OS X Version 10.11.5 (I’ve resisted the urge to install the Sierra beta). I also updated the extensions package as well as the guest additions ISO.

Once VB 5.1 installed, I updated all my existing VM’s guest additions without incident. So far I have Mint 18 (seen above), Fedora 24, CentOS 6, Ubuntu 16.04, and Kali. Kali doesn’t have the guest additions as I want as pristine an environment as possible with those tools.

But this version of VB isn’t without problems.

  1. I can’t seen to install the guest additions in CentOS 7 (based on RHEL 7). I don’t know why but the tools can’t find the kernel headers, even though I installed the full gcc and kernel-devel packages. I suppose I could have dug around and found out why it can’t find the kernel headers, but I have four other working Linux distributions with additions, and I just didn’t feel like putting in the effort. Lazy, I guess.
  2. I tried to install PC-BSD. Initial live media boot and installation went swimmingly. Trying to run after the install (with the MATE, the KDE, desktops) resulted in a panic. After two attempts I gave up. If I need a BSD-like OS I have Mac OS X. And if I want Unix-like, well, I have all these systems around the house, including Arch running on three Raspberry Pi 3s. I have no shortage of OS playgrounds.

Other Software

I decided to try out Microsoft’s Visual Studio Code editor in the Mint VM. I’ve played with it a bit on Windows 10, Ubuntu 16, and my MBP, all directly on hardware and all without incident. But trying to install and run it on my Mint 18 VM didn’t work out so well.

Screen Shot 2016-07-16 at 11.51.43 AM

Screen Shot 2016-07-16 at 11.52.06 AM

I would have loved to have worked with the editor in the Mint 18 VM, but it looks like it’s not to be. I don’t know why the editor has a corrupted interface, but it’s totally unusable in this particular setting. I still have vi and gedit as a consolation.

Upshot

One of the big claims with VM 5.1 is performance improvements. I use it now on my Windows 10 notebook in place of VMware, and on my MBP, and I’ve never thought it was slow. VMs seem to boot rather quickly, and the VMs operate efficiently once up and running. I’m quite happy with the way everything works.

After what I wrote about abandoning Oracle’s Java, and why, you might think my use of VB is a bit hypocritical, and you’d be right; it is. Unfortunately, I’ve found nothing that works as well, especially VMware. And I need a virtualization tool that works on my multiple notebooks, with as many different Linux distributions, as possible. VMware keeps getting worse and worse in that regard. I certainly don’t mind paying for a good software package, and I almost broke down and bought a commercial copy of VMware, but the free player has been so plagued with issues that it’s turned me off buying a license (or licenses, one for Mac and one for Windows). I’ve better things to do with my time than trying to get everything initially working.

I would have liked for PC-BSD to have worked (finally). But it didn’t and I refuse to go forum diving for old and/or cryptic information. Considering the definition of insanity, some might consider my continued attempts at getting FreeBSD/PC-BSD up and running in a VM (which I will do before committing hardware). Fortunately, I wasted no more than about 15 minutes before calling off the latest PC-BSD installation experiment.

linux mint 18 mate edition in a vm on a mac

Screen Shot 2016-07-04 at 10.17.23 AM

I’ve installed a VM of Linux Mint 18 on my MBP using VirtualBox 5.0.24 on Mac OS X 10.11.5. No muss, no fuss. It just installed. I did it primarily just to see what would happen.

Some points of interest about the setup.

  • Linux Mint 18 came with the VirtualBox Guest Additions pre-installed. That shared folder showed up after installation and first boot. I added the local login to the vboxsf group in order to see the contents of the folder.
  • Linux Mint runs quite well. It should, being based on Ubuntu 16.04 LTS.
  • VirtualBox 5.0.24 is an excellent VM for various contemporary Linux distributions. I don’t run any other operating systems with it, so I can’t speak to them.

Screen Shot 2016-07-04 at 10.18.58 AM

Screen Shot 2016-07-04 at 10.19.24 AM

Screen Shot 2016-07-04 at 10.20.50 AM

I like the dark theme of this version quite a bit. I’m also avoiding installing Java on this VM, choosing instead to install Google’s Go Language. My other language of choice on this VM is C++. I’m going back through my other VMs and removing Java and Java tools (particularly IDEs). I’ve got VIM and gedit for the work I need. And other tools to make sure my code is as robust as possible.

the best of times for linux

Fedora 24 in VirtualBox on OS X

Fedora 24, running in VirtualBox, on OS-X

I installed Fedora 24 last night using VirtualBox 5.0.22 on my MBP running OS X 10.11.5. It was remarkable for several reasons, not the least being just how easy it was to get this Fedora 24 up and running. For anyone interested in doing the same, the steps are straightforward enough:

  • install VirtualBox, making sure you’ve also downloaded the VirtualBox Additions ISO that matches the VirtualBox version you’re installing
  • install Fedora as a guest VM inside VirtualBox
  • update Fedora after the initial installation using dnf
  • install gcc and kernel-devel using dnf
  • reboot/restart the Fedora VM
  • mount the VirtualBox Additions ISO so that the Fedora VM can see it at /run/media/fedora/VBOXADDITIONS…
  • run VBoxLinuxAdditions.run on the mounted ISO as root
  • reboot the VM and, at a minimum, pick a better VM desktop resolution than 1024×768; I chose 1360×768

If you’ve enabled shared folders between the Fedora VM and OS X, then make sure to add your Fedora login account to the vboxsf group with the usermod (sudo usermod -G vboxsf [account name]) command. This will give you filesystem rights to read/write to the mounted shared folder.

Right after getting Fedora 24 up I installed Vivaldi. It’s not in any repo so you have to download the RPM. Before you do that, you have to add a library dependency, libXss.so.1. I discovered that dnf will do that nicely with “sudo dnf install libXss.so.1”. It did all the gnarly work of looking up what applications needed to be installed that included that library and then installed it (turns out it was an X screen saver). In the past I had to go find this by searching on the web. So it’s nice to find that particularly rough edge smoothed off. It would have been even better if rpm had linked in with dnf and offered to install that dependency for you along with Vivaldi, shortening the installation even further.

I haven’t tried every Linux distribution, but the main ones I have tried (Fedora, CentOS, Ubuntu, Arch Linux ARM) have been quite easy to install and maintain and a real pleasure to use. They have all provided critical up-to-date tools (especially Fedora, Ubuntu, and Arch Linux) and features across all the platforms I work on. In the past I used to whine about Linux’s inability to play back DVDs or display Flash video. Today DVDs have been replaced by streaming, and anything worth streaming comes across via HTML5, which all the Linux browsers support. As time has marched on I’ve discovered DVD/BlueRay and Flash playback has grown completely irrelevant.

What I’ve learned and come to fully appreciate is that Linux does something far more valuable than acting as a platform for merely consuming content; it’s an open, powerful, flexible, and valuable platform for unbounded creative use.