Можно ли запустить команду ОС, чтобы определить, работает ли она на виртуальной машине на основе Xen - PullRequest
17 голосов
/ 16 августа 2010

Есть ли команда ОС, которую я могу запустить из виртуальной машины на базе Xen, чтобы сказать мне, что это виртуальный ящик, а не физический ящик - я слышал, что ядро ​​обладает некоторыми умениями самосознания.например, как дополнительный столбец в выводе "PS" или что-то?[Я знаю, что vmstat предоставляет столбец "st", но я видел это на физических хост-компьютерах под управлением Linux Kernel 2.6.11 и выше].

Большое спасибо,

Пол

Ответы [ 2 ]

25 голосов
/ 27 апреля 2011

Попробуйте файл /sys/hypervisor/uuid.

  1. Не существует -> Не относится к XEN.
  2. Он существует и полон 0-х -> Это XEN Dom0
  3. Он существует и имеет значения не-0 -> Это DomU

Это, конечно, требует, чтобы / sys был смонтирован и заполнен ...

22 голосов
/ 16 августа 2010

Dmesg может дать некоторые подсказки из буфера сообщений ядра, вот вывод на виртуализированный экземпляр Ubuntu из 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.
...