Simpana 10 – PostgreSQL 8.4 backup on CentOS Linux 5.10 x64 – example

I am going to assume that this is a test deployment and as such will expect that you have installed your CentOS 5.10 x64 Linux the way you want it, and I will follow on from that point on what I needed to perform to get the distribution release of PostgreSQL to work with Simpana 10 PostgreSQL iDA to perform a backup. Of course some assumed knowledge present.

  1. Install the postgresql packages onto your  CentOS client.
    $ sudo yum install postgresql84 postgresql-server postgresql-devel
  2. Startup postgresql server for the first time, you need to run initdb switch instead of start for the first time only.
  3. $ sudo service postgresql initdb
  4. We should also enable the service to run at boot moving forward
    $ sudo chkconfig postgresql on
  5. Before we change the authentication method below, we need to set a password that we know for the postgres user in the postgresql database. To perform this we need to change to the postgres user and connect to postgresql database and update the password for the user to something we know.
    $ sudo su –
    # su – postgres
    $ psql
  6. Now at the postgres prompt update the password for the postgres user, unless you want to make your own. Won’t discuss how, just going to show how to set postgresql user password. Be sure to remember what you set the password too, it will be required later on.
    postgres=# ALTER USER postgres WITH PASSWORD ‘password’;
    ALTER ROLE
    postgres=#q
  7. Postgresql packages distributed with CentOS don’t use md5 password authentication, it defaults to peer/ident based authentication. In this example we will flip this to md5 based authentication, and we will touch on a peer/ident based authentication example in a later post. Perform the changes below to enable md5 authentication.
    $ cd /var/lib/pgsql/data
    $ sudo vi pg_hba.conf
    Find the line at the bottom of the file that looks like the one below;
    local     all     all                ident
    You need to change this to have md5 on the end, i.e. replace ident to be md5 instead. Save the changes.
  8. Now restart postgresql for the changes to take effect. (required)
    $ sudo service postgresql stop
    $ sudo service postgresql start
  9. Now you can test that this has worked by execution as root the command below, and when prompted for the postgres user password authenticate using the password set in step 6.
    # psql -U postgres
    If it worked, you will get the famous postgres=# prompt, in which you can enter q [enter] to quit it.
  10. Next up we now need to enable archive logs. We need to edit the postgres.conf file which on CentOS rpm based install is /var/lib/pgsql/data and the lines we need to add in the Archiving section is below;
    archive_mode = on
    archive_command = ‘cp %p /var/postgresql/archive/%f’
    Save those additions and move on below.
  11. Make sure to create the folders/destination used in the archive_command above and ensure postgres user can write to it etc.
  12. Now restart postgresql for the changes to take effect. (required)
    $ sudo service postgresql stop
    $ sudo service postgresql start
  13. Install the Simpana PostgreSQL iDA.
  14. Once installed refresh the Simpana Console and attempt to create your PostgreSQL instance. See the dialog below for the values I used in this configuration. Of course the username is the postgres user and password we configured in step 6. Note the archive log directory is the one we used in the archive_command string at step 10 too.simpana_10-centos-5.10_x64-postgresql_instance_creation
  15. If everything goes to plan you should have your instance created and now you can do configuration against the DumpBaseBackupSet subclient and/or FSBasedBackupSet subclient. For the difference between what each does, I recommend you review the documentation. As each backupset has its own unique capabilities. See the bottom of the Backup documentation page for explanations.
  16. Assign a Storage Policy to each subclient and run a backup of each to confirm it works.

CommVault Documentation references:

Simpana 10 – Linux client prepost command execution failure

Came across an interesting condition today, which took me a bit of testing to identify why the job would go into a pending state. This one relates to Simpana 10 on a Linux client where you have a File System iDA with a PrePost command being executed. In my test below the script is doing nothing special, it’s merely to have something to execute to show the behavior. I’ve provided it below purely for reference.

[root@jldb1 bin]# cat pre-scan.sh
#!/bin/sh
# test
#

echo $1 $2 $3 $4 $5 $6 $7 $8 $9 >> /root/pre-scan.log
exit 0

Job goes pending and produced the following errors and output below;

