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.
linux
virtualization
mdpc
sumber
sumber
Jawaban:
Gunakan alat-alat Linux standar untuk memeriksa perangkat keras pada sistem.
atau
atau
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.
sumber
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.menunjukkan bahwa itu adalah VM. Jika dikembalikan "fisik" maka yang terjadi adalah yang sebaliknya (bukan VM), misalnya:
sumber
Ada aplikasi praktis yang dapat membantu disebut virt-what . Saya belum menggunakannya dengan VMWare, tetapi itu bekerja dengan baik dengan Qemu.
sumber
Anda mungkin bisa mendapatkan dan ide dengan melihat-lihat di bawah
/sys
. Misalnya/sys/class/dmi/id/sys_vendor
memiliki nilaiVMware, Inc.
.Jika sudah diinstal, Anda dapat menggunakan lshw . Perintah
lshw -class system
mengembalikan ini di sistem saya:sumber
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.
sumber
Untuk Linux Anda mengetik
dmesg |grep DMI
:OUTPUT HOST VIRTUAL
UNTUK CONTOH HOST FISIKAL
sumber
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 :)
sumber
Anda juga dapat mencari bagian pertama dari alamat mac Anda di sini dan melihat apakah itu terdaftar sebagai ditugaskan ke salah satu perusahaan virtualisasi.
sumber
Perangkat virtual juga akan diungkapkan oleh lspci dan / atau info perangkat disk di / proc:
sumber
Di Linux, informasi sistem terungkap di / sys / devices / virtual / dmi / id /. Lihat jawaban saya di sini untuk skrip berguna untuk menunjukkan kepada Anda semua informasi yang tersedia.
root tidak diperlukan.
sumber
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.
sumber
Ini bekerja lebih baik untuk saya karena memberi saya informasi spesifik tentang produsen dan nama produk.
Output pada server Dell:
Output pada Virtualbox VM:
Output pada KVM / QEMU:
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.sumber
Saya suka sekali:
atau beton:
Cara Memeriksa Apakah Sistem Linux Adalah Mesin Fisik Atau Virtual
16 Metode Untuk Memeriksa Apakah Sistem Linux Adalah Mesin Fisik atau Virtual
sumber