Saya mencari perintah terminal yang tidak mengharuskan pengguna yang mengeksekusi berada di grup sudoers dan juga bersifat universal dan tidak perlu menginstal paket tambahan. Sejauh ini saya telah menemukan bahwa jika sistem telah menginstal systemd maka saya dapat menggunakan:
$ hostnamectl status
Static hostname: mint
Icon name: computer-laptop
Chassis: laptop
Machine ID: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
Boot ID: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Operating System: Linux Mint LMDE
Kernel: Linux 3.16.0-6-amd64
dan di bawah Icon name dan Chassis saya dapat melihat apakah itu VM atau mesin fisik. Tetapi saya bertanya-tanya apakah saya dapat menggunakan lscpu
, terutama karena ini adalah metode yang lebih universal daripada hostnamectl
dan tidak memerlukan systemd. Teori saya adalah bahwa jika CPU hanya memiliki satu utas per inti dan juga tidak terdaftar frekuensi CPU minimum dan maksimum ini harus menjadi indikasi bahwa server memang tervirtualisasi.
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 8
On-line CPU(s) list: 0-7
Thread(s) per core: 2
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 60
Model name: Intel(R) Core(TM) i7-4710HQ CPU @ 2.50GHz
Stepping: 3
CPU MHz: 2500.488
CPU max MHz: 3500.0000
CPU min MHz: 800.0000
BogoMIPS: 4988.18
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 6144K
NUMA node0 CPU(s): 0-7
Saya tahu bahwa jika sebuah CPU hanya memiliki satu utas per inti tidak selalu berarti bahwa itu adalah VM pasti, tetapi kemudian semua CPU modern harus memiliki 2 utas per inti dan selain itu saya juga dapat memperhitungkan kekurangan / keberadaan frekuensi CPU minimum dan maksimum dalam lscpu
output.