Share with friends and colleagues on social media

wsl_blog_1_1

It was November 28, 2016 when I came across an article on TechRepublic which talked about Microsoft’s plans for the future of Linux and Bash on Windows 10. The first read made me feel uncomfortable (I can’t really say why) but after the second read I started believing that this is in fact a great opportunity. Running Linux binaries natively on Windows … that sounds awesome indeed. However, it’s quite unfortunate that Microsoft enabled the wrong Linux (that’s my personal opinion) by default within the Windows Subsystem for Linux (WSL) and it is time to change it to the real stuff.

If you are one of those people who says: “Wait a second, I’m running SUSE Linux on my desktop / laptop already and I’m not using Windows 10 by any means” then you might want to stop reading now because you are already there. But we cannot neglect the reality that Windows is running on most of those devices and it’s hard to have both Windows and Linux truly accessible at the same time. You’d either have to go with a dual boot setup, or you may leverage virtualization and run a Linux VM on Windows (or vice versa), or you might be familiar with Cygwin allowing you to run recompiled Linux binaries on Windows. All of those options have their advantages and disadvantages – so do we need another one?

Yes, we do. But we need one; 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.

Assuming that you are running Windows 10 already, there are simple steps you have to follow to install a SUSE Linux distribution inside WSL (as always, I’m sure there are easier ways to achieve the same. Feel free to use the comment function to let everyone know how you do it differently). You have currently two options, openSUSE Leap 42.2 and SUSE Linux Enterprise Server 12 SP2. I’ll describe the process for openSUSE Leap 42.2 below (it works the same way for SUSE Linux Enterprise Server 12 SP2, just with another archive to download and extract):

  • Download the openSUSE docker userspace:
    $ wget -O openSUSE-42.2.tar.xz https://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: http://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

Now you’re done. Without a reboot, the Windows start menu continues to show the old, orange icon. You could rebuild the start menu index or just wait until your next reboot. If anyone knows how to update the icon which is shown when using the search (Windows button, enter “bash”), let me know.

Last but not least, let’s navigate to %AppData%\Microsoft\Windows\Start Menu\Programs and give the entry a proper name. I called the entry “Bash on SUSE on Windows”.

wsl_blog_1_2

So now that we have – in my opinion – the proper Linux placed inside the WSL, it is time to do a little more with it. Let’s take a look into getting the user setup straight with part 2.

Table of contents:

(Visited 1 times, 1 visits today)

Share with friends and colleagues on social media
Tags: , ,
Category: Enterprise Linux, openSUSE, SUSE Linux Enterprise Server, Technical Solutions
This entry was posted Thursday, 12 January, 2017 at 11:34 am
You can follow any responses to this entry via RSS.

Comments

    • Hannes Kühnemund says:

      Hi ealin,

      thanks for the hint and the URL. I know this tool too, but thought it is a little bit too complex for what I wanted to do.

      For anyone running / and switching between multiple distributions within WSL, the distribution switcher might be a good fit.

      I for myself use bat files to rename and manage the rootfs.xxx folders.

      Regards, Hannes

  • dvosburg says:

    This is really cool – and I will definitely be trying it this weekend! Thanks, Hannes!

    • Hannes Kühnemund says:

      Sure dvosburg.

      I’m currently writing part 2, which describes X support etc. Keep an eye on SUSE blogs 😉

  • roelandjansen says:

    Hannes,

    I believe that this may do the trick:

    http://www.askvg.com/how-to-change-icons-and-text-labels-names-of-start-screen-tiles-in-windows-8/

    Furthermore — just like the ubuntu version quite a few things cannot be done due to constraints but hey it’s cute 😉

  • roelandjansen says:

    ok. above works. I changed the props to an suse icon and named ‘bash”

  • shamim_gmail says:

    How do I do this with sudo?

    One of the features I rely on in Linux that Windows doesn’t have is true separation of concerns. That being said, I don’t login as root to do anything unless it’s a critical system crash or the problem requires elevated root privileges as well as the root environment. Not having sudo under LInux feels inherently wrong.

    Thanks.

    • Hannes Kühnemund says:

      Hi shamim_gmail,

      getting users right + getting sudo installed, will be discussed in part 2.

      Regards,
      Hannes

  • Hannes Kühnemund says:

    Quick heads up, I received a question about missing sudo and the situation, that the default users right now is root. I can assure you, that all of that (+ X Windows) is handled within part 2 of this blog series.

  • victorhck says:

    Hello!

    I stop read after:

    “Wait a second, I’m running SUSE Linux on my desktop / laptop already and I’m not using Windows 10 by any means”

    Just kidding! 🙂

    I’m not a Windows user, but I find this interesting… I’ll wait the 2nd part!

    ‘ve phun!

  • Magl72 says:

    Thank you. I’ll wait for the second part

  • Hannes Kühnemund says:

    Part 2 has just been released. All graphical stuff will be discussed in part 3, as the user setup filled part 2 completely.

  • drobb says:

    Hannes,
    This is fantastic. I work with SUSE and openSUSE all day long, now I can have it on my Windows 10 Desktop too. looking forward to part 4.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *