Installing VMware Server on unRAID Box


Recommended Posts

  • 3 months later...
  • Replies 333
  • Created
  • Last Reply

Top Posters In This Topic

  • 1 month later...

I tried getting ESXi running together with unraid 5 but was unsuccessful (transfer speeds were atrocious) so I thought I'd have a go at getting VMWare server running. Fortunately I was successful  ;)

 

First of all, these instructions are not good enough to be blindly followed, but anyone who is somewhat familiar with the existing process should be able to figure this out. I would recommend re-reading every command you run to make sure it's correct for unraid 5.

 

I got this working on unraid 5.0-rc5 but the basic idea should be the same for any version.

 

Steps

0. Setup an unraid development environment. Note that this can be done on your running unraid system by following Installing the kernel source and making your own headers. I did all this on my main unraid machine.

 

1. After building kernel headers, we need to move some files to where the VMWare installer expects them to be

cp /usr/src/linux/include/generated/* /usr/src/linux/include/linux

and

touch /usr/src/linux/include/linux/smp_lock.h

 

2. Create the init directories that VMWare expects

cd /etc/rc.d
mkdir init.d
for i in {0,1,2,3,4,5,6}; do mkdir rc$i.d; done

 

3. Follow steps 1-3 in the existing instructions. Get the latest version of VMWare server (2.0.2-203138.i386)

 

4. Download the ubuntu flavour of the VMWare server patch here: http://llg.cubic.org/patches/vmwareserver/

 

5. Unzip the patch downloaded in step 4 to an empty directory

 

6. Copy the VMWare server package to the directory containing the patch

 

7. Edit the patch script (vmware-server-2.0.2-kernel-3.0-install.sh) in notepad++ or similar. Change the following

VMWARE_ARCHIVE=`ls "$VMWARE_HOME" 2> /dev/null | egrep "^(VMware-server-2.0.[0-9]-)[0-9]*.[A-Za-z0-9_]*.tar.gz"`

to

VMWARE_ARCHIVE=`ls "$VMWARE_HOME" 2> /dev/null | egrep "(VMware-server-2.0.[0-9]-)[0-9]*.[A-Za-z0-9_]*.gz"`

 

and delete the following block (we don't need to test compilation and it will fail anyway on unraid)

	for BASE in $BASES
do
# Skip checking vmppuser and vsock modules (they don't compile and are not
# critical)
if [[ "vmppuser" != "$BASE" && "vsock" != "$BASE" ]]; then
	MODDIR="${BASE}-only"
	echo "Trying to compile $BASE module to see if it works"
	echo "Performing make in $MODULES_SOURCE/$MODDIR"
	make -s -C "$MODULES_SOURCE/$MODDIR"
	RESULT=$?
	if [ "0" != "$RESULT" ]; then
		echo "There is a problem compiling the $BASE module after it was patched. "
		exit 1
	fi
fi
done

 

8. Run the patch script from the directory you unzipped it to without any arguments

vmware-server-2.0.2-kernel-3.0-install.sh

 

9. After applying the patch it will automatically kick off the VMWare server install process. Continue following the existing process from step 5. Watch out for the following however:

- Do not create the package directories in the root dir (eg. /pkgONETIME) if you are doing this on your unraid server. They must be created on a disk. I created mine in /mnt/cache/.custom/pkgONETIME.

- As with the above, your cache drive may not be empty so when creating the package tree for the ONETIME install, use the following

mkdir -p /mnt/cache/.custom/pkgONETIME/mnt/cache/.custom/vmware
cd /mnt/cache/.custom/pkgONETIME
cp -a /mnt/cache/.custom/vmware mnt/cache/.custom/vmware

- I could not access the VMWare web interface on either FF or Chrome, I would either get no login box or some obscure error pop up. But oddly enough, IE8 worked perfectly

- If you did this on your running unraid server, you won't actually need to install the ONETIME package. Hang on to it in case you need to reinstall though.

Link to comment
  • 1 month later...

tried to follow your/existing steps but could not get vmnet to compile using the patch you pointed with my rc8a  (kernel 3.4.11), also tried without network support and all other modules compiled ok but there is something broken with the web interface also, could only get a light yellow page with title "Loading..." :(

Link to comment
  • 8 months later...

I have the file... could upload it to you no problem but I can tell you that you will not be able to compile the needed modules to use it with recent kernels on recent unraid versions... I would recommend you try virtualbox instead, much better support and works fine, search for it on the forum.

Link to comment

I have the file... could upload it to you no problem but I can tell you that you will not be able to compile the needed modules to use it with recent kernels on recent unraid versions... I would recommend you try virtualbox instead, much better support and works fine, search for it on the forum.

 

Thanks, I also agree with you. Did some further research and found decided to switch to virtual box.

I have a few questions regarding virtual box, will proceed to the virtual box posts....

 

Thanks.

Link to comment
  • 3 months later...

I tried getting ESXi running together with unraid 5 but was unsuccessful (transfer speeds were atrocious) so I thought I'd have a go at getting VMWare server running. Fortunately I was successful  ;)

 

First of all, these instructions are not good enough to be blindly followed, but anyone who is somewhat familiar with the existing process should be able to figure this out. I would recommend re-reading every command you run to make sure it's correct for unraid 5.

 

I got this working on unraid 5.0-rc5 but the basic idea should be the same for any version.

 

Steps

0. Setup an unraid development environment. Note that this can be done on your running unraid system by following Installing the kernel source and making your own headers. I did all this on my main unraid machine.

 

1. After building kernel headers, we need to move some files to where the VMWare installer expects them to be

cp /usr/src/linux/include/generated/* /usr/src/linux/include/linux

and

touch /usr/src/linux/include/linux/smp_lock.h

 

2. Create the init directories that VMWare expects

cd /etc/rc.d
mkdir init.d
for i in {0,1,2,3,4,5,6}; do mkdir rc$i.d; done

 

3. Follow steps 1-3 in the existing instructions. Get the latest version of VMWare server (2.0.2-203138.i386)

 

4. Download the ubuntu flavour of the VMWare server patch here: http://llg.cubic.org/patches/vmwareserver/

 

5. Unzip the patch downloaded in step 4 to an empty directory

 

6. Copy the VMWare server package to the directory containing the patch

 

7. Edit the patch script (vmware-server-2.0.2-kernel-3.0-install.sh) in notepad++ or similar. Change the following

VMWARE_ARCHIVE=`ls "$VMWARE_HOME" 2> /dev/null | egrep "^(VMware-server-2.0.[0-9]-)[0-9]*.[A-Za-z0-9_]*.tar.gz"`

to

VMWARE_ARCHIVE=`ls "$VMWARE_HOME" 2> /dev/null | egrep "(VMware-server-2.0.[0-9]-)[0-9]*.[A-Za-z0-9_]*.gz"`

 

and delete the following block (we don't need to test compilation and it will fail anyway on unraid)

	for BASE in $BASES
do
# Skip checking vmppuser and vsock modules (they don't compile and are not
# critical)
if [[ "vmppuser" != "$BASE" && "vsock" != "$BASE" ]]; then
	MODDIR="${BASE}-only"
	echo "Trying to compile $BASE module to see if it works"
	echo "Performing make in $MODULES_SOURCE/$MODDIR"
	make -s -C "$MODULES_SOURCE/$MODDIR"
	RESULT=$?
	if [ "0" != "$RESULT" ]; then
		echo "There is a problem compiling the $BASE module after it was patched. "
		exit 1
	fi
fi
done

 

8. Run the patch script from the directory you unzipped it to without any arguments

vmware-server-2.0.2-kernel-3.0-install.sh

 

9. After applying the patch it will automatically kick off the VMWare server install process. Continue following the existing process from step 5. Watch out for the following however:

- Do not create the package directories in the root dir (eg. /pkgONETIME) if you are doing this on your unraid server. They must be created on a disk. I created mine in /mnt/cache/.custom/pkgONETIME.

- As with the above, your cache drive may not be empty so when creating the package tree for the ONETIME install, use the following

mkdir -p /mnt/cache/.custom/pkgONETIME/mnt/cache/.custom/vmware
cd /mnt/cache/.custom/pkgONETIME
cp -a /mnt/cache/.custom/vmware mnt/cache/.custom/vmware

- I could not access the VMWare web interface on either FF or Chrome, I would either get no login box or some obscure error pop up. But oddly enough, IE8 worked perfectly

- If you did this on your running unraid server, you won't actually need to install the ONETIME package. Hang on to it in case you need to reinstall though.

 

  After trying to install a dev system, I spent a number of hours troubleshooting a kernel panic and found this method to look very promising.  Following the guide to a T. I installed all of the packages and compiled the kernel shown below and in the link given http://lime-technology.com/wiki/index.php/Installing_VirtualBox_in_unRAID

 

    For unRAID v. 5.0 - i386, grab this version of the kernel instead --> https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.6.tar.gz

    gcc --> http://slackware.osuosl.org/slackware-13.1/slackware/d/gcc-4.4.4-i486-1.txz

    glibc --> http://slackware.osuosl.org/slackware-13.1/slackware/l/glibc-2.11.1-i486-3.txz

    binutils --> http://slackware.osuosl.org/slackware-13.1/slackware/d/binutils-2.20.51.0.8-i486-1.txz

    make --> http://slackware.osuosl.org/slackware-13.1/slackware/d/make-3.81-i486-1.txz

    cxxlibs --> http://slackware.osuosl.org/slackware-13.1/slackware/a/cxxlibs-6.0.13-i486-2.txz

    perl --> http://slackware.osuosl.org/slackware-13.1/slackware/d/perl-5.10.1-i486-1.txz

    patch --> http://slackware.osuosl.org/slackware-13.1/slackware/a/patch-2.5.4-i486-1.txz

    ncurses --> http://slackware.osuosl.org/slackware-13.1/slackware/l/ncurses-5.7-i486-1.txz

    mpfr --> http://slackware.osuosl.org/slackware-13.1/slackware/l/mpfr-2.4.2p03-i486-1.txz

    gcc-g++ --> http://slackware.osuosl.org/slackware-13.1/slackware/d/gcc-g++-4.4.4-i486-1.txz

 

For unRAID version 5 RC13 and newer (kernel 3.9 and greater), you will also need these packages:

    bc --> http://slackware.cs.utah.edu/pub/slackware/slackware-13.1/slackware/ap/bc-1.06.95-i486-1.txz

    kernerl headers --> http://slackware.osuosl.org/slackware-13.1/slackware/d/kernel-headers-2.6.33.4_smp-x86-1.txz

 

I kicked off this script vmware-server-2.0.2-kernel-3.0-install.sh and got my installation going and got stuck finding the kernel headers.

 

 

What is the location of the directory of C header files that match your running

kernel? [/usr/src/linux/include]

 

The path "/usr/src/linux/include" is a kernel header file directory, but it

does not contain the file "linux/version.h" as expected.  This can happen if

the kernel has never been built, or if you have invoked the "make mrproper"

command in your kernel directory.  In any case, you may want to rebuild your

kernel.

 

 

That directory was populated in this whole process as described, however with in the /usr/src/linux/include/linux directory, it seems to be missing a file it wants.

 

 

A hint for a guy down on his luck on this one?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.