Pertanyaan yang menarik Saya telah masuk ke host Linux (kemungkinan besar SuSE). Apakah ada cara agar saya dapat mengatakan secara program bahwa saya adalah host VM atau tidak?
Juga asumsikan bahwa vmtools tidak diinstal.
Pertanyaan yang menarik Saya telah masuk ke host Linux (kemungkinan besar SuSE). Apakah ada cara agar saya dapat mengatakan secara program bahwa saya adalah host VM atau tidak?
Juga asumsikan bahwa vmtools tidak diinstal.
Jawaban:
Gunakan alat-alat Linux standar untuk memeriksa perangkat keras pada sistem.
cat /proc/scsi/scsi
atau
ethtool -i eth0
atau
dmidecode | grep -i vmware
Jika output dari perintah ini menunjukkan perangkat keras dengan nama pabrikan "VMWare", Anda menggunakan VM VMWare. Beragam perintah disediakan di sini karena konfigurasi dan alat sistem berbeda.
cat /proc/scsi/scsi
bagus karena tampaknya tersedia di mana-mana dan tidak perlu menginstal perangkat lunak baru atau dijalankan dengan hak istimewa.
/proc/scsi/scsi
kotak Debian 7 saya ...
man virt-what
skrip heuristik yang dibuat untuk tujuan deteksi ini (untuk sistem RedHat / Fedora) dan untuk peringatan yang terlibat.
facter virtual
xenu
menunjukkan bahwa itu adalah VM. Jika dikembalikan "fisik" maka yang terjadi adalah yang sebaliknya (bukan VM), misalnya:
facter virtual
Physical
Anda mungkin bisa mendapatkan dan ide dengan melihat-lihat di bawah /sys
. Misalnya /sys/class/dmi/id/sys_vendor
memiliki nilai VMware, Inc.
.
Jika sudah diinstal, Anda dapat menggunakan lshw . Perintah lshw -class system
mengembalikan ini di sistem saya:
server1
description: Computer
product: VMware Virtual Platform
vendor: VMware, Inc.
version: None
serial: VMware-...
width: 64 bits
capabilities: smbios-2.4 dmi-2.4 vsyscall64 vsyscall32
Beberapa lingkungan virtual menamai beberapa perangkat virtual mereka dengan nama yang sedikit mengisahkan, misalnya, VirtualBox menghadirkan kartu grafis yang menyebut dirinya "VirtualBox Display Adapter". Tetapi mencari mereka mengikat Anda ke VM tertentu dan mungkin berbagai versi sempit.
Kode Anda mungkin dapat melihat virtualisasi macam apa yang dapat diatur. Jika itu gagal seluruhnya, Anda mungkin berada di VM. Tapi Anda mungkin dengan mudah berada di kotak yang tidak memiliki perangkat keras yang mampu VM.
Untuk Linux Anda mengetik dmesg |grep DMI
:
[root @ myhost ~] # dmesg | grep DMI DMI 2.3 hadir. DMI: Mesin Virtual Microsoft Corporation / Mesin Virtual, BIOS 090006 05/23/2012 [root @ myhost ~] # dmesg | grep -i virtual DMI: Mesin Virtual Microsoft Corporation / Mesin Virtual, BIOS 090006 05/23/2012 Mem-boot kernel paravirtualized pada perangkat keras telanjang input: emulasi tombol mouse Macintosh sebagai / devices / virtual / input / input1 scsi 0: 0: 0: 0: Msft Virtual Disk Akses Langsung 1.0 PQ: 0 ANSI: 4 input: Microsoft Vmbus HID-compliant Mouse sebagai / perangkat / virtual / input / input4
[root @ backdev1 ~] # dmesg | grep DMI DMI 2.5 hadir. DMI: Sistem IBM x3650 M3 - [7945AC1] - / 90Y4784, BIOS - [D6E153AUS-1.12] - 06/30/2011
Ada banyak kode di luar sana untuk mendeteksi apakah Anda menggunakan VM atau tidak. Mulai dengan pil merah dan cari dari sana. Makalah ini di Offensive Computing juga merupakan bacaan yang baik.
Itu kalau tidak ada yang mudah di atas :)
Anda juga dapat mencari bagian pertama dari alamat mac Anda di sini dan melihat apakah itu terdaftar sebagai ditugaskan ke salah satu perusahaan virtualisasi.
Saya tidak menyukai solusi ini, karena biasanya ada driver VMware CDROM atau driver memori yang diinstal sehingga dmesg mengkonfirmasi atau menolaknya untuk saya dengan cepat.
[server @ user ~] $ dmesg | grep VMware hda: Drive VMware Virtual IDE CDROM, drive ATAPI CD / DVD-ROM Vendor: Model VMware: Disk virtual Rev: 1.0 Vendor: Model VMware: Disk virtual Rev: 1.0 Vendor: Model VMware: Disk virtual Rev: 1.0 Vendor: Model VMware: Disk virtual Rev: 1.0 Vendor: Model VMware: Disk virtual Rev: 1.0 Vendor: Model VMware: Disk virtual Rev: 1.0 Vendor: Model VMware: Disk virtual Rev: 1.0 Driver kontrol memori VMware diinisialisasi
Ini bekerja lebih baik untuk saya karena memberi saya informasi spesifik tentang produsen dan nama produk.
dmidecode -t system|grep 'Manufacturer\|Product'
Output pada server Dell:
Manufacturer: Dell Inc.
Product Name: PowerEdge C5220
Output pada Virtualbox VM:
Manufacturer: innotek GmbH
Product Name: VirtualBox
Output pada KVM / QEMU:
Manufacturer: QEMU
Product Name: Standard PC (i440FX + PIIX, 1996)
Ini bagus untuk skrip yang dapat menguraikan ini untuk identifikasi server yang lebih baik ... tetapi jika Anda menggunakan Chef dalam infrastruktur Anda, Anda dapat memeriksa atribut node Virtualization -> system
di server chef.
Saya suka sekali:
hostnamectl status
atau beton:
hostnamectl status | grep "Chassis:"
Cara Memeriksa Apakah Sistem Linux Adalah Mesin Fisik Atau Virtual
16 Metode Untuk Memeriksa Apakah Sistem Linux Adalah Mesin Fisik atau Virtual