具有最多可用空间的 ext2 或 ext3 文件系统

具有最多可用空间的 ext2 或 ext3 文件系统

首先,安全很重要,所以我想使用合理大小的 inode 备份和类似的东西,不管它们意味着什么......

我想使用 ext2 或 ext3 作为 Win7 和 Ubuntu 之间的通用分区(ext2fsd)。

我的问题是,我创建了一个 850 GB 的 ext2 分区,而 GParted 说:

Size: 853.15 GiB
Used:  13.46 GiB

这不是为 root 用户保留的 5% 空间(它将超过 40gig)。当然,我尝试过tune2fs -m 0 /dev/sda4文件系统就丢失 13 GB,这正常吗?

非常感谢您的帮助。

如果你需要的话,以下是一些详细信息:

# partition table of /dev/sda
unit: sectors

/dev/sda1 : start=     2048, size=   389120, Id=83, bootable
/dev/sda2 : start=   393214, size= 82028546, Id= 5
/dev/sda3 : start= 82429515, size= 81915435, Id= 7
/dev/sda4 : start=164345856, size=1789177856, Id=83
/dev/sda5 : start=   393216, size= 78123008, Id=83
/dev/sda6 : start= 78518272, size=  3903488, Id=82

df说:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda5             38445384   5101796  31390516  14% /
none                   2021640       660   2020980   1% /dev
none                   2029348      1512   2027836   1% /dev/shm
none                   2029348       348   2029000   1% /var/run
none                   2029348         0   2029348   0% /var/lock
/dev/sda1               182331     22620    149983  14% /boot
/dev/sda4            880550492     73744 880476748   1% /media/334cb5f6-2f18-4193-b2c8-99bd42cd6f01

tune2fs -l /dev/sda4说:

tune2fs 1.41.14 (22-Dec-2010)
Filesystem volume name:   
Last mounted on:          
Filesystem UUID:          334cb5f6-2f18-4193-b2c8-99bd42cd6f01
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      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:              55918592
Block count:              223647232
Reserved block count:     0
Free blocks:              220119187
Free inodes:              55918581
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      970
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Filesystem created:       Sat May 21 10:35:15 2011
Last mount time:          n/a
Last write time:          Sat May 21 11:21:55 2011
Mount count:              8
Maximum mount count:      20
Last checked:             Sat May 21 10:35:15 2011
Check interval:           15552000 (6 months)
Next check after:         Thu Nov 17 09:35:15 2011
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     28
Desired extra isize:      28
Default directory hash:   half_md4
Directory Hash Seed:      7ba9b270-1cc8-4622-b25c-768497678f99

cat /etc/mke2fs.conf说:

[defaults]
    base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
    blocksize = 4096
    inode_size = 256
    inode_ratio = 16384

[fs_types]
    ext3 = {
        features = has_journal
    }
    ext4 = {
        features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
        inode_size = 256
    }
    ext4dev = {
        features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
        inode_size = 256
        options = test_fs=1
    }
    small = {
        blocksize = 1024
        inode_size = 128
        inode_ratio = 4096
    }
    floppy = {
        blocksize = 1024
        inode_size = 128
        inode_ratio = 8192
    }
    news = {
        inode_ratio = 4096
    }
    largefile = {
        inode_ratio = 1048576
        blocksize = -1
    }
    largefile4 = {
        inode_ratio = 4194304
        blocksize = -1
    }
    hurd = {
         blocksize = 4096
         inode_size = 128
    }

答案1

读完并再读了一些内容后,我得出结论:inode 占用了大量空间。

您可以通过将以下值相乘来使用 tune2fs 输出来确认这一点:

Inode count:              55918592
Inode size:               256

...这确实会给你丢失的13个演出(14 315 159 552)。

在 make2fs.conf 文件中,您可以看到以下默认值:inode_ratio = 16384。将其与 inode 数量相乘可得出完整分区大小 (916 170 211 328),因此这正是它看起来的样子。inode 数量通过以下方式计算partition size / inode_ratio

据我所知,不建议缩小 inode 大小,但其inode_ratio本身会为您提供更大的移动空间。largefile预设为每 1 MByte 创建一个 inode。

我没有走那么远(这个分区上不会存储任何小型操作系统文件,但会存储下载文件,有时还会存储源代码),所以我最终得到了一个经过审核的128000。它不必是 2 的幂,inode 不是 HD 数据的 1-1 镜像(如 FAT16),它们的使用更加动态。

这(当然加上-m 0)只占用了我大分区中的 2GB。这是我可以接受的。

mkfs.ext3 -i 128000 -m 0 /dev/sda4

这给了我 900 万个 inode(这也限制了硬盘上可以存储的文件和目录的最大数量)。但正如我之前所说,不会在其上安装任何操作系统,而且考虑到 Linux 内核源代码包含大约 25,000 个文件,从之前的 5500 万个 inode 到 900 万个 inode 的转变似乎是一个不错的权衡。

免责声明:

必须小心关于设置 inode_ratio,因为您的文件系统将永远承受这个。您不能在不重新格式化分区的情况下将 inode 添加到 (ext2 或 ext3) 分区。

也是不是如果用完了 inode,则可以只缩小分区并在可用空间上创建一个新分区,因为缩小分区会按比例减少 inode,因此您无法在只有几个可用 inode 的情况下执行此操作。

相关内容