Microsoft LOVES Linux

Sr. Product Manager SUSE Linux Enterprise SUSE, Hannes Kühnemund, describes how to run openSUSE Leap 42.2 and SUSE Linux Enterprise Server 12 SP2 on Windows 10 in a blog post.

Microsoft released Windows 10 Redstone 2 build 14951 for the Fast Ring of the Windows Insiders Program last October, updating the Linux subsystem.

However, openSUSE disagrees with the way Microsoft implemented Linux in Windows 10 WSL. Back in March 2016, Ubuntu announced it partnered with Microsoft in order to bring their Linux version to Windows natively, a competitor of SUSE.

Kühnemund writes that he found it “quite unfortunate that Microsoft enabled the wrong Linux (that’s my personal opinion) by default within the Windows Subsystem for Linux (WSL)” and says it was time to “change it to the real stuff.

Since the Ubuntu integration, Windows 10 users can access their Windows filesystem from within Bash on Ubuntu on Windows, a process that allows them to work on the same set of files using their preferred Windows tools or Linux command-line tools.

How to install SUSE Linux distribution inside WSL

In order to have Windows and Linux truly accessible at the same time you need to either go with a dual boot setup, or leverage virtualization and run a Linux VM on Windows (or vice versa), or use Cygwin that allows you to run recompiled Linux binaries on Windows.

Kühnemund points out that all of those options have their advantages and disadvantages, and clarifies that users need another way. “The integrated one leveraging the green Linux from SUSE. Why SUSE? Well, SUSE knows what they are doing because they have been in the Linux business since 1992. Try to find a Linux “vendor” (or in that sense, distributor) which is older. You won’t. There aren’t any. OK, enough with the self-praise. Let’s get started.

He explains the simple process you have to follow in order to install SUSE Linux distribution inside WSL:

  • Enable the Windows Subsystem for Linux (WSL): A great step-by-step guide can be found here: //msdn.microsoft.com/en-us/commandline/wsl/install_guide. During the install you will need to create a non-root user and password. I’ll refer to this user as <linux_user> in the next steps.
  • Download the openSUSE docker userspace:

$ wget -O openSUSE-42.2.tar.xz //github.com/openSUSE/docker-containers-build/blob/openSUSE-42.2/docker/openSUSE-42.2.tar.xz?raw=true

  • Open the bash shell, which you find in your Windows Start menu under “Bash on Ubuntu on Windows” (click the Windows button, type “bash” and then hit Enter). True, it’s still Ubuntu but we only need to run a few commands there before we can replace it.
  • Extract the openSUSE userspace (ignore any warnings) and exit the bash shell:

$ sudo mkdir rootfs

$ sudo tar -C rootfs -Jxf openSUSE-42.2.tar.xz

$ exit

  • Backup the old rootfs (Ubuntu) and copy the new openSUSE rootfs. Open a Command Prompt window (Windows key, enter “cmd” and hit Enter) and run the following commands:

cd %localappdata%\lxss\

rename rootfs rootfs.ubuntu

move .\home\<linux_user>\rootfs .\

  • The new openSUSE userspace will, of course, not include the user that you created when you installed Bash for Windows, nor does it have things like ‘sudo’. To start just set ‘root’ as the default user. While still in the Command Prompt window run the following:

lxrun /setdefaultuser root

  • When exiting the command prompt, start bash from the start menu (Windows key, enter “bash” and hit Enter) and you have your openSUSE Leap 42.2 environment running within WSL.

Now let’s also change the orange icon to a cool green one. The one I’m using is coming from iconarchive.com and can be found through this link: //www.iconarchive.com/show/nuoveXT-icons-by-saki/Apps-suse-icon.html

Download the .ico file and copy it to %localappdata%\lxss\. In a command shell execute the commands (or simply use Windows Explorer, whichever suits you best):

cd %localappdata%\lxss\

rename bash.ico Ubuntu.ico

rename Saki-NuoveXT-Apps-suse.ico bash.ico