libvirtd: initialization failed解决(附libvirt其它错误解决办法)

今天帮别人清空日志,结果清完后平台起不起来了

查看日志,是检查libvirt版本那一步出问题,其中用了查看命令:libvirtd  --version

自己检查,返回错误:libvirtd: initialization failed

上网找了一下,试了下,找到一个ok的,说是字符编码出错。解决步骤如下:

1,打开/etc/profile

export LC_ALL=POSIX   #加入这一行保存,这里好像要root权限

保存退出

2,然后source /etc/profile

3,sudo /etc/init.d/libvirt-bin restart

完成,用“libvirtd  --version”查看,返回:libvirtd (libvirt) 0.9.13

成功了。将平台重启,然后可以运行了



>>>>>20130624

今天又出现这个问题,然而上面的方法不适用。我连/etc/init.d/libvirt-bin都找不到。

通过百度,查到"libvirt-bin是一个符号链接/etc/init.d/libvirt-bin -> /lib/init/upstart-job,后者是一个shell脚本。"

(地址:http://www.linuxidc.com/Linux/2012-07/65515.htm

我检查到我的/lib/init/upstart-job文件还是存在,所以直接建了个链接文件:

$cd /etc/init.d/

$sudo ln -s /lib/init/upstart-job libvirtd-bin

然后重启服务

$sudo /etc/init.d/libvirtd-bin restart

结果还是不行,依旧提示:libvirtd: initialization failed

看来不只是文件丢失问题



后来问的同事,他研究过一段时间,终于知道了原因。

原来我是在服务器上的各种测试,然而服务器是英文环境的ubuntu,我的本机是中文环境的。我一般测试都是用过本机ssh到服务器,然后进行的测试。

然而,从中文环境的本机ssh到英文环境的服务器,会导致服务器测试时的环境变量改变,因此运行命令libvirtd  --version会提示错误。

果然我同事的电脑上ssh到服务器,命令无问题,正常返回信息。

因为要测试,所以找了暂时的解决办法:1,将本机修改为英文环境;2;找个英文环境的ubuntu镜像,由镜像创建的虚拟机中ssh到服务器。

两个其实原理一样的。我正好有个镜像,所以用了2方法。



**************************

由于测试需要开关机操作,以上两个方法都略显麻烦,因此,找了个适合开关机的办法:

将启动libvirt的命令,写入自启动中。

每次机器启动,因为是本身启动libvirt,所以没有问题。

**************************



#########################################################

查到资料以前碰到过,还有其它的libvirt出错总结,也在这里贴一下:

libvirt 错误FAQ

ibvirt 错误FAQ

 【Q】: error: "Error: libcrypto required."
 【A】: apt-get install libssl-dev
 
【Q】: error lxcControllerRun:686 : Cannot unshare mount namespace: Function not implemented
【A】: 
 
【Q】: "start vm1" in virsh, error: Failed to add veth0 device to virbr0: No such device
【A】:
 
 
【Q】: "net-start" defualt in virsh error: Cannot find 'dnsmasq' in path: No such file or directory
【A】: 
 
【Q】: "start suse" in virsh error : lxcSetupInterfaces:1108 : Failed to add veth0 device to virbr0: No such device
/usr/local/sbin/brctl addbr virbr0
 
 
【Q】:hack 的时候出现编译错误:../src/.libs/libvirt_driver_lxc.a(libvirt_driver_lxc_la-lxc_driver.o): In function `lxcSetSchedulerParameters':

lxc/lxc_driver.c:2326: undefined reference to `virCgroupSetCpuSet'

【A】: libvirt在这个地方的处理非常奇怪,需要去src/底下,在对应的*.syms添加相应的接口声明
 
【Q】: hack添加新接口会出现:libvirt.c:1648: warning: no previous prototype for 'virNodeGetStats' [-Wmissing-prototypes]
【A】: 在include/libvirt底下, libvirt.h是根据libvirt.h.in生成的,所以,扩展新的接口时,不要忘记往.in里面添加
 
【Q】: Result status 0, stdout: '' stderr: 'INFO   in start_domain, domain suse existed
【A】: 配置文件中指定的模板文件存在问题
 
【Q】:在mount的时候可能会出现:
mount -o loop /data/domains/lxc5.img /data/domains/lxc5

mount: could not find any free loop device

【A】:这是因为max_loop默认只有8,太小
 
 
【Q】:umount: /data/domains/vm4: device is busy
【A】:手工杀死:/usr/libexec/libvirt_lxc --name lxc1 --console 13 --background --veth veth8
类似的文件会导致这个虚拟机引导的init进程和init引导出的其他进程还在系统中。所以,必须kill掉这些进程才行
 
【Q】: 启动vm或者停止vm的时候,会导致客户端的ssh卡死。
【A】: 虚拟机的init启动新的sshd出现的
 
【Q】: 虚拟机中的/dev/ptx/ptmx 无法删除
libvirt 错误FAQ - 小洪 - 小洪
【A】:
mount |grep lxc5
fuser -mu  suse1/
lsof -w suse1
     
 
【Q】: mount -o loop /** /** 提示失败
【A】: max_loop 默认最大值为8,需要增加这个默认值的大小
 
【Q】: 设置cgroup的内存参数的时候可能是失败,报错:
【A】:这是由于memory.memsw.limit_in_bytes, memory.limit_in_bytes大小有关联。memory.limit_in_bytes不能大于memory.memsw.limit_in_bytes, memory.memsw.limit_in_bytes不能小于memory.limit_in_bytes。所以,在设置新内存值的时候需要注意设置的顺序。比较新值跟老值之间的关系
 
【Q】:启动libvirtd报错: initialization failed
【A】:字符编码出错 export LC_ALL=POSIX 
 
【Q】:启动虚拟机,日志不断报错:
     13:24:10.986: 28595: error : lxcFdForward:309 : read of fd 7 failed: Input/output error
     cpu占有100%, 而且,list 的状态是处于运行中。
【A】
 
 
【Q】:在虚拟机中创建设备出错 
     mknod loop0 b 7 0     
     mknod: `loop0': Operation not permitted
【A】:需要设置cgroup中设备的值: echo a *:* rw > devices.allow 


资料原文地址:http://www.cnblogs.com/zhangzhang/archive/2013/03/04/2943263.html


### Matplotlib 导入时出现 Initialization Failed解决方案 当遇到 `matplotlib` 导入失败并提示 `ImportError: initialization failed` 时,通常是由以下几个常见原因引起的: #### 原因分析 1. **依赖库缺失或损坏** 如果系统的某些必要依赖项未正确安装,则可能导致初始化失败。例如,缺少 `_tkinter.dll` 或其他动态链接库文件[^4]。 2. **版本冲突** 安装的 `matplotlib` 版本可能与当前 Python 环境中的其他依赖库(如 NumPy、Pillow 等)存在版本不兼容的情况[^3]。 3. **环境变量配置不当** 动态链接库路径未正确设置到系统环境中,可能会导致加载失败。可以通过调整 `LD_LIBRARY_PATH` 来修复此问题。 4. **软件包损坏或部分卸载** 可能之前尝试过多次安装或卸载操作,导致现有安装状态不稳定或残留文件干扰正常运行[^5]。 --- #### 解决方案 ##### 方法一:重新安装 Matplotlib 和其依赖项 通过完全移除旧版后再重新安装最新稳定版本来解决问题。 ```bash pip uninstall matplotlib numpy pillow pip install matplotlib ``` 上述命令会清理掉现有的 `matplotlib` 及相关依赖,并确保它们能够按照最新的推荐组合进行重装[^2]。 ##### 方法二:验证并更新 Python 环境 确认所使用的 Python 是否支持目标版本的 `matplotlib` 并保持一致性和稳定性。如果怀疑基础解释器存在问题,建议升级至较新的长期维护分支 (LTS)。 ##### 方法三:检查操作系统特定需求 对于 Windows 用户来说,有时需要额外下载 Microsoft Visual C++ Redistributable Packages 来满足底层编译好的扩展组件的要求;而对于 Linux 发行版则需关注是否已预置 Tkinter 支持以及图形界面开发工具链的存在情况。 ##### 方法四:调试具体错误日志 启用更详细的诊断模式查看确切崩溃位置: ```python import logging logging.basicConfig(level=logging.DEBUG) import matplotlib print(matplotlib.__version__) ``` 以上脚本能帮助定位哪个阶段发生了异常终止行为从而进一步缩小范围查找根本诱因。 --- ### 示例代码片段展示如何测试基本绘图功能 下面给出一段简单的例子用来检验修复后的效果是否恢复正常工作流程: ```python import matplotlib.pyplot as plt plt.plot([1, 2, 3], [4, 5, 6]) plt.ylabel('some numbers') plt.show() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值