C'è un comando OS che posso eseguire per determinare se si esegue all'interno di una macchina virtuale basata su Xen
Domanda
C'è un comando OS che posso eseguire da una macchina virtuale a base di Xen per dirmi che è una scatola virtuale piuttosto che una scatola fisica - ho sentito che il kernel aveva un po 'di consapevolezza di autoconoscenza al riguardo. ad esempio come una colonna extra in output "PS" o qualcosa del genere? [So che VMSTAT fornisce la colonna "ST", ma l'ho visto su scatole host fisiche che eseguono anche il kernel Linux 2.6.11 e anche più grande].
Grazie molto,
Paolo
Soluzione
Dmesg Può dare alcuni suggerimenti dal buffer dei messaggi del kernel, ecco l'output su un'istanza di Ubuntu virtualizzata da 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.
Altri suggerimenti
Prova il file /sys/hypervisor/uuid.
- Non esiste -> non correlato a Xen.
- Esiste ed è pieno di 0 -s -> è un Xen Dom0
- Esiste e ha un valori non -0 -> è un domu
Ciò richiede ovviamente che /sys sia montato e popolato ...