Categories
geek linux microsoft programming software tips tools ubuntu windows

WSL setup, tips and tricks

WSL or Windows Subsystem for Linux allows you to run a fully functional Linux environment, inside your Windows 10 system, without having to set up a virtual machine. It’s a lot more lightweight too, and it integrates nicely with the Windows OS, so it’s a great way to explore Linux, or use the two systems side by side for cross-platform development. This also skips the need for setting up Cygwin and whatever hacky way to access those Linux command line tools on Windows.

I’ve been using it for a while, so I’ll list a short setup guide here, and some tips & tricks to help you along.

Installing WSL

Installing WSL is really easy now. Just open an administrator PowerShell or a Command window and type:

wsl --install

That will install WSL with the default Ubuntu distribution. If you prefer something else, like Debian, you can use this command:

wsl --install -d Debian

The username and password for your WSL system is specific to the Linux distribution. So make sure you don’t forget that password. :)

There are 2 versions of WSL. If you can, run on v2. It’s faster, better and euhm, harder? Anyway, it’s faster, so that’s what you want. But sometimes, you might want to run things on v1 anyway. For example, some VPN clients break with the WSL v2 networking. The easiest way is to set your WSL distro to v1, and see if that works. It did the trick in my case with the CheckPoint VPN on my work machine.

To check your WSL version, run:

wsl -l -v

It should show something like this, if you’re on Debian and v2

  NAME                   STATE           VERSION
* Debian                 Stopped         2

To switch the Debian distro to v1, you can run this:

wsl --set-version Debian 1

Makes sense right? But you just have to know.
Switching versions can take a while as it’s being converted, so do this when you have the time for it.

Accessing your files in WSL

Ok, now let’s do some work in WSL, by typing wsl in a PowerShell window.

That’s it, you now have a shell in your local WSL system.
You’ll see something like this on your prompt:

n3wjack@Mjolnir:/mnt/c/Users/n3wjack$

That’s a mount of your Windows C-drive into the Linux system. So you can access any file from your Windows system in your Linux shell. The other way around also works.

Open up an Explorer window and enter \\wsl$ in the address bar and hit return.
You’ll see a folder pop up for each WSL distribution you have installed. So if you’ve installed Debian, you’ll see a Debian folder. From there you can access any file on your WSL system.

Windows Explorere windows showing the Debian distribution folder under the \\wsl$ network drive.

Keep in mind that this cross OS file access is pretty slow, certainly for lots of small files. So if you are planning on working on files, it’s better to choose your OS and stick with it. But it’s super handy that you can easily copy and access files from any system.

Installing software in WSL

Well, this is easy. If you’ve installed Debian or Ubuntu, so you probably know you can install more software using apt or apt-get.
WSL pretty much behaves as it should, and you can just install whatever you like using known tools.
The account you created when setting up your distro is an administrator account, so you can use sudo commands.

Moving your WSL distro to a new PC

So you have your Linux distro all set up the way you want to, and now you’ve got yourself a brand new shiny piece of hardware to work and play on. How do you move that WSL distro over to the new machine?
Luckily, it’s as simple as backup and restore. Really. It’s actually easier than moving your Windows files over.

Creating a backup of WSL works like this:

wsl --export <distribution> <filename.tar>

So if you see that your distro is called Debian after running wsl -l -v, you do this:

wsl --export Debian debian.tar

This takes a while. After it’s done, you copy the tar file over to your new shiny machine and run the following command:

wsl --import <distribution name> <install path> <tar file path>

Or actually:


wsl --import Debian c:\users\YourName\AppData\Local\Packages\Debian c:\temp\debian.tar

That’s it! You now have your full distro moved to a new machine, including all settings and files.

For more info on WSL, see the excellent official Microsoft documentation.

Categories
geek linux society software ubuntu Uncategorized

fight corona with folding@home on a headless ubuntu linux box

