在练习挂载硬盘的时候。分区后,创建文件系统时出现了如下报错
mke2fs 1.42.9 (28-Dec-2013) mkfs.ext4: inode_size (128) * inodes_count (0) too big for a filesystem with 0 blocks, specify higher inode_ratio (-i) or lower inode count (-N).
翻译一下:对于一个块数为 0 的文件系统而言,大小过大,请指定更高的 inode_ratio (-i) 或更低的 inode count (-N)。
问了一下gpt:这条错误信息表示你正在尝试创建的文件系统没有任何块,因此无法计算 inode 的数量。你需要确保在创建文件系统时正确指定文件系统的大小,或调整 inode 的数量和比例。
所以我一开始以为是分区太小,不足以成块,导致无法分配inode。或者是inode被分配完了。
但是我继续在分区5上创建文件系统却成功了。说明并不是这两个原因。直接搜索报错信息,发现网上并无直接解决办法。
之后我在fdisk -l时发现
那一列system写着Extended,我gpt了一下:在 fdisk -l
的输出中,出现 "Extended" 分区表示在该分区中可以创建逻辑分区。之后询问,在这个分区上是否可以建立文件系统?这是gpt的回答:在扩展分区本身上不能直接创建文件系统。扩展分区的作用主要是作为容器,用于存放逻辑分区。您需要在扩展分区下创建一个或多个逻辑分区,然后在这些逻辑分区上建立文件系统。
inode号是有限的,这个可以确定,可以通过ls -il或者df -i来查看当前剩余或已用多少inode。
所以我觉得真正的原因是,在使用 fdisk
工具进行分区时,默认情况下,第四个分区的类型通常是 "扩展分区"(类型代码为 5
)。扩展分区允许你在其中创建多个逻辑分区,因为传统的 MBR(主引导记录)分区表仅允许创建最多四个主要分区。而拓展分区可能在系统眼里是不占或者占用很少内存空间的,导致建立不了文件系统,这也可以解释为什么之后在第五分区可以成功建立文件系统。