KVMでマウントされているディスクを交換する

いつもKVM仮想マシンは、仮想マシンを作成するときのインストールイメージをマウントさせたままだったのですが、ソフトウェアのインストールにCDのISOイメージをマウントさせる必要がでてきました。
共有フォルダにコピーするのは4時間とかかかるようなのでddでisoイメージを作った方が早いという…。

コマンドは次の通り。

# virsh attach-disk %domain% %イメージファイルのパス% %target% --type cdrom

ドメインvirsh start hogeとかするときに使うhogeの部分です。
イメージのパスはフルパスにしてあげないとダメなようです。
targetの部分は仮想マシンの設定ファイルに書かれているtarget要素のdev属性を入れます。/etc/libvert/qemu/hoge.xmlを見るとdevice属性にcdromとあるdisk要素の子としてtarget要素があると思いますので、そこに書かれています。 例えば

    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/home/smb/vm/virtio-win-0.1-81.iso'/>
      <target dev='hdc' bus='ide'/>
      <readonly/>
      <address type='drive' controller='0' bus='1' target='0' unit='0'/>
    </disk>

となっていればhdcを入れてあげればOk。

# virsh attach-disk hoge /home/smb/vm/newdisk.iso hdc --type cdrom

のような感じになります。
稼働中の仮想マシンでもディスクの交換が可能でした。

# virsh help attach-disk

とするとヘルプが見られるので詳しくはそちらで。

仮想マシンからディスクをEjectする時は

# virsh detach-disk %domain% %target%

とすればいいようです。