OpenStackでvirt-editに失敗する際の対処!qcow2ファイルの編集が出来ない

プライベートクラウド上でOpenStackをインストールし、イメージの作成をしようと作業しているとエラーが発生しました。

そこで、エラー回避のための手順を書いていきたいと思います。

ちなみに、英文では同じトラブルの対処法がありましたが日本語ではありまなかったので、該当した場合は参考にしてください。

grubの編集をする際は必要な設定になると思います。

OpenStackの環境はocataを使用しています。

スポンサーリンク

エラーの内容と対処

CentOS7.2のqcow2ファイルを取得して、grubを編集しようと思いコマンドを実行しましたが以下の通りになりました。

内容的にはPermission Denyという印象です。

[root@openstack ~]# virt-edit -a /root/CentOS-7-x86_64-GenericCloud.qcow2 /boot/grub2/grub.cfg
libguestfs: エラー: could not create appliance through libvirt.

Try running qemu directly without libvirt using this environment variable:
export LIBGUESTFS_BACKEND=direct

Original error from libvirt: Cannot access storage file '/root/CentOS-7-x86_64-GenericCloud.qcow2' (as uid:107, gid:107): 許可がありません 
[root@openstack ~]# 

しかし、権限を変えても変化がありませんでした。

海外の文献を読んでみると、ディレクトリを変えるとよさそうです。

対象ファイルを/var/lib/libvirt/images/へ移動させます。

[root@openstack /]# 
[root@openstack /]# cd /var/lib/libvirt/images/
[root@openstack images]# mv /root/CentOS-7-x86_64-GenericCloud.qcow2 ./
[root@openstack images]# 

異動後に再度virt-editコマンドで編集を試みます。

すると以下のように編集が出来るようになりました。

※se nuで行数を表示しています。

[root@openstack images]# virt-edit -a /var/lib/libvirt/images/CentOS-7-x86_64-GenericCloud.qcow2 /boot/grub2
/grub.cf

     91         load_video
     92         set gfxpayload=keep
     93         insmod gzio
     94         insmod part_msdos
     95         insmod xfs
     96         set root='hd0,msdos1'
     97         if [ x$feature_platform_search_hint = xy ]; then
     98           search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'  6f15c206-f516-4ee8-a4b7-89ad8        80647db
     99         else
    100           search --no-floppy --fs-uuid --set=root 6f15c206-f516-4ee8-a4b7-89ad880647db
    101         fi
    102         linux16 /boot/vmlinuz-3.10.0-693.5.2.el7.x86_64 root=UUID=6f15c206-f516-4ee8-a4b7-89ad880647        db ro console=tty0 console=ttyS0,115200n8 crashkernel=auto console=ttyS0,115200 LANG=en_US.UTF-8 no_timer_check
    103         initrd16 /boot/initramfs-3.10.0-693.5.2.el7.x86_64.img
    104 }

これでやりたかったno_timer_checkの追記が完了しました。

仮想マシンならぬインスタンスの作成を進めていきたいと思います。

同じエラーで詰まった人は同じ対応で解決できるかと思います。

スポンサーリンク

フォローする

合わせて読んでみる

良ければ他の記事もどうぞ!



スポンサーリンク
コメントの入力は終了しました。