I wrote about using Grid computing to fight cancer a while back using leftover Azure credits.
So now with Corona having the world in its grip, it’s time to shift our attention to that nasty virus and throw some CPU cycles at it instead.

If you have an Ubuntu machine running somewhere and you want to install the Folding@Home client on it, you can do so by following the simple steps listed below.

First download the FAH client application:

wget https://download.foldingathome.org/releases/public/release/fahclient/debian-testing-64bit/v7.4/fahclient_7.4.4_amd64.deb

Then, run the installer. It will guide you through the setup process.

sudo dpkg -i --force-depends fahclient_7.4.4_amd64.deb

Just choose a name and an optional team. You best let it start automatically as well.

That’s basically it. Since you’re running it all headless, there’s no need for any of the other packages listed on the site.

You can check if things are running by checking the log file stored in /var/lib/fahclient/log.txt

If you want to change the configuration after installing the client in /etc/fahclient/config.xml you have to start and stop the client like this:

sudo /etc/init.d/FAHClient stop
sudo /etc/init.d/FAHClient start

If you had the World Grid Computing client installed already, you can stop that by using:

sudo /etc/init.d/boinc-client stop

If you want to full install instructions for the FAHclient or installation instructions for other flavors of Linux, check out the official installation guide.
Once it’s running and processed a few work units, you can check your stats at this URL: https://stats.foldingathome.org/donor/yourname

Have fun kicking Corona ass!

Categories
geek internet microsoft opensource science ubuntu

cure cancer with leftover azure credits

An azure window grid, reflecting clouds. Perfect fit isn't it?Maybe you have some Azure credits lying from a Visual Studio subscription you have from work, waiting to be spent on cool and nifty experiments, but don’t end up actually using them.
How about spending some of those dollars on cancer research? Or help find a cure against Zika? Fighting AIDS maybe?

Enter the World Community Grid, a vast grid computing network running on the Open Source BOINC client software, started as a philanthropic initiative by IBM.
Sounds good right?

All you need to do is create a WCG account, spin up a Linux machine on Azure, install the BOINC headless client on it and link it to your account. In about half an hour you’ll be computing cancer markers, folding genes or fighting some horrible disease. Well, the software will be doing that really, which is even better.

Here we go, step by step.

1. Setup your Azure Linux machine, I chose an Ubuntu 16 LTS machine. I pick the classic VM because its way easier to setup.
Depending on the type of machine you’ll have more compute power and thus turning out more results. Try a few out and see how you can maximize your Azure credits.

2. Once provisioned, log in using PUTTY or your favorite SSH client. Now it’s time to update the Linux packages and then install the BOINC client:

sudo apt-get update
sudo apt-get install boinc-client

3. Setup auto startup of the BOINC client, so if your machine reboots, you don’t have to go in and start it up yourself (automate all the things remember):

sudo /etc/init.d/boinc-client restart

4. Get your BOINC authentication key so you can hook up the client to your account:

boinccmd --lookup_account https://www.worldcommunitygrid.org

5. Now use the key to attach your selected projects from WCG:

boinccmd --project_attach https://www.worldcommunitygrid.org

Of course you want to check what’s going on, so you can check the BOINC client’s state like this:

boinccmd --get_state

This should give you a list of the tasks and their state. It might take a while before they start kicking in, but you’ll see results coming in after a day or so on the WGC website under your contribution history.

That’s about it. Your client is all set up. All you need to do is keep those VM’s running in the cloud, which normally takes non effort at all. Neat.

There are more boinccmd command line switches in the documentation if you’d need to troubleshoot or find out more.

What’s next? Well, you can set up more than 1 machine if you like, or a heavier one and see what gives you more bang for your buck.  You can also join my World Computing Grid team called “Team Azure” and see how many cloud bucks we can burn. It’ll be effortless fun, I promise! ;)

Credit goes to Joel Christian’s headless Ubuntu installation guide. His guide made my quest to setup BOINC on an Azure Ubuntu box a lot easier.

Photo by Dan, cc-licensed.

Categories
geek linux software ubuntu wordpress

