Monday, February 8, 2016

Dual Boot configuration for Windows 10 and openSUSE with full UEFI and Secureboot support

Questions and preamble

As has become normal, the FOSS/Linux community is peppered with anxiety over yet another major change to the tech landscape issuing forth from Redmond. With the release of Windows 10 comes a great many questions for the thoughtful, and this is especially true for our very own Linux communities. With gratitude we can recall our own past relief upon discovering that UEFI and Secureboot are not the herald of the end-times we had feared them to be. That being so does not however relieve the question of safely upgrading our dual-booting computers to Windows 10 without losing our ability to run Linux in tandem.

Excitement for Windows 10 was largely absent in me. I had grown quickly comfortable to the Windows 8.1 work-flow as it shared some similarities in those key areas which I had already grown to love in the GNOME Shell. Further, Windows served a role limited to usage for proprietary software that I deemed not sensible to coax into service on a Linux OS. However it did make sense for me to upgrade for my employment as a repair technician. It seems incumbent on me to familiarize myself with the upgrade process and the general operation issues of Windows 10.

Can I perform the upgrade safely?

In short, yes. Performing an in-place upgrade of your present Windows operating system will not overwrite your Linux partitions. However, the necessary Boot Configuration Data settings directing the UEFI firmware to use GRUB for booting will be lost. The Windows Boot Manager will be reasserted. This can be changed from within Windows using bcdedit.

How about a fresh installation?

Some users prefer to make a clean installation of their operating systems instead of in-place upgrades. Unlike in older versions of Windows, you can direct Windows 8 and above to specific partitions. This means that whether you wish to install Windows first in sequence or not is inconsequential; you can now install Linux first without worrying about the Windows installer overwriting it. 

One minor caveat however is that if you are not using a computer with UEFI firmware instead of a BIOS, GRUB will need to be installed after the Windows installation. 

Can I still get the free Windows 10 upgrade even if I want to cleanly install it? 

Yes. However, you will need to initiate the in-place upgrade for Windows 10 in your already present qualifying Windows 7, or 8.1 installation. As +How-To Geek says in their article, "When you upgrade a Windows 7 or 8.1 system to Windows 10, the installer confirms that you have a “genuine Windows” system installed and activates your computer for use with Windows 10. Note that you don’t actually get a Windows 10 product key — instead, your computer’s hardware is registered with Microsoft’s servers. When you install Windows 10 on that PC again in the future, it will check in with Microsoft’s servers, confirm it’s installed on a registered PC, and automatically activate itself."

How to install Linux alongside Windows 10

Prepare your hard drive

If you've performed a clean installation and installed openSUSE first in sequence, then drive preparation is irrelevant for your consideration. Note: if you intend to install openSUSE to a separate drive on a computer with UEFI, the  /boot partition must be placed on the primary drive with the Windows partitions.

Create free space

Though there are different ways this can be achieved, I advocate the following as the safest method. Creating free space should be simple if you have freshly installed Windows 10 instead of performing an in-place upgrade.

In Windows, open the Disk Management module from the Control Panel. You can find this simply by searching for it from the Start Menu/Cortana. Select your Windows partition (this is probably C:\ and the largest) and right click. The context menu will show an option to "Shrink Partition." Select this, and specify the size you would like.

If Windows is not allowing the amount of space you would like for your openSUSE installation, you can try clearing your temp files with a utility (I use Glary Utilities) and rebooting. If this still does not work, you can use an advanced utility such as PerfectDisk by Raxco which has a special mode specifically for preparing the partition for shrinking.

Now Install

Now simply use your install media such as DVD or bootable USB to install openSUSE. I will not detail this as it is easy. See our Installation Portal for more details. 

Post-installation configuration (critical)

Finally there are a couple things you must do to get your dualboot working properly with GRUB. If installing the latest openSUSE (LEAP 42.1) you will need to update your system completely. 42.1 contained a regression which did not chainload the Windows bootloader correctly, preventing you from using your Windows system. I prefer to update with zypper from the command line interface:
"sudo zypper up"
Now reboot, and you should be able to successfully boot into your Windows system. From GRUB, select the Windows entry since the next steps will need to be taken from within Windows. Though the same changes can be applied from within openSUSE, I find it much simpler to do from within Windows.

Now from your Windows 10 desktop, right click the Start Menu. From the context menu that comes up, select "Command Prompt (Admin)." A black Windows Command Prompt box will come up. Now insert the following line into the command prompt:
"bcdedit /set {bootmgr} path \EFI\opensuse\shim.efi"
This line will instruct the computer's firmware (EFI which is the successor to the BIOS) to use openSUSE's GRUB boot loader.

And that's it. Have a lot of fun!

Sunday, February 7, 2016

Why I use openSUSE over other distributions.

The below is a response to a Facebook query on why we use openSUSE over Ubuntu. I was happy with how it turned out and thought it could prove helpful to a larger audience.

There are a great number of reasons why we use openSUSE. Ultimately, what one prefers boils down to personal taste. I'll tell you why I use openSUSE.

1) YaST:

YaST is our system administration tool. It can be used both in graphical environment and on the command line. YaST has modules for managing an enormous number of things, such as /etc/sysconfig configuration files and systemd processes to boot loader configuration and repository management. YaST provides comfortable, safe tools for working with important parts of the system that would otherwise be difficult, confusing, and potentially dangerous.

2) zypper:

Our package manager is called zypper. It has the most advanced dependency resolution available of any package manager whether it be Linux or another operating system. What this means is that it is trivial for us to perform complex installations and configurations that would be difficult or impossible elsewhere. In my experience with Ubuntu, I've had several instances where apt resolved a problem by removing X entirely, which broke the GUI system and was difficult to repair. In openSUSE, zypper prevents this sort of thing from happening.

3) Desktops; 

On openSUSE all Desktop Environments (such as Gnome, KDE, etc.) are treated equally, and can coexist on the same installation. Installing a new desktop environment is no more complex than installing any other package. Once they are installed, they can be selected from a dropdown on the login screen. Other distributions typically rely on 'spins' for delivering alternative desktop environments, such as Ubuntu Gnome. Part of why we can do this is that zypper has superior logic, and can handle this complexity better than other package managers.


The openSUSE community is famed for its responsive and competent forums. Rarely is a user left without a solution for more than a day. Competent professionals and developers answer user questions in the relevant forums. Our community is friendly and helpful.

5)KDE and Gnome; 

openSUSE is famed for having one of the most stable and well integrated KDE environments of any distribution. Less well known is our incredibly well done Gnome implementation as well, which is what I prefer and am always happy with the job our team does.

6) OBS; 

Our Open Build Service gives users and developers a common place to build and share their software with the entire community. OBS works in concert with our online portal to allow easy Direct Install (formerly One-Click) of any software built on OBS. Direct Install will automate the adding of repositories, resolution of dependencies, and installation of the software. This makes otherwise complex or time consuming tasks swift and trivial. It also allows for an ever expanding library of software, and the distribution of complex packaged solutions in the form of YaST meta-packages.

In conclusion, though Ubuntu claims to be the most user-friendly, I find that claim to be unjustified. I've always found it to be more prone to breakage. And once there is a problem, it is much harder to fix than it would be in openSUSE since we have YaST and don't often need to rely on the command line or manually editing text configuration files.