
Ubuntu日本語フォーラム

ログインしていません。
仮想PC内から自身が動いている仮想PCソフト(vmware、virtualbox、kvm・・・)の種類を判別する一般的な方法はありますでしょうか。
まず、自分が今動作している環境が実PCなのか仮想PC内なのかは
/proc/cpuinfo に hypervisor という文字列が含まれるか否かで判別できることがわかりました。
が、hypervisor が含まれていたとして、何の仮想PCソフトで動いているかを判別しようと思ったのですが、/proc 以下をあれこれ見回したところ
vmware player を使っていた場合、 /proc/kallsyms に vmware~ の文字列が含まれていましたので、これで vmwareの中か否かは
判定できそうですが、他の仮想PCソフトの場合どうなるかわからない気がするのと(まだ試していません)、何となくスマートでないように感じています。
一般的に使える手法がありましたら(もしくは「そういう手法はない」という情報でも)ご教示お願い致します。
オフライン
情報というほど確かなものではありませんが、どのように仮想マシンを作り込むかは各ベンダ毎に異なっており、共通規格があるわけでもないので決定的な方法はないような気がします。
https://wiki.ubuntulinux.jp/UbuntuTips/Hardware/SearchHardwareInformation
を参考に、
$ lshal | grep hardware
などとしてみたところ、
VirtualBox上では、"Innotek"やら"VirtualBox"やらの情報が現れました。
# Sunに買収される前のコードが残っているっぽいですね
途中で仕様が変わらないとも限りませんが、主だったところの出力情報を調査しておけば正規表現でひっかけられるような気がします。
オフライン
hmatsue による投稿:
どのように仮想マシンを作り込むかは各ベンダ毎に異なっており、共通規格があるわけでもないので決定的な方法はないような気がします。
なるほどそうかもしれませんね。
hmatsue による投稿:
$ lshal | grep hardware
などとしてみたところ、
VirtualBox上では、"Innotek"やら"VirtualBox"やらの情報が現れました。
実験ありがとうございます。
なお、余談になりますが10.04ベータで lshal を実行してみたところ
Could not initialise connection to hald.
Normally this means the HAL daemon (hald) is not running or not ready.
となりました。HALの廃止の動きは 9.10 からありますが(https://wiki.ubuntulinux.jp/Develop/Kar … alOverview)
どうやら10.04からは lshal コマンドも使えなくなるようです(確かにhaldが動いていなかった)。
※いろいろパッケージを抜き差ししているのでそのせいかもしれませんが。
その後、
sudo dmidecode -s system-product-name
でMacBookの機種(世代)判別を行った事があるのを思いだし
(https://help.ubuntu.com/community/MacBook)
これを vmware player で実行したところ「VMware Virtual Platform」という出力が得られました。
dmidecode はBIOS等の情報を取得するものなので、仮想ハードウェアの種別を調べるのにも使えそうな感じです。
有名どころの仮想化アプリでの dmidecode の出力を調べておくことに致します。
オフライン
sudo dmidecode -s system-product-name
してみたら、VirtualBox上のkarmicでも、VirtualBoxとでました。
dmidecodeというコマンドもあるのですね。勉強になりました。
以下、余談。
10.04 betaにしてから、/etc/hal/fdi/policy以下に作ったの設定ファイル(マウス関連)を読んでくれなくなっていたので、深く考えずにxinputを.xprofileなどに書いていましたが、haldが走らなくなっていたとは。。
ちょっと気になったのでホイールマウス設定のドキュメントを久しぶりに見てみると、こちらもudev式の設定方法が追記されていました。
https://help.ubuntu.com/community/Logitech_Marblemouse_USB
# ubuntuの進化のスピードについていけてない。。 :|
オフライン