Ext4 Samba Share 报告错误的磁盘大小

Ext4 Samba Share 报告错误的磁盘大小

我有一个 1.7TB 的主分区,格式化为 ext4,目前通过 samba 从我的树莓派共享。我的目标是将此分区与 Ubuntu 内置的 Deja-Dup 备份实用程序一起使用。但是,在执行第一次备份并指向我的 samba 共享时,Deja-Dup 出错,抱怨共享上没有足够的可用空间。以下是df -h树莓派上的输出:

/dev/sdb3 1.7T 4.0G 1.6T 1% /media/SG_MEDIA

显然有足够的空间。但是,当我通过侧栏中的 nautilus 的“连接到服务器”连接到共享时,在窗口中单击鼠标右键,然后选择属性,它报告只有 3GB 的可用空间,如下所示:

鹦鹉螺

显然,这并不准确。有人知道是什么原因造成的吗?在我的 smb.conf 文件中,我已明确设置max disk size = 0,但问题仍然存在。谢谢。

答案1

无论出于什么原因,以下是导致此问题的原因:

我通过 samba 共享我的根目录并尝试浏览它以创建备份,即备份到 smb://192.168.1.2/root/media/SG_MEDIA。这就是报告 3GB 可用空间的原因。

但是,当我直接共享连接的 HD 时,即直接创建 samba 共享到 /media/SG_MEDIA 并备份到 smb://192.168.1.2/SG_MEDIA,它报告了正确的空间。不知道为什么。

答案2

嗯,看起来每个文件都大约 1MB。

这是一个解决方法:

  1. 编辑 smb.conf 并添加以下内容:

    [全球的]

    分配汇总大小 = 4096

  2. 重新启动 samba。

答案3

如果在单个 Samba 共享下有不同的挂载点,则可以使用dfree command共享定义中的设置指向自定义脚本,该脚本将决定如何向客户端公布共享的总空间和可用空间。

不幸的是,文档截至 2023 年 5 月,还不太正确。但有一个我的回答中有详细解释

在脚本中,您可以用来$PWD决定要报告哪些数字。

这是我使用的脚本,也显示在上面的链接答案中:

#!/bin/bash

diskA="$PWD/disk1"
diskB="$PWD/disk2"

# get total number of blocks and free blocks
# into arrays sizesA and sizesB
sizesA=( $( df $diskA | tail -1 | awk '{print $2,$4}' ) )
sizesB=( $( df $diskB | tail -1 | awk '{print $2,$4}' ) )

# return sizes of the disk with smaller free space left
if (( ${sizesA[1]} <= ${sizesB[1]} )); then
    echo "${sizesA[@]}"
else
    echo "${sizesB[@]}"
fi

相关内容