The VMWare player can be found in many work settings. It’s a lightweight version of VMware workstation; however, it’s useful for simple virtualization such as running a Linux VM on a windows laptop.  Such setups happen for companies who originally created their products on Linux and need to demonstrate their products to potential customers. This eliminates the need to carry another laptop to a customer site.

One big potential problem of this approach can center on licensing of the companies products.   Many companies use licenses which use the MAC address. VMware player generates this address as needed.  This can be when the VM is created, moved, or copied. This can be a problem if the MAC changes and invalidates software just before the demonstration.

One way to prevent this is to manually set the MAC address for the VM.   Of course the question is “How do I do this?”

You will need the current MAC address of your Linux guest.   Enter the following command:

[root@redhat ~]# /sbin/ifconfig eth0

eth0        Linc encap:Ethernet    HWaddr 00:0C:29:98:B6:14
intent addr:  Bcast:  Mask:
inet6 addr: fe80::20c:29ff:fe98:b614/64 Scope:Link
RX packets:11 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 txqueuelen:1000
collisions:0 txqueuelen:1000
RX byte:852  (852.0 b)   TX bytes:720 (720.0 b)
Make note of the MAC address or in the case the HardWare Address.   You can issue a shutdown command to stop the VM.

The VMX configuration file is where you will find the command to generate the MAC address.   If the VMWare player was installed with the default options, you file find the file located in the users profile.

C:\Users\<userid>\Documents\Virtual Machines\<virtual machine name>

The vmx file will be the virtual machine name entered when it was created.  For example, redhat.vmx

Make a copy of this file for a backup.

Since it is a text file; you can use notepad to modify it.

Look for the section for ethernet.  In this example, we have eth0 so the option you we need is:

  • ethernet0.addressType = “generated”

If another NIC is in use, you could have ethernet1, ethernet2, etc.

You will need to change this entry to static.

  • ethernet0.addressType = “static”

Add a new entry to assign the address.

  • ethernet0.address = “00:0C:29:98:B6:14”

I did find a couple references which said to remove:

  • ethernet0.generated.Address
  • ethernet0.generated.AddressOffset

However, I did not find them in the Redhat VMX file.   They might exist in other setups so look for them.

Save the file and then boot your VM.