JPR (Job Pending Record)
Error Code: [7:75]
Description: Unable to run [/usr/local/bin/pre-scan.sh] on client.
Source: jwcs, Process: startPrePostCmd

simpana_10-linux-prepost-command-execution-failure

[JobManager.log – commserve]

3024  d88   03/27 18:16:26 21  Scheduler  Set pending cause [Unable to run [/usr/local/bin/pre-scan.sh] on the client.                 ]::Client [jwcs] Application [startPrePostCmd] Message Id [117440587] RCID [0] ReservationId [0].  Level [0] flags [0] id [0] overwrite [0] append [0] CustId[0].
3024  118c  03/27 18:16:26 21  Scheduler  Phase [Failed] message received from jwcs.lab.heimic.net] Module [startPrePostCmd] Token [21:3:1] restartPhase [0]
3024  118c  03/27 18:16:26 21  JobSvr Obj Phase [3-Pre Scan] for Backup Job Failed. Backup will continue with phase [Pre Scan].

[startPrePostCmd.log – commserve]

4940  e4c   03/27 20:21:46 ### Init() - Initializing job control [token=21:3:7,cn=jwcs], serverName [jwcs.lab.heimic.net], ControlFlag [1], Job Id [21]
4940  e4c   03/27 20:21:47 ### Cvcl::init() - CVCL: Running in FIPS Mode
4940  e4c   03/27 20:21:48 ### CVJobCtrlLog::registerProcess(): successfully created file [C:Program FilesCommVaultSimpanaBaseJobControl4.940]
4940  e4c   03/27 20:21:48 ### ::main() - jobId 21 - restoreTaskId = 0
4940  e4c   03/27 20:21:48 ### ::main() - jobId 21 - adminTaskId = 0
4940  e4c   03/27 20:21:48 ### ::getBackupCmdAndMachine() - jobId 21 - before construct application id
4940  e4c   03/27 20:21:49 ### ::getBackupCmdAndMachine() - appTypeId = 29
4940  e4c   03/27 20:21:49 ### ::getBackupCmdAndMachine() - jobId 21 - symbolic AppId = 2:20
4940  e4c   03/27 20:21:49 ### ::getBackupCmdAndMachine() - jobId 21 - prePostId = 1
4940  e4c   03/27 20:21:49 ### ::getBackupCmdAndMachine() - jobId 21 - preifind cmd = /usr/local/bin/pre-scan.sh
4940  e4c   03/27 20:21:49 ### ::main() - jobId 21 - commandPath = /usr/local/bin/pre-scan.sh
4940  e4c   03/27 20:21:49 21  ::main() - jobId 21 - before execute cmd
4940  e4c   03/27 20:21:49 21  ::main() - jobId 21 - Use Local System Acct.
4940  e4c   03/27 20:21:49 21  ::main() - jobId 21 - remoteexename = [/usr/local/bin/pre-scan.sh]
4940  e4c   03/27 20:21:49 21  ::main() - jobId 21 - args = [ -bkplevel 1 -attempt 7 -job 21]
4940  e4c   03/27 20:21:49 21  executePrePostCmd() -  Attempting to execute remote command on client [jldb1]..
4940  e4c   03/27 20:21:49 21  executePrePostCmd() - jobId 21 - Received error text from server cvsession [Unknown Error]
4940  e4c   03/27 20:21:49 21  executePrePostCmd() - jobId 21 - Error [0] returned from executeRemoteCommand /usr/local/bin/pre-scan.sh
4940  e4c   03/27 20:21:49 21  EvEvent::setMsgEventArguments() - MsgId[0x0700004b], Arg[1] = [117440623]
4940  e4c   03/27 20:21:49 21  EvEvent::setMsgEventArguments() - MsgId[0x0700004b], Arg[2] = [/usr/local/bin/pre-scan.sh]
4940  e4c   03/27 20:21:49 21  EvEvent::setMsgEventArguments() - MsgId[0x0700004b], Arg[3] = []
4940  e4c   03/27 20:21:49 21  EvEvent::setMsgEventArguments() - [MsgId[0x0700004b][]: [3] Args Pushed, [1] Args expected.
4940  e4c   03/27 20:21:49 21  ::exitHere() - jobId 21 - Exiting due to failure.
4940  e4c   03/27 20:21:49 21  BKP CALLED COMPLETE (PHASE Status::FAIL), 21. Token [21:3:7]
4940  e4c   03/27 20:21:53 21  ::exitHere() - jobId 21 - startPrePostCmd Terminating Event.
4940  238c  03/27 20:21:53 21  CVJobCtrlLog::unregisterProcess(): successfully removed file [C:Program FilesCommVaultSimpanaBaseJobControl4.940]

[cvd.log – client]

30846 427e0940 03/27 20:21:50 ### [CVipcD] Requests from non-CS with hostname [jwcs.lab.heimic.net] and clientname [jwcs] to execute in user entered path are not allowed

I worked out this problem is caused by lack of value in regkey sCSGUID as found in the location below;

/etc/CommVaultRegistry/Galaxy/Instance001/CommServe/.properties

Sample below;

[root@jldb1 ]# cat /etc/CommVaultRegistry/Galaxy/Instance001/CommServe/.properties | more
bCSConnectivityAvailable 1
sCSCLIENTNAME jwcs
sCSGUID
sCSHOSTNAME jwcs.lab.heimic.net
sCSHOSTNAMEinCSDB jwcs.lab.heimic.net

sCSGUID should be populated and its lack of value causes this condition with pre-scan script execution.

Fix:

Easiest method to recreate this regkey value is to do a local uninstall of the simpana services on the client. Revoke the client certificate in Simpana Console via Control Panel – Certificate Administration for the client in question. Followed by a reinstall.

Observation:

Subclients that have no scripts being executed as part of the backup will run fine if this regkey value is missing. You will never see a problem until you add a script. In addition, clients that have a simpana firewall configuration will be broken and subclients without scripts will break too. As the regkey value is used for simpana firewall configuration exchange I believe based on my testing.

Hope you enjoy my post… drop me a comment if you like the content and/or it helps you.

System security and sudo

Was reading twitter, as I would typically do when in transit. Came across a really good post on sudo[1] and security. Highly recommend having a read.

Check it out here.

Some excellent information contained in the post.

[1] – Sudo (su “do”) allows a system administrator to delegate authority to give certain users (or groups of users) the ability to run some (or all) commands as root or another user while providing an audit trail of the commands and their arguments.

Linux installation on SSD

I am going to be installing a Linux desktop onto an SSD drive soon, and I have started to research. If you have done this already and found something you needed to do that was not documented, please drop me a line.

My aim is to setup my Intel i3 Mini-ITX system with a Linux Desktop install (Ubuntu probably) and eventually drop in some more storage, since the case and motherboard could handle 4 more SATA devices, not including the optical and SSD boot drive.

Figured I could end up running for additional storage, services and desktop environment for doing other tasks like maybe get VMware Workstation going so I can run my existing virtual machines.

The current duties it does that requires Windows will move onto a laptop I will purchase at the end of this month, or early next month.

Linux system hardening

I really need to sit down and do some research on Linux System Hardening, as I really want to take a look at any kernel hardening that can be done on the system. i.e. I don’t want users to be able to see who else is on the machine via the output of commands like ‘w’ and ‘who’. I remember grsecurity use to be available to do this, so I should look around to see if this is still valid or do we do it another one.

I did find the following web post about SSH hardening which I enjoyed reading here.

If you’ve done Linux System Hardening recently, chime in on the comments with your experience.

New PC laptop purchase

I was going to build up another mini-ITX desktop, however the more I look at it I am better off buying one of those Dell Outlet Inspirion laptops. As  I end up getting a PC that can be used as a desktop replacement and doesn’t need any more hardware purchased. i.e. keyboard/mouse/monitor. So I am monitoring the outlet site the past week watching what Intel i3 Third generation systems come up and the prices.

The PC laptop will probably run Windows 7 x64 Home (or Windows 8.1 if my work VPN finally ends up supporting it). While my existing mini-ITX desktop (i3/16gb ram) will probably be converted to a Ubuntu desktop, so I can implement lxc containers again and some other workload on it. Really want to get tvheadend setup on it and plug in the USB tuner I was using with my Raspberry Pi. Remember the post here, about that?

If I get some time this weekend one evening going to install a temporary hard disk into my desktop and do a Ubuntu 12.04.4 install and do some messing about to ensure the hardware all detects fine and resolution of monitors works fine. The system uses an Intel HD 4000 onboard, so I hope accelerated video works or that could be a problem.

Looking to purchase the laptop the end of this month or early next month.

Confluence 5.4.2 installation problem – Confluence not starting post install

This is not something I’ve hit before, however this is my first time installing Confluence 5.4.2 x32 on a Exigent VPS account. Post the installation, I got the message indicating that the service has started and you should connect to it to finish the configuration.

However, nothing was found to be running on the default port of 8090, so I checked the catalina.out file in the logs folder to determine what was written. It was showing the lines below;

Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

At this point I figured I needed to change the amount of memory being allocated to java during startup so I went looking to see where this was being set from. Turns out its in the setenv.sh file in the bin folder.

On the first line of the file, change the -Xmx512m to something a little smaller, if your running on a VPS that doesn’t have enough available memory to let it have 512Mb of ram. Save the change and fire it up via “start-confluence.sh” and it should load up fine.

EDIT: It’s safe to say that my low end VPS account cannot really run the Confluence install, as it failed to create the database in MySQL and put the box under serious load due to all memory being consumed, which subsequently pushed out the load average. See below;

top – 09:56:16 up 45 days, 16:50, 3 users, load average: 70.49, 37.55, 15.18
Tasks: 70 total, 3 running, 67 sleeping, 0 stopped, 0 zombie
Cpu(s): 12.1%us, 87.9%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1048576k total, 1048576k used, 0k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

I gave it a go nonetheless 🙂

Confluence 5.4.2 x64 installation error

I was attempting an installation of Confluence 5.4.2 x64 from the binary file that can be executed and it failed like below;

root@hostname:/home/username# ./atlassian-confluence-5.4.2-x64.bin
Unpacking JRE …
Starting Installer …
./atlassian-confluence-5.4.2-x64.bin: 466: /home/username/atlassian-confluence-5.4.2-x64.bin.17671.dir/jre/bin/java: not found

I’ve seen this problem before with another product, so I knew immediately what the problem is. It’s due to executing the x64 version on a 32bit Linux.

Go download the 32bit version of the file and execute it. It will work.

Exigent VPS

I signed up for a Exigent VPS several weeks back and have been using it on and off. I loaded mine up with a configuration that would allow vhost mail hosting and webhosting. It ran fine, the bandwidth to the VPS itself seemed fine.

To be honest I have been very happy with the VPS service, so much so I recommended it to others. Since we signed up during an introduction of new hardware/services, we actually got a good sign up cost.

I don’t use mine currently, as I moved my services back to shared web hosting, but tempted to hang onto it for a bit longer as its good to have. Besides, if I get rid of it, I wont get another for the price I am paying at the moment.

If you need a VPS, check out Exigent.

Realtek RTL2838 DVB-T tuner on Raspberry Pi with TvHeadEnd success

I decided to give my DVB-T usb dongle (Realtek RTL2838) another go with the Raspberry Pi and TvHeadEnd. As I thought the newer version of Raspbian if available might address the condition I had previously where I had no dvb device after plugging it in. Older post found here.

It would appear it was a good to check this out again.

I downloaded the latest Raspbian available from the Raspberry Pi site. The version available at the time of this post is the one below;

2013-12-20-wheezy-raspbian.zip

I installed to an SD card and booted my Raspberry Pi.

I plugged in my Realtek RTL2838 tuner and it detected fine and when I checked for the dvb device structure, it was populated all correctly, which never happened previously at all.

[26848.628778] usb 1-1.3: new high-speed USB device number 6 using dwc_otg
[26848.741110] usb 1-1.3: New USB device found, idVendor=0bda, idProduct=2838
[26848.741147] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[26848.741166] usb 1-1.3: Product: RTL2838UHIDIR
[26848.741183] usb 1-1.3: Manufacturer: Realtek
[26848.741199] usb 1-1.3: SerialNumber: 00000001
[26848.851456] usb 1-1.3: dvb_usb_v2: found a 'Realtek RTL2832U reference design' in warm state
[26848.857238] usbcore: registered new interface driver dvb_usb_rtl28xxu
[26848.921368] usb 1-1.3: dvb_usb_v2: will pass the complete MPEG2 transport stream to the software demuxer
[26848.921447] DVB: registering new adapter (Realtek RTL2832U reference design)
[26848.965698] usb 1-1.3: DVB: registering adapter 0 frontend 0 (Realtek RTL2832 (DVB-T))...
[26849.001551] r820t 0-001a: creating new instance
[26849.014447] r820t 0-001a: Rafael Micro r820t successfully identified
[26849.021655] Registered IR keymap rc-empty
[26849.022183] input: Realtek RTL2832U reference design as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/rc/rc0/input0
[26849.022231] rc0: Realtek RTL2832U reference design as /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/rc/rc0
[26849.022262] usb 1-1.3: dvb_usb_v2: schedule remote query interval to 400 msecs
[26849.035148] usb 1-1.3: dvb_usb_v2: 'Realtek RTL2832U reference design' successfully initialized and connected

And device files

root@raspberrypi:~# ls -la /dev/dvb
total 0
drwxr-xr-x  3 root root   60 Jan  1 14:51 .
drwxr-xr-x 13 root root 3080 Jan  1 14:51 ..
drwxr-xr-x  2 root root  120 Jan  1 14:51 adapter0
root@raspberrypi:~# ls -la /dev/dvb/adapter0/
total 0
drwxr-xr-x 2 root root     120 Jan  1 14:51 .
drwxr-xr-x 3 root root      60 Jan  1 14:51 ..
crw-rw---T 1 root video 212, 4 Jan  1 14:51 demux0
crw-rw---T 1 root video 212, 5 Jan  1 14:51 dvr0
crw-rw---T 1 root video 212, 3 Jan  1 14:51 frontend0
crw-rw---T 1 root video 212, 7 Jan  1 14:51 net0

Next I configured other tools before compiling and installing the TvHeadEnd per the steps below;

sudo apt-get install unzip libcurl4-openssl-dev pkg-config git build-essential dvb-apps

cd ~
git clone https://github.com/tvheadend/tvheadend
cd tvheadend
./configure
make
sudo make install

At which point I executed the binary via “tvheadend -C” and I could now access the web interface for the TvHeadEnd software via http://raspberrypi_ip:9981/ where I could now see my dvb tuner was detected.

At this point you now have to configure the network and channels according to your region. Can be a bit tricky, but I followed the info available at the post here (step 14). This helped me make sense of the sequence of actions.

Below is a screen grab showing VideoLan Client from my Windows 7 desktop and a web browser in the background attached to the TvHeadEnd which is running on the Raspberry Pi with the RTL2838 tuner.

tvheadend_rtl2838_rpi_vlc

 

EDIT: And to get my TvHeadEnd to auto start with boot I performed the following additional steps.

Created /etc/init.d/tvheadend file with the contents below;

#!/bin/bash
### BEGIN INIT INFO
# Provides: tvheadend
# Required-Start: $local_fs $remote_fs $network
# Required-Stop: $local_fs $remote_fs $network
# Should-Start: $syslog
# Should-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1
# Short-Description: start/stop tvheadend Server
### END INIT INFO

TVHNAME="tvheadend"
TVHBIN="/usr/local/bin/tvheadend"
TVHUSER="tvheadend"
TVHGROUP="tvheadend"
PIDFILE=/var/run/$TVHNAME.pid

start() {
if [ -e $PIDFILE ]; then
PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
if [ -n "$PID" ]; then
echo "$TVHNAME already running (pid $PID)."
exit 1
fi
fi
echo -n "Starting tvheadend: "
start-stop-daemon --start --background --pidfile $PIDFILE --make-pidfile --user ${TVHUSER} --exec ${TVHBIN} -- 
-u ${TVHUSER} -g ${TVHGROUP} -f -C
echo "Done."
}

stop() {
if [ -e $PIDFILE ]; then
PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
if [ -n "$PID" ]; then
echo -n "Stopping $TVHNAME: "
start-stop-daemon --stop --quiet --pidfile $PIDFILE --name ${TVHNAME}
echo "Done."
else
echo "$TVHNAME is not running."
fi
else
echo "$TVHNAME is not running."
fi
}

status() {
if [ -e $PIDFILE ]; then
PID=$(ps ax | grep -v grep | grep -w $(cat $PIDFILE) | awk '{print $1}')
if [ -n "$PID" ]; then
echo "$TVHNAME is running (pid $PID)."
else
echo "$TVHNAME is not running."
[ -e $PIDFILE ] && exit 1 || exit 3
fi
fi
}

case "$1" in
start) start ;;
stop) stop ;;
restart) stop && sleep 2 && start ;;
*) echo "Usage: $0 [start|stop|restart|status]" && exit 1 ;;
esac