getting a wordpress linux box up in 5 minutes (*)

diving

If you’ve ever went to the trouble of setting up WordPress on a Windows machine yourself, going through a PHP, MySQL and phpMyAdmin installation, then sort through all the IIS crap you run into you’ll love TurnKey Linux virtual appliances (aka pre-installed virtual machine boxes).

You can for example download a WordPress appliance which has all the stuff mentioned above pre-installed, launch it in VMWare Player, go through a 5 minute config et voilà! You have your very own virtual Ubuntu box up and running with a fully functioning fresh WordPress install on it. You can even flex your 1337 Linux command line skillz through “Shell in a box” which simulates a shell window in your browser. Or you can use SFTP/SSH. Wickedness indeed.

There’s more fun to be had though. Lot’s of other cool appliance are available containing tons of Open Source Software to be messed with. There’s a LAMP stack, one for Drupal, Ruby (how hip!) etc. Not quite geeky enough for ya? Well alright, go ahead then, get one of those appliances and upload it to Amazon EC2 and be all “in the cloud”. Cause they can do that you know. Oh yeah.

Don’t know if it’s a good idea though. Security wise and all.

(*) If you have VMWare Player installed and already downloaded the zip file of course. :)

Photo by MissMaze, cc-licensed.

Categories
freedbacking geek opensource rant software ubuntu windows

still a windows geek

Originally this post was called “I’m a Windows geek”, and was about how I installed Ubuntu after not being able to reinstall Windows XP because something was making the hardware detection lock up. Using Ubuntu I did manage to get through the hardware detection, and eventually diagnosed the problem to be able to reinstall the Redmond OS.

I spent a few days in Ubuntu back then, as it was the only running OS on my machine, and I thought that was a good time to find out if I could do everything I did on my Windows machine. At first I was impressed. Ubuntu installed without a glitch, basic software was installed and the UI was slick. Problem was I had to find replacement Linux tools for all the stuff I was used to in Windows and then I started noticing I’ve gotten quite used to the WinWorld apparently.

Little things ended up being very frustrating though. Shortcuts that work different in FireFox, mouse wheels that didn’t work at all… A lot didn’t feel intuitive coming from an MS system.

Eventually I managed to reinstall XP, and I totally gave up on the Ubuntu setup. A number of months ago I retried the Ubuntu path, upgraded it to the latest version and give it another shot. I Just noticed that it has been a few months again since I even booted it…

No matter how much Linux pwnz the Windows OS according to some, when you’re used to it, you kind of expect the same features. It sucks having to give up your favourite programs for alternatives that aren’t quite the same. Some of them are in essence equally good, but it doesn’t have to be that different to start sucking compared to what you’re used to.

WinAmp for instance totally rocks. I haven’t seen anything quite as good on Linux (or on Windows for that matter). Maybe I’m wrong though. I haven’t spent quite as much time searching for software tools on Linux than I have on Windows, I have to admit that. But luckily things are getting better at that front. Since I used a lot of FOSS software, and a lot of that is being ported over both platforms, I don’t have to stop using my beloved FireFox, GIMP, Open Office or VLC, which is great. So migrating is becoming a lot easier because of this, but not quite easy just yet.

One other huge frustration is that in Linux some things simply don’t work. ATI video cards anyone? Dual head displays? In fact, one of the differences between Windows and Linux in my eyes is this:

On Windows I’m surprised if a new piece of hardware I got doesn’t work.
On Linux I’m surprised (and happy) if it does.

I’ve gotten used to my OS to just work for me. I don’t feel like spending most of my time figuring out how to get something basic to work. It can be fun digging into configuration files and advanced settings if you have the time to do so, but in most cases I just want to run Setup.exe > Next > Next > Done and start using the damn app. By using Ubuntu I rediscovered how easy it can be to setup a Windows system.

So I guess I’m still a Windows geek for now.
Vista here I come? Oh crap…

Photo by Andrew Mason, cc-licensed