質問: サーバーが仮想か物理かを確認する端末コマンド 実行中のユーザーが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 アイコン名とシャーシの下でvmまたは物理マシンであるかどうかを確認できます。しかし、lscpuより汎用的な方法であり、hostnamectl私の理論では、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つだけである場合、必ずしもそれがvm=であることは確かですが、すべての最新のcpuはコアあたり2つのスレッドを持っている必要があります。さらに、また、lscpuの出力で最小および最大cpu周波数の欠如/存在を考慮に入れてください。
回答: 特定の条件下で: 実行ユーザーがsudoersグループに属している必要がなく、ユニバーサルであり、追加のパッケージをインストールする必要がない端末コマンド。 所有者が意図的にosがvmであるという事実を隠そうとしなかった、変更されていないvmの最も簡単な方法は、cat /sys/class/dmi/id/product_name その他の可能性: 仮想化を検出する方法 linuxシステムが物理マシンか仮想マシンかを確認する16の方法 op作成者の条件以外に、次のようなより複雑なアプローチがあります: 私はどこですか?システムコールなしのオペレーティングシステムと仮想化の識別