exit 0

Now set the script as executable using below;

sudo chmod 755 /etc/init.d/tvheadend

Create a tvheadend group

sudo groupadd tvheadend

Create a tvheadend user that is part of the video group and tvheadend group.

sudo useradd -g tvheadend -G video -m tvheadend

And now set the initscript tvheadend to startup and shutdown as system does

sudo update-rc.d tvheadend defaults

Raspberry Pi and Xbox 360 camera as a Webcam

Have wanted to configure an Xbox 360 camera as a Webcam on a Raspberry Pi. I’ve simple followed the post here.

I wasn’t interested in having the camera capture images with motion, as I want to act more like a traditional webcam that captures an image every set interval. To perform that task you just need to enable the option below in the motion.conf (/etc/motion/motion.conf) and you can test it by running “motion -n” as root (or via sudo).

# Make automated snapshot every N seconds (default: 0 = disabled)
snapshot_interval 120

With the interval set below it will create a file every 120 seconds. You’ll also get a lastsnap.jpg symlink which links to the last/latest capture.

I modified the configuration to also append some text to the webcam capture and overlay it on the picture. A demo of what I captured is below and how it looks.

01-20140101005600-snapshot

Raspberry Pi with RTL8188CUS 802.11n wifi adapter – Update

I’ve actually been playing around with my Realtek RTL8188CUS wifi adapter and found that the configuration of the wifi adapter without wpa_supplicant seems to be a better way to go.

