Dual Booting Ubuntu/Windows on the Acer S7

I got my new SSD drive in the mail a few days ago and I’m only just now settling into a stable system after clean installing Ubuntu 14.04 and Windows 8.1 on it. It was a relatively painless process, but I just didn’t have a nice long block of time to just power through it. On the upside, I’m pleased to report that this setup runs pretty nicely on my S7-392. Not a single huge issue other than the data on my old SSD is now inaccessible short of reconfiguring my laptop to boot into it, but more on that later.

To start off, I tried to keep my old Windows installation by cloning my disk image to the new drive using my external enclosure and a few pieces of software. These efforts were in vain due to two limiting factors. The first, which caused me a lot of head aches, was that Acer used a very special SSD configuration that is almost certainly not used by too many other vendors. I mentioned earlier that the Kingston SMSR150S3/128GB is configured as a 2x64GB RAID0, but didn’t think that was really anything special at the time. Turns out this isn’t a software RAID0 like a lot of the setups you read about in single drive systems. It’s actually a hardware RAID0 that works by implementing two independent SSDs on the same board and is using a special connector to communicate with two drives on the same connector. I looked into the pin-out for the mSATA connector and many of the pins are labeled “reserved” or “Vendor-Specific” which means it isn’t outside the realm of possibility for Acer/Kingston to implement this hardware RAID0 on a slot. The trade-off is that they were able to double(!!) the throughput of a SSD in exchange for a less data reliability. Where this complicated things for me was that all the free software I tried which ran as a boot disc failed to recognize the hardware RAID0. I also had trouble with software running in Windows; admittedly, I didn’t try too hard in this attempt because most of it was gross freeware. I then decided to just go the “nuclear option” and just clean install everything, no back ups other than what’s stored on the cloud and copying files from the drive in the future as necessary. This would bite me in the ass later when I discovered that (obviously) my external enclosure is useless for this special drive since the data is split between the two drives and the enclosure only had access to one 64GB drive (that looks like garbage to it). I may just have to sell this drive as a replacement for someone else because it can only ever function as a 64GB external SSD. In hind sight the right course of action may have been to image the drive onto an external and restore that to the new drive, but I didn’t have a working external and didn’t want to buy/wait for one.

Now because I had an ultra book, they did away with optical media so I had to prepare all my boot media on USB drives. Microsoft solved this pretty elegantly by providing the create media tool. For Linux distributions there’s the Universal USB Installer. This wasn’t a problem because I’ve amassed a large number of USB flash drives from my Cyber Security project. Running the installers for both OS’s was a very smooth/pleasing process nowadays thanks to decades of developing ways to deploy these complex systems. I should note that to get my product key I had to use the Magic Jelly Bean utility and I had to call Microsoft activation line to reactivate it. This may be the first time I did a clean install of two operating systems without any major hardware issues. Ironically (or perhaps not), I had to fuss with drivers more on the Windows side than the Linux side. For partitions, I settled on a 140/60/60GB split between Windows, Ubuntu, and storage respectively. My argument was that Windows was tight before the upgrade so I gave it some extra space to grow, Ubuntu is pretty lean so I think 60GB is fine, and I don’t store too much media locally so 60GB is fine for that. We’ll see how this plays out long term, I think my next evaluation will happen around the release of Windows 10.

The real issue was getting know the UEFI framework, and getting it to do what I want it to do. UEFI, is basically a modern upgrade of the BIOS system and as a developer I understand the need to break with the old. It has its own partition and OS which controls the boot process from hardware and transfer of control to an OS loader/OS. One non-obvious(to me) step that to change important UEFI settings you needed to set a supervisor password first. At that point, I could change the boot priority of USB devices, disable secure boot(!), switch from RAID0 to AHCI, and manipulate various other flags. Secure boot is a way for UEFI to authenticate the operating system and seems to open the door for vendors to lock computers to the operating system that’s installed on the system. Unless there’s an easy way for the me to replace the authorized key and sign my own operating systems, I don’t see any other valid use case. What’s more troubling is I noticed that UEFI and Windows have a strong tendency to prefer Windows and certain steps tended to obliterate my ability to boot into Ubuntu. This happened after I had everything working and decided to update my UEFI firmware. It completely nuked my GRUB bootloader and to get it back I had to experiment with various boot discs until I tried the boot-repair disc (boot-repair is not available on the 14.04 live disc). This fixed the UEFI settings, but required manipulating the UEFI settings on the Windows side to get it to boot them correctly. After this, I was up and running finally.

Update (7/30/15):

Installing Windows 10 over this setup wiped out GRUB (no surprise). All I had to do to get it back was to first get the boot-repair-disk again. Fn+F2 at the Acer logo to get to the BIOS menu to disable secure boot and change the boot order to boot from USB first. Use recommended repair within boot-repair and restart. Finally, inside an admin command prompt under Windows run “bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi”. After this step the computer rebooted into GRUB with no problems 🙂

Leave a Reply

Your email address will not be published.