我正在尝试在非标准位置创建容器,但 lxc-create 提示根目录已经存在,但事实上似乎不存在。我做错了什么?
leon@ln00:/media/leon/Archive/lxc$ sudo lxc-ls
saucy-amd64-chromiumos
leon@ln00:/media/leon/Archive/lxc$ sudo lxc-destroy -n saucy-amd64-chromiumos
leon@ln00:/media/leon/Archive/lxc$ ll
total 8
drwxrwxr-x 2 leon leon 4096 Nov 24 22:03 ./
drwx------ 4 leon leon 4096 Nov 24 21:49 ../
leon@ln00:/media/leon/Archive/lxc$ time sudo lxc-create -n saucy-amd64-chromiumos -t ubuntu -B dir --dir /media/leon/Archive/lxc/ -- -r saucy
lxc-create: No config file specified, using the default config /etc/lxc/default.conf
specified rootfs (/media/leon/Archive/lxc/) already exists. Bailing.
real 0m0.029s
user 0m0.004s
sys 0m0.008s
leon@ln00:/media/leon/Archive/lxc$ ll
total 8
drwxrwxr-x 2 leon leon 4096 Nov 24 22:03 ./
drwx------ 4 leon leon 4096 Nov 24 21:49 ../
leon@ln00:/media/leon/Archive/lxc$ sudo ls -al /var/cache/lxc/
total 8
drwx------ 2 root root 4096 Out 29 16:58 .
drwxr-xr-x 24 root root 4096 Nov 24 21:53 ..
答案1
-B dir --dir 用于指定容器的 rootfs 路径。它应该指向一个不存在的路径,用于放置 rootfs。如果这确实是您想要的,只需销毁目录,LXC 应该就可以了(容器的配置和 fstab 将在 /var/lib/lxc/ 下创建,但 rootfs 将是 /media/leon/Archive/lxc/)。
如果您只是想为容器使用备用位置(而不是标准的 /var/lib/lxc)。为此,请使用 --lxcpath|-P 选项。
sudo lxc-create -n saucy-amd64-chromiumos -t ubuntu -P /media/leon/Archive/lxc/ -- -r saucy
大多数 lxc 命令都接受此参数,因此您还可以执行以下操作:
lxc-ls -P /media/leon/Archive/lxc/
并将其传递给 lxc-start/lxc-stop/...
您也可以通过在 /etc/lxc/lxc.conf 中设置“lxcpath = /media/leon/Archive/lxc/”来使其永久生效(您必须创建此文件,默认情况下它不存在)。
以上所有内容均假设 LXC 的版本较新(1.0 预版本之一)。