プライベートクラウド上で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の追記が完了しました。
仮想マシンならぬインスタンスの作成を進めていきたいと思います。
同じエラーで詰まった人は同じ対応で解決できるかと思います。