MULTIPASS_STORAGE 指令不起作用

MULTIPASS_STORAGE 指令不起作用

我正在尝试释放我的 ubuntu 系统上的根驱动器上的空间。

占用了大约 12G 空间的一件事是多通道。我想将其移动到更宽敞的/home目录。

所以我按照说明这里并创建了新的目录/home/multipass

但是,我执行了多遍列表,但未找到任何实例。我该如何找回我的实例?我应该在日志中查找哪些内容来说明它为何不起作用?

编辑:要求提供我所做工作的详细信息:

root@homebuild:/var/snap/multipass# mkdir /home/multipass
root@homebuild:/var/snap/multipass# snap stop multipass
2023-10-11T13:55:54-04:00 INFO Waiting for "snap.multipass.multipassd.service" to stop.
Stopped.
root@homebuild:/var/snap/multipass# snap connect multipass:all-home
root@homebuild:/var/snap/multipass# mkdir /etc/systemd/system/snap.multipass.multipassd.service.d
root@homebuild:/var/snap/multipass# tee /etc/systemd/system/snap.multipass.multipassd.service.d/override.conf <<EOF
> [Service]
> Environment=MULTIPASS_STORAGE=/home/multipass
> EOF
[Service]
Environment=MULTIPASS_STORAGE=/home/multipass
root@homebuild:/var/snap/multipass# sudo cp -r /var/snap/multipass/common/data/multipassd /home/multipass/data
root@homebuild:/var/snap/multipass# sudo cp -r /var/snap/multipass/common/cache/multipassd /home/multipass/cache
root@homebuild:/var/snap/multipass/common/data# snap start multipass
Started.

# in other window
steves@homebuild:~$ multipass list
No instances found.

不确定还需要做什么?我认为链接里有所有说明。

答案1

因此答案是,MULTIPASS_STORAGE 指令缺少一些关键步骤。我通过执行这些步骤解决了这个问题。

查看我的错误报告:https://github.com/canonical/multipass/issues/3254

这是我运行的所有相关命令的日志:

steves@homebuild:~$ multipass list
Name                    State             IPv4             Image
nrmbuild                Stopped           --               Ubuntu 18.04 LTS
steves@homebuild:~$ sudo snap stop multipass
2023-10-12T20:58:23-04:00 INFO Waiting for "snap.multipass.multipassd.service" to stop.
Stopped.
steves@homebuild:~$ sudo snap connect multipass:all-home
steves@homebuild:~$ mkdir -p multipass
steves@homebuild:~$ sudo chown root multipass
steves@homebuild:~$ sudo mkdir /etc/systemd/system/snap.multipass.multipassd.service.d/
steves@homebuild:~$ sudo tee /etc/systemd/system/snap.multipass.multipassd.service.d/override.conf <<EOF
[Service]
Environment=MULTIPASS_STORAGE=/home/steves/multipass
> EOF
[Service]
Environment=MULTIPASS_STORAGE=/home/steves/multipass
steves@homebuild:~$ sudo systemctl daemon-reload
steves@homebuild:~$ sudo cp -r /var/snap/multipass/common/data/multipassd /home/steves/multipass/data
steves@homebuild:~$ sudo cp -r /var/snap/multipass/common/cache/multipassd /home/steves/multipass/cache
steves@homebuild:~$ sudo snap start multipass
Started.
steves@homebuild:~$ multipass list
Name                    State             IPv4             Image
nrmbuild                Stopped           --               Ubuntu 18.04 LTS

此时,我的实例仍可工作。但让我们将原始数据移走

steves@homebuild:~$ sudo mkdir /root/multipass
steves@homebuild:~$ sudo mv /var/snap/multipass/common/data/multipassd /root/multipass/data
steves@homebuild:~$ sudo mv /var/snap/multipass/common/cache/multipassd /root/multipass/cache
steves@homebuild:~$ multipass list
Name                    State             IPv4             Image
nrmbuild                Stopped           --               Ubuntu 18.04 LTS
steves@homebuild:~$ multipass shell nrmbuild
start failed: cannot start VM without an image

实例无法启动。如果我此时重新启动,图像将从列表中消失!

现在,我发现有 2 个配置文件需要更新。一个配置文件 multipass-vm-instances.json,其中每个实例的“arguments”键中包含实例图像的绝对路径,另一个配置文件 vault/multipassd-instance-image-records.json,其中每个实例的“path”键中都列出了实例图像的绝对路径。这些文件也需要指向正确的目录,否则实例将无法启动!

如果这些被更新,实例就可以正确启动。

相关内容