Install Retrospect on FreeBSD


Updated August 2018

FreeBSD 11.2 w/ Retrospect 15.1 (x64)


If you don't already have the Linux libraries installed, you will need to install and set them up, first.

Run this to enable Linux in /etc/rc.conf:

sysrc linux_enable=YES

Load Linux kernel support:

kldload linux

Install the latest CentOS binaries:

pkg install linux_base-c7

The Retrospect installer script uses bash, so you may want to install that and create a symbolic link for it, as well:

pkg install bash
ln -s /usr/local/bin/bash /bin/bash

Download the 64-bit Retrospect 15.1 Linux client:

pkg install wget
wget --no-check-certificate https://s3.amazonaws.com/download.retrospect.com/software/linux/v1512/Linux_Client_x64_15_1_2_101.tar

Extract the archive:

tar xvf Linux_Client_x64_15_1_2_101.tar

Before running the installer, create a blank Retrospect State file:

touch /var/log/retroclient.state

Run the extracted script:

./Install.sh

Your output may look like this:

# ./Install.sh 

Install Retrospect Client? (y/n): y

Enter first access password:
Retype the first access password:

Adding RETROSPECT_HOME to system profile and login scripts...Done!
Starting client as daemon... 
./Install.sh: line 194: /usr/local/retrospect/client/rcl: Not a directory

Installation was successful, but Retrospect Client for Linux could not 
be started. If this is an upgrade, please wait 5 minutes, then start 
the client manually by running  $ /usr/local/retrospect/client/rcl start
If your system uses an rc.local script, you should be able to start 
Retrospect Client for Linux automatically by adding the line 
'/usr/local/retrospect/client/rcl start'. Otherwise, consult your system 
documentation for the best method.

The installer will give errors, but that is normal (since this is an "unsupported" FreeBSD system). Also, note that for upgrades, it will not ask for the "first access" password.

The install script expected rcl to be created in /etc/init.d/. Since "/etc/init.d" doesn't exist, the output of the command becomes the file with that name.

The script also attempts to create a symbolic link to the file:
/usr/local/retrospect/client/rcl -> /etc/init.d/rcl

The "fixes" are to remove, rename, and correct some permissions.

Move the script and overwrite the incorrect symbolic link:

mv /etc/init.d /usr/local/retrospect/client/rcl

Correct some file modes:

chmod o-x /usr/local/retrospect/client/*
chmod a-x /etc/retroclient.excludes

The Retrospect Server will use the Linux mtab file to populate the list of volumes for the client, so any locations you want to back up need to be listed in that file.

You can create the /etc/mtab file, but Linux programs will look for the file at /compat/linux/etc/mtab. Unfortunately, that file is deleted any time you update your Linux libraries, so I would just make a link from /etc/mtab to it (and make sure to re-make the link every time the Linux libraries update):

ln -sf /etc/mtab /compat/linux/etc/mtab

Here is a sample /etc/mtab file layout that you can use to back up some ZFS shares (modify with your paths):

/dev/da0p2 / ufs rw 0 0
/zfs/share /zfs/share zfs rw 0 0
/zfs/data /zfs/data zfs rw 0 0

If you use ZFS snapshots, this next part is important!
Whatever locations you added to mtab above, add their snapshot directories to the /etc/retroclient.excludes file, as well:

# exclude zfs snapshots
/zfs/share/.zfs
/zfs/data/.zfs

If you don't exclude the .zfs snapshot directories, Retrospect will scan them all during backups! This can greatly increase backup times and possibly cause backups to fail.

Create the services directory (if it doesn't exist):

mkdir -p /usr/local/etc/rc.d

Copy and save this Retrospect Service as "/usr/local/etc/rc.d/retro".

Make the service executable:

chmod +x /usr/local/etc/rc.d/retro

Run this to enable Retrospect in /etc/rc.conf:

sysrc retro_enable=YES

Once you have the Retrospect client running, make sure to enable exclusions with this command:

/usr/local/retrospect/client/retrocpl -exclude on