KVMのゲスト仮想マシンを外部からメンテナンスをする際に便利な libguestfs
というツールを知った。
といってもゲスト仮想マシンが外部から操作可能な状態、ssh
やvirsh console
でログインできる状態ならそこまでお世話になることはない。
何らかの理由でゲスト仮想マシンにログインできなくなり、ホストOS上からゲスト仮想マシンのファイルを直接参照したり編集したりしたいとか、rescueモードでログインしたいといったときに役立つ。
上記はRHEL6のドキュメントのものだがCentOSにも同様のツールは存在する。
libguestfsの使い方
インストール
環境
- OS: CentOS6
パッケージがあるのでインストールは簡単。
$ sudo yum install libguestfs libguestfs-tools
使い方
※操作する対象のゲスト仮想マシンを停止しておく必要がある。
ゲスト仮想マシン内のファイルを直接参照したい場合
virt-cat
というコマンドを実行する。
例えばguestvm01というゲスト仮想マシンの/etc/fstab
というファイルの中身を見たい場合はguestvm01を停止した状態で以下を実行する。
-d
オプションはドメイン(ゲスト仮想マシン)を指定するための引数。
$ sudo virt-cat -d guestvm01 /etc/fstab
ゲスト仮想マシン内のファイルを直接編集したい場合
virt-edit
というコマンドを実行する。
例えばguestvm01というゲスト仮想マシンの/etc/fstab
というファイルの中身を編集したい場合はguestvm01を停止した状態で以下を実行する。
-d
オプションはドメイン(ゲスト仮想マシン)を指定するための引数。
$ sudo virt-edit -d guestvm01 /etc/fstab
ゲスト仮想マシン内のファイルの一覧を参照したい場合
virt-ls
というコマンドを実行する。
例えばguestvm01というゲスト仮想マシンの/var/log
以下のファイルの一覧を見たい場合はguestvm01を停止した状態で以下を実行する。
-d
オプションはドメイン(ゲスト仮想マシン)を指定するための引数。
$ sudo virt-ls -d guestvm01 /var/log
ゲスト仮想マシンにレスキューモードでログインしたい場合
virt-rescue
というコマンドを実行する。
例えばguestvm01というゲスト仮想マシンにログインしたい場合、guestvm01を停止した状態で以下を実行する。
$ sudo virt-rescue guestvm01
しばらく待っているとレスキューシェルが起動して以下のようなプロンプトが表示されるので後はこの状態で必要な操作を実行する。
><rescue>
まとめ
KVMのメンテナンスを行うための libguestfs
というツールを知ったので、いくつかのオペレーションコマンドの使い方を簡単に記載した。
上記以外にもいくつかコマンドが存在するので必要に応じて使っていこうと思う。