実行中のユーザーがsudoersグループにいる必要はなく、一般的で追加のパッケージをインストールする必要がない端末コマンドを探しています。これまでシステムにsystemdがインストールされている場合は、次のものが利用可能であることがわかりました。
$ 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
アイコン名とシャーシの下で、仮想マシンか物理マシンかを確認できます。しかし、lscpu
特にsystemdよりも一般的なアプローチであり、hostnamectl
systemdが必要ないので、それを使用できるかどうか疑問に思います。私の理論は、CPUにコアあたりのスレッドが1つだけあり、最小および最大CPU周波数がリストされていない場合、サーバーが実際に仮想化されていることを示しています。
$ 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
CPUに1コアあたりのスレッドが1つしかないため、必ずしもVMという意味ではありませんが、すべての最新CPUには2つのコアあたりのスレッドが必要であり、最小および最大CPU周波数の不在/存在も考慮できます。出力からlscpu
。
ベストアンサー1
与えられた条件で:
実行ユーザーがsudoersグループに属する必要はなく、追加のパッケージをインストールする必要なしに一般的に使用されるターミナルコマンド。
所有者が意図的にオペレーティングシステムが仮想マシンであるという事実を隠そうとしない修正されていない仮想マシンの場合、最も簡単な方法は次のとおりです。
cat /sys/class/dmi/id/product_name
より多くの可能性:
OP作成者が提供した条件に加えて、次のようなより複雑な方法があります。私はどこですか?システムコールなしでオペレーティングシステムと仮想化を識別する