Ubuntu - 设备上没有剩余空间 (NTFS)

Ubuntu - 设备上没有剩余空间 (NTFS)

我有一台存储大量数据的服务器,我保存了许多嵌套目录,其中包含数百万个文件。

当尝试将一个大目录(~700GB)从一个磁盘移动到另一个磁盘时,我收到一个错误:

mv /media/storage3/dir /media/storage4/

"No space left on device"

另外,尝试在磁盘上创建一个小的 txt 文件也不起作用:

Error opening file '/media/storage4/Untitled Document': No space left on device

我在网上查了很多选项,没有一个有效。

df -h 输出:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdg7        77G  9.2G   64G  13% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev             32G  4.0K   32G   1% /dev
tmpfs           6.3G  1.4M  6.3G   1% /run
none            5.0M     0  5.0M   0% /run/lock
none             32G   76K   32G   1% /run/shm
none            100M   48K  100M   1% /run/user
/dev/sdg6        19G  6.7G   11G  39% /home
/dev/sdb1       440G  278G  140G  67% /var
/dev/sda1       2.8T  2.0T  764G  73% /media/storage1
/dev/sdh1       2.8T  1.6T  1.3T  56% /media/storage2
/dev/sdi1       2.8T  1.7T  1.2T  60% /media/storage3
/dev/sdf1       2.8T  876G  1.9T  32% /media/storage4

df -i 输出:

Filesystem         Inodes    IUsed      IFree IUse% Mounted on
/dev/sdg7         5079040   514215    4564825   11% /
none              8242449        2    8242447    1% /sys/fs/cgroup
udev              8239750      611    8239139    1% /dev
tmpfs             8242449      696    8241753    1% /run
none              8242449        5    8242444    1% /run/lock
none              8242449        4    8242445    1% /run/shm
none              8242449       28    8242421    1% /run/user
/dev/sdg6         1220608   218613    1001995   18% /home
/dev/sdb1        29310976 12863877   16447099   44% /var
/dev/sda1       858436804 41630853  816805951    5% /media/storage1
/dev/sdh1      1356948436 38728057 1318220379    3% /media/storage2
/dev/sdi1      1217505624 34748869 1182756755    3% /media/storage3
/dev/sdf1      2048962648 36308921 2012653727    2% /media/storage4

在网上阅读,人们说类似的问题是由于访问大量文件而发生的,将 fs.inotify.max_user_watches 设置为高数量可能会解决它,我将其从 8192 增加到 1000000 但没有帮助。

答案1

运行以下命令:

lsof -s | sort -nrk 7 | head

你会看到像这样的输出:

firefox    2997                     j   52rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   50rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j    3rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   39rr     REG              252,0 10485760    5505182 /some/path
firefox    2997                     j   31ur     REG              252,0 10485760    5505182 /some/path

笔记;上面只是一个示例,您需要根据自己的判断来查找空间使用情况。

关于输出:

  • 第 7 列是正在使用的空间的大小。
  • 第 4 列是文件描述符。

您可以删除文件描述符中的内容以重新获得该空间:

cat /dev/null > /proc/2997/fd/50

显然这会破坏该文件描述符上的所有数据。

答案2

您可以尝试使用 tar 复制所有数据,然后将其删除:

cd /media/storage3/; tar cfp - ./dir | ( cd /media/storage4; tar xfp - )

这将保留所有所有权、权限和链接

答案3

我本来会使用这些rsync -avrz storage3 storage4文件,然后删除这些文件,但我遇到了另一个问题,如果您使用的是 Linux (Ubuntu),那么为什么您要使用 NTFS 文件系统来共享这些共享,那么我会选择 ext4 或 ReiserFS、ButterFS。如果这些共享位于 Windows 机器上,请尝试使用 robocopy 将这些文件从 Windows 移动到 Windows,这在这方面非常出色。 Robocopy 的工作方式主要类似于 rsync。

rsync 的手册页:http://linux.die.net/man/1/rsync

robocopy 的帮助页面:https://technet.microsoft.com/en-us/library/cc733145.aspx

适用于 Linux 的 3g-ntfs 驱动程序支持页面:www.tuxera.com/community/open-source-ntfs-3g/

3g-ntfs 常见问题解答:www.tuxera.com/community/ntfs-3g-faq/

我怀疑您在 Ubuntu 安装中使用的 NTFS 文件系统驱动程序中应该修复某些内容,您使用的是哪个 NTFS 发行版,您是如何安装磁盘的,它们是本地连接到您所在的 ubuntu 盒子还是已安装使用 SAN 中的 iSCSI?

此故障排除不仅仅是“我无法移动它们位于 NTFS 上的文件,并且我正在运行 ubuntu 来移动它们”。

相关内容