Category Archives: Linux

Re-installation of Linux, The Fuckery of Windows 10 & Microsoft Licensing

Notice: TLDR is at the very bottom.

Notice: This post may damage sensitive ears. At points it may be vulgar.

Notice: If you want to get to just the Linux parts, scroll down to the “Patience and Linux Saves The Day” headline.

The Beginning of Horror

First a few positives for Windows 10. It runs a Bash system thingy on it now, that’s pretty cool. It loads much faster than Windows 7 (and Vista, LULz). It still plays and supports basically all the games first. It has active tiles, but I guess that’s an arguable positive.

Continue reading

Virtual Box Issue “Kernel driver not installed (rc=-1908)”

Alright, nothing like multi-OS environments so you can prepare for the maximum number of issues that might come up. My recent issue is re-opening some virtual machines, originally created on Windows 10, and now with intent to use them on Linux. When trying to open these existing virtual machines I’ve gotten the following error:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing

‘modprobe vboxdrv’

as root.

where: sublibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) – The support driver is not installed. On linux, open returned ENOENT.

vbox-error1908

Error Screenshot on Ubuntu Linux

Upon researching I found this could occur on multiple operating systems really, and have included the fixes for the various platforms. First however, let’s talk about the Linux fix.

Linux

For this particular situation I tried the command given in the dialog modprobe vboxdrv to see if that would fix it. But no go. I got some additional errors that seemed nonsensical.

arg

At this point I dug into the search engine. The first post I found seemed to make sense. I tried the commands.

sudo apt-get install build-essential module-assistant
sudo m-a prepare

step1.png

That went well, so on to the next step of building the virtualbox kernel driver.

sudo /etc/init.d/vboxdrv setup

That gave me “sudo: /etc/init.d/vboxdrv: command not found“. So I did a find for the file.

sudo find / -name "vboxdrv"

The results pointed out that my install of Virtual Box, done via the Ubuntu App Store, was version 5.2.8. This is clearly not going to work out well because the latest version is 6.0.4 right now. Next I uninstalled this old version via the Ubuntu App Store Application.

step2.png

Next I navigated back out the Virtual Box Download page. There I downloaded the latest version and installed it via the downloadable Ubuntu *.deb file.

This installs Virtual Box through the Ubuntu App Store application but sets up the more up to date repository to get the installation from.

step3.png

Ok, so all this at this point I ran VirtualBox after the installation, it installed according to the standard directories this time but still didn’t work. What the hell, I’ve no idea. I did another search and found Øyvind Stegard’s blog entry on fixing the “VirtualBox + Secure Boot = Fail“. He states at the start of the blog entry,

“The problem is the requirement that all kernel modules must be signed by a key trusted by the UEFI system, otherwise loading will fail. Ubuntu does not sign the third party vbox* kernel modules, but rather gives the user the option to disable Secure Boot upon installation of the virtualbox package.”

Stegard then adds two very important links with pertinent information about this issue, I’ve reposted here too:

After going through Øyvind‘s steps, I finally got the previously specified command from above.

sudo /etc/init.d/vboxdrv setup

Now VirtualBox started up just fine. Finally. Ugh! But hey, in the process I now understand a little bit more about secure boot, current BIOS’s, and related hardware concerns. Not that I had set out or wanted to deal with this right now, but boom, it’s done!

Alright, but if you fall into this with MacOS, it’s a slightly different story. Here’s some fixes around that.

MacOS

Ok, I started writing up and searching as I wrote, and instead of continuing to write it looks like this blog entry popped up with the exact error I’d gotten in the past (the reason I wanted to included MacOS for future ref). If you’ve gotten this error, check out Xilin Sun‘s post Solving VirtualBox “Solving VirtualBox “kernel driver not installed (rc=-1908)” Error on macOS“.

Fixing Windows 10 Drives for Linux Mounting

I mentioned, since I’d run into this problem, a while back in my post “Oh, exFAT Doesn’t Work on Linux” which then includes a fix. Here’s a slightly more updated fix for the same and another fix for mounting just the Windows 10 partition if you have a Windows 10 System Drive (i.e. the drive with the OS on it). First, the exFAT install can simply be done with the following, no need to go get it with git via a clone.

sudo apt-get install exfat-fuse exfat-utils

The other trick is to get a Windows 10 System Drive mounted. To do that, open up the disks application and click the gears on the drive. Then make the following settings by clicking off for “User Session Defaults”. Then you can set “Mount at system startup” and add “remove_hiberfile” to the end of the command parameters as shown. Now the drive can be mounted, just click the mount button and you should be set.

drive-setup-for-mount-windows-10-drive.png

Windows 10’s Path of Destruction and Garbage Support for Linux from Dell

