可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
Is there an OS command I can run from within a Xen based virtual machine to tell me that it is a virtual box rather than a physical box - I heard that the kernel had some self awareness smarts about it. e.g. like an extra column in "ps" output or something? [I know vmstat provides the "st" column but I have seen this on physical host boxes running Linux Kernel 2.6.11 and greater as well].
Many Thanks,
Paul
回答1:
Dmesg may give some hints from the kernel message buffer, here is output on a virtualized Ubuntu instance from Slicehost:
bvm@qdbp:~$ sudo dmesg | grep Xen [ 0.000000] Xen: 0000000000000000 - 00000000000a0000 (usable) [ 0.000000] Xen: 00000000000a0000 - 0000000000100000 (reserved) [ 0.000000] Xen: 0000000000100000 - 0000000010000000 (usable) [ 0.000000] Booting paravirtualized kernel on Xen [ 0.000000] Xen version: 3.1.2-rc1 [ 0.000000] Xen: using vcpu_info placement [ 0.000000] Xen: using vcpuop timer interface [ 0.000000] installing Xen timer for CPU 0 [ 0.021223] installing Xen timer for CPU 1 [ 0.046157] installing Xen timer for CPU 2 [ 0.046157] installing Xen timer for CPU 3 [ 0.265880] Initialising Xen virtual ethernet driver.
回答2:
Try file /sys/hypervisor/uuid.
- It does not exist -> Not related to XEN.
- It does exist, and is full of 0-s -> It is a XEN Dom0
- It does exist, and has a not-0 values -> It is a DomU
This requires of course, that /sys is mounted and populated...