我希望能够从虚拟机中唯一地识别我的虚拟机。 问题是,在我的设置中,我无法使用MAC地址。 是否可以configuration另一个硬件参数(例如,CPU名称,BIOS标志,主板ID等)为我的虚拟机有一个唯一的值,然后我可以从虚拟机内部访问? 我会对在Xen,KVM或VMWare ESX上工作的解决scheme最感兴趣,或者最适合所有这些解决scheme。
您可以在创build虚拟机时从主机生成UUID,然后通过内核命令行将其传入。 当您将机器从一个硬件节点传送到下一个硬件节点时,UUID将随之一起移动。 但是,当您创build新机器时,将为其生成新的UUID。
正如在另一个答案中提到的,如果复制VM(包括其configuration),这将不起作用,但在这种情况下,从命令行运行uuidgen并replaceconfiguration文件中的UUID用于创build域。
按照惯例,最好不要以这种方式复制虚拟机; 你应该创build一个新的虚拟机,并有一个脚本运行,以任何最适合你的环境的方式configuration虚拟机。
让VM生成并存储一个UUID / GUID:
http://www.ietf.org/rfc/rfc4122.txt
This specification defines a Uniform Resource Name namespace for UUIDs (Universally Unique IDentifier), also known as GUIDs (Globally Unique IDentifier). A UUID is 128 bits long, and can guarantee uniqueness across space and time. UUIDs were originally used in the Apollo Network Computing System and later in the Open Software Foundation's (OSF) Distributed Computing Environment (DCE), and then in Microsoft Windows platforms.
微软提供了一个名为uuidgen的工具
Python内置了2.5:
http://docs.python.org/library/uuid.html
因此,涵盖了Windows和Linux。