调整分区大小后“设备上没有剩余空间”

调整分区大小后“设备上没有剩余空间”

我决定调整存储驱动器上的分区大小(使用 gparted),一切似乎都很顺利,但现在当我尝试创建目录或将文件复制到驱动器时​​,出现“设备上没有剩余空间”的错误。

另外,即使我删除一些文件,它也不允许我替换它们。

驱动器上的所有文件似乎都可以正常读取,并且我可以将现有文件移动到其他目录中而没有任何问题。

那里驱动器上的空间。检查所有文件的大小报告:175,840 个项目,总计 839.8 GB

它是一个 ext3 分区。

奇怪的是,Ubuntu(64 位 karmic)仍然在位置菜单中将驱动器选为“957GB 文件系统”。

请注意,受影响的驱动器不是我的主启动驱动器,而只是一个我在需要时从“位置”菜单安装的存储驱动器。

“df -h”的输出:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1             885G  842G     0 100% /media/acd61702-ff34-460f-8539-ac762d1dc466

“df -i”的输出:

Filesystem            Inodes   IUsed   IFree IUse% Mounted on
/dev/sdb1            58433536  175818 58257718    1% /media/acd61702-ff34-460f-8539-ac762d1dc466

我已经运行了“fsck -f -v /dev/sdb1”:

fsck from util-linux-ng 2.16
e2fsck 1.41.9 (22-Aug-2009)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

  175818 inodes used (0.30%)
    8348 non-contiguous files (4.7%)
     142 non-contiguous directories (0.1%)
         # of inodes with ind/dind/tind blocks: 76655/8046/56
222404925 blocks used (95.17%)
       0 bad blocks
      79 large files

  161176 regular files
   12907 directories
       0 character device files
       0 block device files
       0 fifos
      38 links
    1726 symbolic links (1512 fast symbolic links)
       0 sockets
--------
  175847 files

任何帮助,将不胜感激。

谢谢,e。

编辑:按照要求“tune2fs -l /dev/sdb1”:

tune2fs 1.41.9 (22-Aug-2009)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          acd61702-ff34-460f-8539-ac762d1dc466
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype sparse_super large_file
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              58433536
Block count:              233703571
Reserved block count:     11685177
Free blocks:              11298646
Free inodes:              58257718
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      968
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   256
Filesystem created:       Thu May 15 14:59:19 2008
Last mount time:          Fri Nov 13 13:47:23 2009
Last write time:          Fri Nov 13 14:40:32 2009
Mount count:              2
Maximum mount count:      35
Last checked:             Thu Nov 12 15:14:03 2009
Check interval:           15552000 (6 months)
Next check after:         Tue May 11 16:14:03 2010
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      793715af-66d6-46da-82aa-97ab4549b0ad
Journal backup:           inode blocks

答案1

首先,您不能简单地将磁盘上所有文件的大小相加,并期望这就是使用的总空间。每次存储文件时,都会浪费一些空间。这就像把书放在书架上,如果书的大小不同,那么在书的顶部和下一个书架的底部之间就会有空间。

其次,如果您有任何打开但被删除的文件,那么所使用的空间将一直被使用,直到处理该文件的程序将其关闭或退出。这通常用于临时文件,程序不必担心清理它们,它所需要做的就是打开一个文件,然后删除它,然后再使用它。这些文件使用的空间将显示在 df 中,但您找不到与其对应的文件名。如果您想找到它们,那么您必须在 /proc/*/fd 中查找

第三,这也是您的问题所在,ext3 文件系统有一定比例的保留空间,只有 root 才能写入。这有两个原因,许多文件系统在磁盘接近满时会变得效率低下,系统必须花费越来越多的时间将文件放入剩余的空间中。此外,读取和写入文件的速度很慢,因为它们最终会严重碎片化。为 root 保留空间的另一个原因是它允许 root 压缩文件并希望为用户恢复一些空间。如果磁盘完全满了,那就不可能了。

因此,没有什么问题,您所看到的是磁盘已满时的正常行为。

答案2

它表示文件系统已 100% 使用,可用空间为 0。文件系统已满。出于各种原因,可用空间 + 已用空间 != 大小。

答案3

好的,你没事,它已经满了:D

感谢 Quack 对 tune2fs 的评论,我明白我错在哪里了:

Reserved block count:     11685177
Free blocks:              11298646

我刚刚从驱动器中移出了大约 60GB 的数据,现在它运行正常:)

感谢大家的帮助。

相关内容