First off, you need to obtain the Pulse Secure client as a deb file from your network administrator. I have version 8.2R5.

For some reason the client does not list any dependencies when installing so you must install the needed (32 bit) libraries by hand (PulseClient.sh does not work without changes):

$ sudo apt install libwebkitgtk-1.0-0:i386 libdconf1:i386 dconf-gsettings-backend:i386

It is also necessary to include Pulse’s libraries in ld’s search patch (LD_LIBRARY_PATH). This is done by running this:

$ echo "/usr/local/pulse" | sudo tee /etc/ld.so.conf.d/pulse.conf
$ sudo ldconfig

The above instructions work for Ubuntu 16.04. 16.10, 17.04 and 17.10. In 17.04 and 17.10 you also need to install net-utils to get ifconfig

$ sudo apt install net-utils

After using Linux Mint with Cinnamon for a long time I am now back with Ubuntu with GNOME (reluctantly, I may add).

One thing I have noticed is there does not seem to be an option in the settings to change your preferred terminal emulator.
Continue reading

(This guide applies to any Debian/Ubuntu based distribution)

For some reason (complexity perhaps) it is not possible to configure full-disk encryption and LVM from the graphical installer in the desktop edition. It is possible to select full-disk encryption but this only creates one filesystem (root).

I want to use LVM to allow me to have more than one filesystem without having to enter more than one password during boot-up. It is not impossible to install Ubuntu desktop (or Linux Mint as in this guide) with encryption and LVM but it does require a little more work.

Continue reading

I decided to upgrade my web server containers to PHP 7 but ran into a problem with WordPress, all articles had no text. The problem seemed to be within the plugin CodeColorer since disabling it resolved the problem

PHP Warning:  preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead in /var/www/wp-content/plugins/codecolorer/codecolorer-core.php on line 50

In wp-content/plugins/codecolorer/codecolorer-core.php locate this code block:

  /** Search content for code tags and replace it */
  function BeforeHighlightCodeBlock($content) {
    $content = preg_replace('#(\s*)\[cc([^\s\]_]*(?:_[^\s\]]*)?)([^\]]*)\](.*?)\[/cc\2\](\s*)#sie', '$this->PerformHighlightCodeBlock(\'\\4\', \'\\3\', $content, \'\\2\', \'\\1\', \'\\5\');', $content);
    $content = preg_replace('#(\s*)\<code(.*?)\>(.*?)\</code\>(\s*)#sie', '$this->PerformHighlightCodeBlock(\'\\3\', \'\\2\', $content, \'\', \'\\1\', \'\\4\');', $content);

    return $content;
  }

and replace it with this

  /** Search content for code tags and replace it */
  function BeforeHighlightCodeBlock($content) {
    $content = preg_replace_callback('#(\s*)\[cc([^\s\]_]*(?:_[^\s\]]*)?)([^\]]*)\](.*?)\[/cc\2\](\s*)#si', function($matches){
      return $this->PerformHighlightCodeBlock($matches[4], $matches[3], $matches[2], $matches[1], $matches[5]);
    }, $content);
    $content = preg_replace_callback('#(\s*)\<code(.*?)\>(.*?)\</code\>(\s*)#si', function($matches){
      return $this->PerformHighlightCodeBlock($matches[3], $matches[2], '', $matches[1], $matches[4]);
    }, $content);

    return $content;
  }

It would of course make sense to find a replacement for CodeColorer since it does not seem to be maintained but that would probably also mean having to edit all old articles.

I’ve been running KVM for quite a while on my lab server. It’s been running without issue but with the release of vSphere/ESXi 6.0 I felt it was time to move back to VMware.

I wanted to preserve the virtual machines already running so I set out to move these to ESXi. I ran into some issues which I’m not sure is a generic problem or specific to ESXi 6.0 but I’ll describe what I have done.

In order to convert the existing disk images to VMware’s vmdk format you should you use the program qemu-img from the package qemu-utils (in Ubuntu).

