libvmiで仮想マシン内部のプロセス一覧を取得...できなかった

スポンサード リンク

目的: 物理マシンからqemu-kvmで動作する仮想マシンの中で動作するプロセスの一覧を取得する。 VMI (Vritual Machine Introspection) でググると沢山情報がでてくる。

libvmiをコンパイルする。 make installをしなくてもサンプルプログラムを実行する分には十分である。

sudo apt install kvm libtool m4 automake check bison flex libglib2-dev
git clone https://github.com/libvmi/libvmi.git
cd libvmi
./autogen.sh
./configure --enable-xen=no
export CPATH='/usr/include/glib-2.0:/usr/lib/x86_64-linux-gnu/glib-2.0/include:glib-2.0'
make

build libvirt with QMP support

sudo apt install libyajl-dev libnl-3-dev libnl-route-3-dev libdevmapper-dev libpciaccess-dev
wget http://libvirt.org/sources/libvirt-3.0.0.tar.xz
xz -d libvirt-3.0.0.tar.xz
tar xf libvirt-3.0.0.tar
cd libvirt-3.0.0
./configure
make
make install

install Virtual Machine

sudo apt install kvm virtinst
sudo virt-install \
    --name ubuntu \
    --ram 2048 \
    --disk path=ubuntu.img,size=30 \
    --vcpus 1 \
    --os-type linux \
    --os-variant ubuntu16.04 \
    --network bridge=virbr0 \
    --graphics none \
    --console pty,target_type=serial \
    --location 'http://jp.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/' \
    --extra-args 'console=ttyS0,115200n8 serial'

サンプルプログラムの実行

cd /path/to/libvmi/examples
./vmi-event-example ubuntu

カーネルダンプはcrashでみれるはず。 最新版のcrashをコンパイルする。

wget https://people.redhat.com/anderson/crash-7.1.7.tar.gz
apt-get install libncurses5-dev
make -j 8

Comments !

social