2022/11/24

libvirt経由のQemuの設定

libvirtから起動したときのQemuの引数は、JSON形式で記述されている部分が多い。


Vimで変換するなら、以下のようなコマンドで大部分は変換できるが、先頭・末尾の括弧{}は手で削除する必要がある。

:%s/"\([a-zA-Z0-9\.\-\_]\+\)":"\?\([a-zA-Z0-9\.\-:\/_]\+\)"\?/\1=\2/gc

なお、JSONがネストしている場合があるが、その場合は、左辺値を、右辺の各要素の左辺の先頭のピリオド「.」で連結してやる必要がある。

 -blockdev {"driver":"file","filename":"/VM/VM_images.img","node-name":"libvirt-3-storage","cache":{"direct":true,"no-flush":false},"auto-read-only":true,"discard":"unmap"}

つまり、上記のような場合は、以下のような手順を取ることになる。
まずは:で区切られた左辺と右辺を=でつなげる

 -blockdev driver=file,filename=/VM/VM_images.img,node-name=libvirt-3-storage,"cache":{direct=true,no-flush=false},auto-read-only=true,discard=unmap

"cache":{direct=true,no-flush=false} の部分がネストしていたので、上記で説明したように左辺値をネストした部分の左辺値の冒頭にピリオドで連結して展開する。

 -blockdev driver=file,filename=/VM/VM_images.img,node-name=libvirt-3-storage,cache.direct=true,cache.no-flush=false,auto-read-only=true,discard=unmap

0 件のコメント:

コメントを投稿