CentOS 7 虚拟机启动出现 Permission denied

OS:CentOS 7


在CentOS 7 下使用virt-manager增加虚拟机,配置成功后,启动虚拟机时,出现一下提示:

qemu-kvm: -drive file=/var/lib/libvirt/images/AloeCCnode_v2.1.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /var/lib/libvirt/images/AloeCCnode_v2.1.qcow2: Could not open file: Permission denied


导致虚拟机无法成功创建。


查看镜像文件权限:

[root@localhost log]# ll /var/lib/libvirt/images/
total 30410756
-rw-r--r--. 1 qemu qemu 31132352512 Aug 13 16:02 AloeCCnode_v2.1.qcow2

发现文件权限qemu可访问。


查看libvirtd日志信息:

2015-08-13 03:03:54.679+0000: starting up

LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=spice /usr/libexec/qemu-kvm -name AloeCCnode -S -machine pc-i440fx-rhel7.0.0,accel=kvm,usb=off -cpu Haswell -m 8192 -realtime mlock=off -smp 4,sockets=4,cores=1,threads=1 -uuid 078f6d2d-0cde-4e7c-956c-179bfd62993a -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/AloeCCnode.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=discard -no-hpet -no-reboot -global PIIX4_PM.disable_s3=1 -global PIIX4_PM.disable_s4=1 -boot strict=on -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 -device ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5 -device ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 -device ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 -drive file=/var/lib/libvirt/images/AloeCCnode_v2.1.qcow2,if=none,id=drive-ide0-0-0,format=qcow2 -device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=2 -drive file=/var/lib/libvirt/images/AloeCCnode_v2.1.qcow2,if=none,id=drive-ide0-0-1,readonly=on,format=qcow2 -device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,bootindex=1 -netdev tap,fd=23,id=hostnet0 -device rtl8139,netdev=hostnet0,id=net0,mac=52:54:00:9d:e0:20,bus=pci.0,addr=0x3 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev spicevmc,id=charchannel0,name=vdagent -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.spice.0 -spice port=5900,addr=127.0.0.1,disable-ticketing,seamless-migration=on -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=67108864 -global qxl-vga.vgamem_mb=16 -device intel-hda,id=sound0,bus=pci.0,addr=0x4 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -chardev spicevmc,id=charredir0,name=usbredir -device usb-redir,chardev=charredir0,id=redir0 -chardev spicevmc,id=charredir1,name=usbredir -device usb-redir,chardev=charredir1,id=redir1 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x7 -msg timestamp=on
char device redirected to /dev/pts/3 (label charserial0)

2015-08-13T03:03:54.712819Z qemu-kvm: -drive file=/var/lib/libvirt/images/AloeCCnode_v2.1.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /var/lib/libvirt/images/AloeCCnode_v2.1.qcow2: Could not open file: Permission denied


经过网络查询发现时selinux 控制权限导致。


关闭系统selinux,并设置为disable。

# setenforce 0

# sed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/config


重启libvirtd服务。


再次启动虚拟机,即可成功启动。

### CentOS 7Permission Denied 的常见原因及解决方案 #### SELinux 配置不当 当遇到 `Permission denied` 错误时,首先应考虑 SELinux 是否处于强制模式。可以通过命令 `getenforce` 来查看当前 SELinux 状态[^1]。如果返回值为 Enforcing,则表示 SELinux 正在阻止某些操作。 为了临时禁用 SELinux 并测试是否为此引起的问题,可执行如下命令: ```bash setenforce 0 ``` 这会将 SELinux 设置为宽容模式(Permissive),允许所有被拒绝的操作并记录警告而不实际阻止它们。永久修改需编辑 `/etc/selinux/config` 文件中的配置项。 #### Nginx 特定端口访问权限不足 对于特定于 Nginx 报错的情况,可能是由于尝试监听非特权端口 (低于1024) 或者自定义高编号端口而未赋予相应权限所造成。此时应该确认目标端口号以及对应的 SELinux 上下文设置是否正确[^2]。 可以利用以下指令来调整相关策略: - 使用 semanage 命令添加新的网络端口标签; - 修改现有服务的安全上下文映射表; 例如要开放 TCP 协议下的9999端口供 httpd/nginx 进程使用: ```bash sudo semanage port -a -t http_port_t -p tcp 9999 ``` #### SSH 登录失败 针对无法通过SSH登录且提示 "Permission denied, please try again." 的情形,在排除了密码错误的可能性之后,应当核查以下几个方面[^3]: - 客户端与服务器间的时间同步情况 - `.ssh/authorized_keys` 文件及其所在目录的读写属性 另外值得注意的是防火墙规则也可能阻碍正常通信,确保 iptables 或 firewalld 不会对合法请求构成障碍。 #### Docker 内部文件系统权限冲突 运行容器化应用时常遇见主机层面上看似合理的路径却不可达的现象。这是因为默认情况下宿主节点上的资源挂载到沙盒环境里后其原有的 ACL 可能不再适用[^4]。 一种可行的办法是在启动参数中指定合适的 volume mount 方式,比如采用一致性的用户 ID 和组 ID 映射关系,或者干脆关闭掉内核层面的身份验证检查功能(`--privileged=true`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值