Is there a way to find the VirtualBox machine name from within a VM?

This is for discussing general topics about how to use VirtualBox.
Post Reply
mafl01
Posts: 4
Joined: 30. Jun 2018, 15:48

Is there a way to find the VirtualBox machine name from within a VM?

Post by mafl01 »

Hi,

Is there a way how to find out the name of a VM on the host (as it is registered with VirtualBox) from within a VM?

Scenario:

I've got a VM
Name (on the host, in the VirtualBox GUI): vm001
Hostname of the VM ("inside"): vm001

Now I clone the VM (new Name in VirtualBox: vm002) and start it.
The hostname (inside) which is returned from the hostname command in Linux is still "vm011".
And I want to change this name to vm002 automatically, so somehow the Guest (RHEL 7 in my case) must find out the name of the VM on the host level.

I checked "VBoxControl" but found no solution.


Any ideas & best regards
mafl01
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Is there a way to find the VirtualBox machine name from within a VM?

Post by mpack »

Direct answer - not that I know of.

I don't know what you're trying to achieve (i.e. why the hostname matters to you), but one would normally differentiate machines on a LAN by their MAC address. I suggest you look at doing that.
mafl01
Posts: 4
Joined: 30. Jun 2018, 15:48

Re: Is there a way to find the VirtualBox machine name from within a VM?

Post by mafl01 »

OK, a little bit more precise:


I've got a VM "vm200" (machine name in Virtual Box and on OS level are identical) with the IP address "192.168.2.200"
Now I clone the VM into a new VM "vm201".
When I start the VM it's still "vm200" on OS level and the IP address is 192.168.2.200.

I want to write a script which is executed at runtime, which checks if the hostname (OS) is equal to the machine name (VirtualBox).
If yes: do nothing
If no: change hostname (OS level) and IP address (in this case to vm201 and 192.168.2.201.

This would simplify cloning VMs for me.

Of course, I could manipulate the MAC address of the new VM in VirtualBox and evaluate it later on on the client, but I thought comparing names would be easier.


mafl01
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Is there a way to find the VirtualBox machine name from within a VM?

Post by mpack »

I don't consider myself a networking expert, but AFAIK machine names are just a convenience, a friendly name to allow HUMANS to identity PCs listed on a network. The TCP/IP protocol itself uses IP addresses as node identifiers, and those IP address are allocated to each unique MAC on the underlying Ethernet network.

In other words, if you clone a VM and don't change the MAC addresses then they can't communicate reliably on a common TCP/IP network. Changing a friendly name won't help at all.
mafl01
Posts: 4
Joined: 30. Jun 2018, 15:48

Re: Is there a way to find the VirtualBox machine name from within a VM?

Post by mafl01 »

Thank you for your post.
When I clone a VM, I let VirtualBox reinitialize the MAC address, so there is no issue with the MAC address.
I just want to find an easy how to sync the machine name (in VirtualBox) with the hostname (on guest OS level), because - in order to keep it simple with my up to 30 to 40 VMs I have for testing - I want to keep both in sync.

Regards
mafl01
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: Is there a way to find the VirtualBox machine name from within a VM?

Post by mpack »

Two posts ago you said that the same IP had been assigned to both guests. That implies that they both have the same MAC, since a DHCP server would never serve up the same IP twice except to the same node.
mafl01
Posts: 4
Joined: 30. Jun 2018, 15:48

Re: Is there a way to find the VirtualBox machine name from within a VM?

Post by mafl01 »

1. I've got a VM (my master VM). This VM has got a MAC address, a (fixed) IP address and I configured as a template for my other VMs. The master VM is usually down. I start it for changing the template, but not for daily business.
2. I clone the Master VM into a new VM. During this cloning operation, the VMs gets a new MAC address and a new machine name in VirtualBox (e.g. vm101.somewhere.local).
3. When I start the VM for the first time , I want the VM
- to find out the machine name in VirtualBox
- to set the IP address (which for a vm101.somewhere.local would be 192.168.2.101)
- set IP address and hostname

That's why I want to find out the machine name from the Guest OS.

Of course,
-I could change the MAC address during the cloning operation, so that the last byte corresponds to the future IP address (for 101 this would be 65)
- on guest OS level I could check the MAC address, extract the last byte and set the IP address

But I thought, it would be easier with the hostname/machine name.

I've got no issues with the MAC addresses.
Post Reply