At this point, I’d say do not buy a Dell XPS 15 unless you are only going to use Windows 10 apps and such on the machine. Linux runs like garbage on the machine. The generic drivers that allow one to sort of load Linux onto the machine work mediocre at best, with lot’s of crashes, kernel panics, and related wrecks within seconds and minutes (if you get that far) after starting the machine with Linux. So that the situation there.

Docker, Hyper-V, and VirtualBox Conflict

As I’ve used Windows 10 I keep hitting hard roadblocks on getting things done. After years of MacOS and Linux usage it’s kind of an ongoing, slow motion, insulting train wreck how monopolistic a lot of their applications are still built to run. For example, the latest application that I’ve tried to use that is effectively disabled is Virtual Box. Upon further research I realized I can’t used Virtual Box if I have Hyper-V installed. But that means if I want to use the latest and greatest Docker software then I either have to enable Hyper-V and use Docker or disable Docker and Hyper-V and use Virtual Box. Which means I could go back a version or two of this and that and use Docker-machine with Virtual Box, but, seriously, that’s ridiculous.

The way, from what I understand so far, is that they’ve built the operation of Hyper-V to work on Windows 10 in a way that it effectively prevents Virtual Box, and I suppose VMWare, from actually operating. So one has to go and disable Hyper-V in order to be able to run Virtual Box.

Enabling / Disabling VirtualBox and Hyper-V

Ok, here’s one way to do this with Powershell. Open up Powershell with the “Run As Administrator” option. You’ll have to do that by clicking the start menu (or whatever it’s called these days) and typing “power” which brings up the Powershell application icon. Right click on it and select “Run as Administrator”.

dism_upd

hyper-vHere’s the dialog where one can disable Hyper-V to run VirtualBox too. One this is run, or disabled, Windows 10 will likely want you to restart your computer. You’ll actually need to do this too, because VirtualBox will still die out without a clean OS launch for the base underlying operating system.

Once the restart is complete however, VirtualBox should start up and run virtual machines just fine. Emphasis as usual for Windows on the keyword of should.

Virtual Machine SITREP Resolved Poorly

At this point I’m moderately ok with this solution. It just means that I need to re-create all of my images in Hyper-V and nuke VirtualBox though. I’m really indifferent on which one I need to use, but would have liked to have RTFM’ed the docs before so I had realized upgrading to Windows 10 and using Hyper-V for Docker would kill off my VirtualBox images that I’ve been using for months. Oh well, onward!

The other thing that I find horrifying about this though, is as I’ve learned why and how Hyper-V disabled VirtualBox from running side by side, it seems like 90’s era monopolistic Microsoft building something in a way that disables competition. Ok, so I know it isn’t really because of that, but it’s close enough that it just seem dirty, nasty, and all around kind of disingenuous on Microsoft’s part. Especially considering they neglected Hyper-V for so many years and of course now are all like, “hey, Hyper-V is the way the future, nobody uses it outside of the Windows camp, but it’s the way of the future so bow down and use it Windows users!!” But whatever, I’m at least back in business to get some things done and get some development images put together in Hyper-V.

Hyper-V plus Docker for Windows 10

At this point, since Linux has such poor support on the Dell XPS 15 I’m just sticking with Windows 10 and going the Hyper-V + Docker + Virtual Machines path for what I’m working on. More on this soon, and I’ll be mentioning various things on Twitch soon too. When I get back around to getting the Linux + XPS 15 situation sorted out and tried out again I’ll be sure to blog that too!

 

 

‘bash’ A.K.A. The Solution for Everything – Bourne Shell as per v7 Unix to Today’s

In 1979 Unix v7 started being distributed with the original Bourne Shell. Simply, it’s a program that sits at /bin/sh and runs in the terminal. You may ask, “what’s the difference between a shell and the terminal?” Let’s cover that right now, because it’s something that routinely isn’t common knowledge, but it really ought to be as it sets the basis for understanding a lot of what is going on in Unix based systems (that includes almost every practical system on a PC, Server, in the cloud, on your phones, and more. Probably easiest to explain it simply as everything that isn’t the Microsoft Windows OS)

A Shell and the Terminal

Terminal – A terminal is the text input and output environment on the system.

Shell – This is the command line interpreter that is run at the terminal.

Another point of context, is that a terminal, shell, and the word console are all used in various ways and sometimes interchangeably. However, these words do not mean the same thing at all. They are distinct individual parts of the system. For example, console, which is used in a strangely disingenuous way all over Microsoft phrasing, is the physical terminal of the system, which is where the system terminal, i.e. the thing I’ve described above, actually runs in so that we can type and interface with it as humans.

