我最近将我的 lxd 升级到 2.20-0ubuntu4~16.04.1~ppa,但现在我无法启动我导入的容器。
我可以使用 lxd import NAME 成功导入容器,并且可以执行 lxc config show NAME 并显示配置。
但是当我去启动它时,它说:
lxc start web01
error: saving config file for the container failed
Try `lxc info --show-log web01` for more info**
lxc info --show-log web01
Name: web01
Remote: unix://
Architecture: x86_64
Created: 2017/11/18 20:34 UTC
Status: Stopped
Type: persistent
Profiles: v41
日志:
如果我在调试中运行(lxc start --debug web01),那么在调试结束时我会得到以下内容,但似乎没有帮助:
DBUG[11-18|20:41:28] Got operation from LXD
DBUG[11-18|20:41:28]
{
"id": "8c760a1d-f1d4-418b-a7bc-fce2cb19e878",
"class": "task",
"created_at": "2017-11-18T20:41:28.572544339Z",
"updated_at": "2017-11-18T20:41:28.572544339Z",
"status": "Running",
"status_code": 103,
"resources": {
"containers": [
"/1.0/containers/web01"
]
},
"metadata": null,
"may_cancel": false,
"err": ""
}
DBUG[11-18|20:41:28] Sending request to LXD etag= method=GET url=http://unix.socket/1.0/operations/8c760a1d-f1d4-418b-a7bc-fce2cb19e878
DBUG[11-18|20:41:28] Got response struct from LXD
DBUG[11-18|20:41:28]
{
"id": "8c760a1d-f1d4-418b-a7bc-fce2cb19e878",
"class": "task",
"created_at": "2017-11-18T20:41:28.572544339Z",
"updated_at": "2017-11-18T20:41:28.572544339Z",
"status": "Running",
"status_code": 103,
"resources": {
"containers": [
"/1.0/containers/web01"
]
},
"metadata": null,
"may_cancel": false,
"err": ""
}
error: saving config file for the container failed
Try `lxc info --show-log web01` for more info
有人能帮忙说明为什么它无法保存其配置吗?
答案1
好的,所以对于任何获得信息的人来说,这可能是因为在 2.20 的 ppa 中,我被提供了 snap 版本,并安装了它。然而,在 snap 版本中,它将目录更改为 /var/snap,例如 /var/snap/lxd/common/lxd/storage-pool/ 是新的 /var/lib/lxd/storage-pool
如果您不像我一样对池和容器进行符号链接,那么这可能没问题。因此,/var/lib/lxd/containers 在 snap 中中断,因为它试图指向 /var/snap/lxd/common/lxd/storage-pools/default/containers。
此后,我将 lxd 反向移植到 16.04,然后将符号链接更改为没有 snap 时的状态,但我认为它们在 snap 中也能同样好用。有关反向移植到 16.04 的信息:apt install -t xenial-backports lxd lxd-client