操作系统:Ubuntu 18.04 文件系统分区大小:472 TB
已成功创建具有 4KB 块大小的 ext4 文件系统。
当尝试创建具有 1KB 或 2KB 文件系统块大小的相同文件系统时,出现以下错误:
mke2fs 1.44.1 (24-Mar-2018)
Warning: specified blocksize 1024 is less than device physical sectorsize 4096
mkfs.ext4: Size of device (0x763cd7f000 blocks) /dev/md127 too big to create a filesystem using a blocksize of 1024.
有什么办法可以解决这个问题?我需要通过改变 ext4 文件系统块大小来运行性能实验。
答案1
如果您使用较新的 mke2fs,它可以工作:
% mke2fs -t ext4 -b 1024 /tmp/foo.img 472T
mke2fs 1.45.5 (07-Jan-2020)
Creating regular file /tmp/foo.img
Creating filesystem with 506806140928 1k blocks and 3959422976 inodes
Filesystem UUID: 64d8234d-68d8-42a8-9dba-414523184256
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409, 663553,
1024001, 1990657, 2809857, 5120001, 5971969, 17915905, 19668993,
25600001, 53747713, 128000001, 137682945, 161243137, 483729409,
640000001, 963780609, 1451188225, 3200000001, 4353564673, 6746464257,
13060694017, 16000000001, 39182082049, 47225249793, 80000000001,
117546246145, 330576748545, 352638738433, 400000000001
Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: Done
您可能可以通过在 mke2fs 命令中添加 -O 64bit 来使其工作,但自 1.44.x 系列以来已经修复了大量错误,因此我建议更新到最新版本。特别是,如果您想使用在线调整大小,尤其是使用 64 位文件系统,请不要使用带有 Ubuntu LTS 的 resize2fs 版本。您真的真的真的想要 e2fsprogs 1.45.5。请参阅发行说明。
答案2
据我所知,大多数文件系统仅支持每个文件系统有限数量的块。
也就是说,如果您选择的块大小太小,则分区的大小(以块为单位)会变得太大而无法创建文件系统。
如果使用 1K 块,则 472 TiB 的分区等于 501856862208 个块,我猜这超出了限制。但是,如果使用 4096 B 的块,则文件系统的大小将只有 125464215552 个块,这显然仍然有效。
如果您确实需要具有 1K 块的文件系统,则必须将磁盘分成几个较小的分区。
或者,如果您不介意浪费磁盘空间,您可以创建一个只使用部分分区的文件系统。即在分区的开头有一个文件系统,而其余分区则不使用。