首先,安全很重要,所以我想使用合理大小的 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 的情况下执行此操作。