I am LAZY bones? AN ancient AND boring SITE

充分利用磁盘空间,打开ext文件系统的保留区块

今天,吼吼来找我说,他的硬盘,有个分区一共有234G,但是只用了222G,就报满了,无法继续使用了。
其实这个问题,我不久前刚看过一下,只要你仔细看 mkfs.ext3 的man page,就可以知道原因了,其中有这么一句:

       -m reserved-blocks-percentage
              Specify the percentage of the filesystem blocks reserved for the
              super-user.   This  avoids  fragmentation, and allows root-owned
              daemons, such as syslogd(8), to continue to  function  correctly
              after non-privileged processes are prevented from writing to the
              filesystem.  The default percentage is 5%.

也就是说,ext文件系统,包括ext2、ext3、ext4都会默认预留5%的磁盘空间,留给root用户维护系统或者记录系统关键日志的时候使用,这也就是导致普通用户无法使用部分磁盘空间的原因了。
我个人觉得,这个选项用在根分区或者/var之类的分区,还是有一定的必要性的。但是如果是/home、/opt或者干脆是/data之类的数据分区,就显得有点多此一举了。而且,现在的磁盘空间越来越大,5%往往会有10多G,都可以存一部高清了。这么多空间浪费了,是不是太可惜了呢?
于是,就去找相关资料,看能可否在不格式化的情况下改变保留区块的大小。
吼吼找到了这个,比我想像得还要简单,甚至都不需要umount分区,就可以进行修改。
具体操作过程如下,已经加了详细注释:

#之前的保留区有 732463 块
lily@LLY:~$ sudo tune2fs -l /dev/sda7 | grep "Reserved block count"
Reserved block count:     732463
#已用空间+可用空间 和 总空间 相比,还少了近3个G
lily@LLY:~$ df
文件系统	         1K-块      已用      可用 已用% 挂载点
/dev/sda7             57677500  47662588   7085060  88% /home
#调整:
lily@LLY:~$ sudo tune2fs -r 25600 /dev/sda7
tune2fs 1.41.9 (22-Aug-2009)
Setting reserved blocks count to 25600
#再来看看空间,哈哈
lily@LLY:~$ df
文件系统	         1K-块      已用      可用 已用% 挂载点
/dev/sda7             57677500  47662584   9912516  83% /home
#确认调整成功
lily@LLY:~$ sudo tune2fs -l /dev/sda7 | grep "Reserved block count"
Reserved block count:     25600

看到了吧?就一眨眼的功夫,我就多了3G多的空间,哈哈。而且我还不是直接完全去掉保留区块呢,也留了百多兆以防不时之需呢,呵呵。
算了一下,吼吼那个3.4T的磁盘阵列,省出来的空间居然比我的整个硬盘都大。嗨。。。

最后修改时间: 2010年01月08日 20:19

本文章发表于: 2010年01月08日 20:19 | 所属分类:经验技巧. | 您可以在此订阅本文章的所有评论. | 您也可以发表评论, 或从您的网站trackback.

13 个评论 关于: “充分利用磁盘空间,打开ext文件系统的保留区块”

  1. Tweets that mention I am LAZY bones ? : 充分利用磁盘空间,打开ext文件系统的保留区块 -- Topsy.com 在 2010年01月08日 21:33 说:回复

    […] This post was mentioned on Twitter by 渔船阵, 渔船阵. 渔船阵 said: 很好用,谢谢,mark@bones7456 li2z新文章: 充分利用磁盘空间,打开ext文件系统的保留区块 (http://cli.gs/ypTee) […]

  2. lfeng 在 2010年01月08日 23:24 说:回复

    3.4T的磁盘阵列…
    膜拜中….

  3. gDD 在 2010年01月09日 11:48 说:回复

    共同膜拜啊……

  4. 吼吼 在 2010年01月09日 12:58 说:回复

    好文,要收藏。

  5. xiooli 在 2010年01月09日 14:42 说:回复

    不错,我给自己的home又挤出2个多G的空间,呵呵

  6. Joe 在 2010年01月09日 17:15 说:回复

    我的硬盘啊,太小!

  7. hb 在 2010年08月05日 11:17 说:回复

    reiserfs的如何调整呢?

    • bones7456 在 2010年08月09日 08:42 说:回复

      并不是所有文件系统都有保留空间的啊。

      • hb 在 2010年08月09日 09:52 说:回复

        reiserfs其实也有保留空间的呀。

  8. 优化Ext4分区格式化后占用空间 | 七星庐 在 2011年03月27日 12:57 说:回复

    […] 我第一时间想到是保留空间,但经过我大胆假设小心求证后,得出结论,这个保留空间依然算在未使用里面的。保留空间意思是给root账户保留的空间,比如保留空间是100M,当一个分区用得差不多后,剩下100M了,那么普通用户就无法继续建立新文件了,提示空间不足了。换到root账户后,就能继续使用这100M。而格式化后这30G,可是实打实的已经被使用掉。 […]

  9. 优化 Ext4 分区格式化后占用空间 | 世界是平的 在 2013年11月16日 02:07 说:回复

    […] 保留空间, […]

  10. 优化 Ext4 分区格式化后占用空间(通过降低inode数来节省磁盘空间) – 狐窝 在 2017年08月06日 11:26 说:回复

    […] 我第一时间想到是 保留空间,但经过我大胆假设小心求证后,得出结论,这个保留空间依然算在未使用里面的。保留空间意思是给 root 账户保留的空间,比如保留空间是 100M,当一个分区用得差不多后,剩下 100M 了,那么普通用户就无法继续建立新文件了,提示空间不足了。换到 root 账户后,就能继续使用这 100M。而格式化后这 30G,可是实打实的已经被使用掉。 […]

bones7456 发表评论




取消