The process is straight-forward

  • $ sudo qemu-img convert -p -i DiskImage.img -O vmdk DiskImage.vmdk
  • Transfer disk image to ESXi (using scp (enable ssh in ESXi)) or NFS (as I did)
  • Create new virtual machine with custom options and add the converted disk
  • Boot

Unfortunate this did not work as expected, when booting the converted images, the Linux instances inside all crashed during boot with this error message (or something similar)

lib6.so: unsupported version 0 of verneed record

It turns out, two steps were missing; after transfering the converted disk image to ESXi, do this from the ESXi cli (via SSH)

# vmkfstools -i /vmfs/volumes/nfs1/DiskImage.vmdk -d thin /vmfs/volumes/datastore1/MyServer/DiskImage.vmdk

-d is the output format which can be zeroedthick, eagerzeroedthick or thin.

Now open the newly created vmdk file in vi and change the line ddb.adapterType from ide to lsilogic.

After doing this, add the image(s) to a newly created VM and boot.

(This was done in Ubuntu and will work with any Linux variant with qemu-img. If you want to do this in Windows, StarWinds V2V converter is said to be able to do the job)

As mentioned in my previous post i synchronize my wallpaper folder between my desktop computers.

While the are various ways of setting a random desktop background (XFCE – which I use – has this built in), I’ve had to conclude it’s just easier from the command line.

In XFCE it is not possible to do this from cron it seems, so I made a script which is run at start-up:

#!/bin/bash

IFS='
'

DIR="$HOME/etc/wallpaper"



while true
 do
        PIC=$(ls $DIR/*.* | shuf -n1)
        # Uncomment based on desktop environment
    # XFCE:
    #/usr/bin/xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s ${PIC}
    #/usr/bin/xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-style -s 5
    # GNOME2
    #gconftool-2 --type=string --set /desktop/gnome/background/picture_filename ${PIC}
    #gconftool-2 --type=string --set /desktop/gnome/background/picture_options zoom
    # GNOME/Unity/Cinnamon
    #gsettings set org.gnome.desktop.background picture-uri file://${PIC}
    #gsettings set org.gnome.desktop.background picture-options zoom
    # Generic - uses feh
    #feh --bg-fill ${PIC}
        sleep 120
done

In order to make the script run at start-up, create the file $HOME/.config/autostart/wallpaper.desktop

[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Rotate bg
Comment=
Exec=/home/alj/bin/setwallpaper.sh
StartupNotify=false
Terminal=false
Hidden=false

If you are not using a desktop environment like GNOME or XFCE, add the script to .xsession.

My collection – Enjoy.

(This is the same folder I use for randomized backgrounds on my computers)

If you have the need to wake up machines on your local LAN from the outside, there are a few steps you need to take to get it working with OpenWRT (12.09)

  1. Select an unused IP address (which you are certain will never, ever be used). I will be using 192.168.1.254 in the following
  2. Log into OpenWRT and go to System → Startup → Local Startup (the text input at the bottom of the page) and add this line above exit 0:
    ip neigh add 192.168.1.254 lladdr ff:ff:ff:ff:ff:ff nud permanent dev br-lan
  3. Save (or Submit depending on the theme used)
  4. Go to System → Software and verify the package ip is installed. If not, do so.
  5. Go to Network → Firewall → Port forwards and add a new rule like this:
    forward(select custom to enter the internal IP address).
  6. Save and apply
  7. Reboot the router

That’s it. Now wake on lan should work from the WAN (Internet) as well.

This is what it looks like in the WoL Wake On Lan Wan Android app:

wake-on-wan

(via)

I’ve started to use copy.com instead of services like Dropbox, SpiderOak and similar.

Why? Because it’s fast (unlike Dropbox), it’s simple (unlike SpiderOak) and it’s able to run on all major platforms (Windows, OSX, Android, iOS and Linux, both graphical and console. Both are native Linux application).

This article explains how to install the agent on Linux – more specifically how to run the console agent on a Ubuntu-derived distribution.

Continue reading

Nowhere.dk (the entire domain) was offline today from 09:47 to 10:46 UTC follwing a major outage at Cloudflare.com.

Points to Cloudflare.com for releasing a full incident report.