Albeit, as English does, these definitions aren’t always taken as the exact, appropriate, and pedantically correct definitions today. For example, many at Microsoft argue that the console is just the terminal, that the terminal is the console. Sure, ok, that’s fine I can still follow along in the conversation, and this adds context, for when someone steps out of line and uses the more historically specific definition in context of a conversation.

Alright, that’s all groovy, so now we can get back to just talking about the shell, all the power it gives the Unix/Linux/POSIX System user, and touch on the terminal or console as we need to with full context of what these things actually are!

Gnu-bash-logo.svgIntroducing Bash!

Alright, with that little bit of context around Bourne Shell, let’s talk about what we’ve actually got today running as our shell in our terminal on our console on the computers we work with! The Bourne Shell, years later had a replacement written for it by Brian Fox. He released it in 1989 and over the years it became a kind of defacto replacement of Bourne Shell. The term ‘BASH’ stands for Bourne Again SHell.

440px-Bash_screenshotThe Bash command syntax is a superset of the Bourne Shell syntax. It provides a wide range of commands that includes ideas drawn from the Korn shell (ksh) and the C shell (csh) such as command line editing, command history, the directory stack, the $RANDOM and $PPID variables, and POSIX command substitution syntax. If many of those things make you think, “WTF are these variables and such?” have no worries, I’ll get to em’ soon enough in this series!

But with that, this is the beginning of many short entries on tips, tricks, tutorials, syntax, history, and context of bash so until next time, cheers!

References & Collected Materials

Oh, exFAT Doesn’t Work on Linux

But to the rescue comes the search engine. I found some material on the matter and, as I’ve learned frequently, don’t count out Linux when it comes to support of nearly everything on Earth. Sure enough, there’s support for exFAT (really, why wouldn’t there be?)

Check out this repo: https://github.com/relan/exfat

There’s of course the git clone and make and make install path or there’s also the apt install path.

git clone https://github.com/relan/exfat.git
cd exfat
autoreconf --install
./configure
make

Then make install.

make install

Of course, as with things on Linux, no reboot needed just use it now to mount a drive.

mount.exfat-fuse /dev/spec /mnt/exfat

To note, if you’re using Ubuntu 18.04 the support will just be available now so re-click on the attached drive or memory device you’ve just attached and it will now appear. Pretty sweet. If you want to use apt just run this command.

apt install exfat-fuse

That’s it. Now you’ve

Ubuntu

Starting an Ubuntu Dev Tools List

I’ve recently setup a completely clean virtual machine for doing web, system, and related development on Ubuntu. Here’s the shortlist of what I’ve installed after a default installation. The ongoing list of tools and related items I have installed on my Linux dev box I’m keeping here, and it will be kept as a living doc, so I’ll change it as I add new tools, apps and related changes. So lemme know what I ought to add to that list and I’ll add it to my docs page here. Here’s what I have so far…

Other To-dos

  • Always run sudo apt-get update once the system is installed. It never hurts to have the latest updates.
  • I always install Chrome as my first app. Sometimes the Ubuntu Software Center flakes out on this, but just try again and it’ll work. I use the 64-bit Chrome btw, as I’ve noticed that the 32-bit often flakes out when attempting installation on my virtual machines. Your mileage may vary.

What this enables…

At this point I can launch into about any language; Java, JavaScript, and a few others with a minimal amount of headache. Since it’s a Linux instance it gives me a full range of Linuxy things at my disposal.


Default Java Installation

  1. Run a ‘sudo apt-get update’.
  2. To install the default Java JRE and the JDK run the following commands.
    sudo apt-get install default-jre
    sudo apt-get install default-jdk


Oracle Java v8 Installation

  1. sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java8-installer


WebStorm Installation

  1. I download the application zip from JetBrains and then run
    tar xfz WebStorm-*.tar.gz
  2. Next I always move the unzipped content to the directory in which I’d like to have the application stored. It’s good practice to not keep things in the download directory, just sayin’. Generally I put these in my usr/bin directory.
    mv /downloads/WebStorm-* your/desired/spot
  3. Now at your terminal, navigate to the path where the application is stored and run the WebStorm.sh executable.
    ./bin/webstorm.sh
  4. To add WebStorm to the Quicklaunch, just right click on the icon and select to Lock to Launcher.


IDEA IntelliJ Installation

  1. Follow all the steps listed under WebStorm, it’s the exact same process.


Sublime 3

  1. Go to download the latest v3.
  2. Run the package and it should launch the actual Ubuntu installer, setup Sublime for bash use and get it installed.

(NOTE UPDATED 1/18/2016 > The installer doesn’t seem to get it installed, so I went with this link http://olivierlacan.com/posts/launch-sublime-text-3-from-the-command-line/ which has a good solution.)