The information I found below was taken directly from the source Far Robotics Website. Thanks to those folks for posting the 3 methods below;

Installing rtl8188cus and rtl8188eu based wifi adaptors for raspbian without using wpa_supplicant.

Edit the file /etc/network/interfaces using the following format for networks with WPA/WPA2 security. Use the command sudo nano /etc/network/interfaces to open and edit the file. Exit the editor and save the file using keys cntl-X, Y, Enter.  Enclose Your-Network-Name and Your-Network-Password within quotation marks as in the example below.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid "Your-Network-Name"
wpa-psk "Your-Network-Password"

Edit the file /etc/network/interfaces using the following format for networks using WEP security. Use the command sudo nano /etc/network/interfaces to open and edit the file. Exit the editor and save the file using keys cntl-X, Y, Enter. Do not use quotation marks around Your-Network-Name and Your-Network-Password.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-essid Your-Network-Name
wireless-key Your-Network-Password

Edit the file /etc/network/interfaces using the following format for networks using no security. Use the  command sudo nano /etc/network/interfaces to open and edit the file. Exit the editor and save the file using keys cntl-X, Y, Enter. Do not use quotation marks around Your-Network-Name.

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wireless-essid Your-Network-Name

If you have success and/or failure, be sure to post a comment. Feedback is always most welcome.

XPEnology DSM 4.2 on HP N40L Microserver Follow up

I’ve noticed that my earlier post (here) on running XPEnology DSM 4.2 on a HP N40L Microserver gets a large number of hits on a weekly basis. Thought it might be a good time to post a follow up.

The software appeared to install fine and appeared to be operational much like a Synology NAS.

However despite everything seeming okay it was still a hack to get this working on a HP N40L Microserver no matter which way you look at it. I couldn’t get over that thought and as such wasn’t about to trust my data on the system.

So I opted to not use XPEnology DSM 4.2 on my HP N40L Microserver in the end. However I am sure plenty of people do use it and have no problem doing so. If you find any of my posts on this subject, and go on to use it. By all means post a comment so others can see that it’s being used by people with no problem.