帮助挂载新文件系统

你好!

我在挂载新的上传空间时遇到了问题。查看仪表板时出现了以下情况,而且在访问某些用户的个人资料时,很多头像都无法显示。

我也确实进入了应用容器,检查了 uploads 文件夹是否存在,确认它确实存在。

我试遍了所有能想到的办法。我觉得是我做了一件蠢事,试图将内容挂载到 /var/discourse/shared 上,这可能引发了问题……我一直收到

的错误提示,而且我完全不知道该如何修复。我尝试从之前的备份恢复,但问题依旧。请有人帮帮我!

你好 @Headless

很抱歉你遇到了这个问题。

能否请你执行以下命令:

# ls -l /var/discourse/shared 

并将结果贴出来,以便我们查看你提到的该目录下的挂载点?

如果我们能看到你所说的实际“挂载”情况,将更容易为你提供建议。

1 个赞

你好!谢谢你的回复。我其实在第一次遇到这个问题时就将其卸载了,不过我还是给你展示一下。
image

最后我把它挂载到了 image

你好 @Headless

所以,据我理解,你有一个已挂载的磁盘分区,并想将该分区用作你的上传目录?

我的理解正确吗?

是的,没错,我试过这个方法,它确实有效。不过,我甚至尝试不使用新卷,而是回退到最初的状态。但我仍然遇到那个错误,同时还出现了加载头像的问题。我觉得我可能真的把某些地方搞乱了,但也不太确定具体做了什么。

如下所示,这就是头像出现的情况。

没关系……你所有的上传文件现在在哪里?

让我们检查一下发生了什么:

首先,请运行以下命令:

# find  /var/discourse/shared/standalone/uploads | wc -l

并粘贴结果;

然后运行以下命令:

# find  /mnt/volume-fsn1-1/uploads | wc -l

并粘贴该输出?

谢谢。

1 个赞

没问题,目前我已经把所有上传文件移回卷了,因为把它们移回主磁盘并没有解决任何问题。

第一个命令的输出是 image

第二个命令的输出是 image

感谢您的帮助!

没问题……

请耐心一点……

我认为有两个问题需要解决。

首先,我认为你需要(暂时)将旧的 uploads 目录移走,然后创建一个指向新目录的符号链接,如下所示:

cd /var/discourse/shared/standalone
mv uploads uploads.orig
ln -sf /mnt/volume-fsn1-1/uploads ./uploads

完成上述操作后,我们将修改 yml 文件(恢复为原始状态),让符号链接发挥神奇作用。

但在进行这一步之前,我们还需要检查 /mnt 分区中文件的权限,不过我们一步一步来。

1 个赞

因此,/var/discourse/shared/standalone 中的 uploads 文件夹始终为空,因为它是在构建应用时创建的。不过,我会照做。

现在我有了符号链接,image

这是 /mnt 目录下的 ls -l 命令输出:image

请耐心一点……

我们先检查一下这个:

ls -l /var/discourse/shared/standalone

只是为了确认一下,因为我看不到这个符号链接……

没问题

太好了,抱歉我这么注重细节……

那么,让我们进入应用并检查一下情况。

你介意给我展示一下这个吗:

(已编辑)

# cd /var/discourse/
./launcher enter app
# ls -l /shared/*

谢谢

没问题,这就是我得到的结果
image

尽管我通过启动器进入应用时,它确实显示了
image

在这里我尝试把所有内容都适配进去

谢谢,抱歉,是的,我敲错了 docker exec 命令……

那这个怎么样(在容器内)

ls -l /shared/uploads/*

给你!

所以,我觉得看起来不错……但为了 100% 确认(请多包涵),让我们再运行一次:

find /shared/uploads | wc -l

并确保我们已准备就绪。

image

给你!

嗯。

抱歉,我们这样做……

find /shared/uploads/* | wc -l

因为这是一个符号链接……

image

这似乎已经显示了结果。