最近遇到启动盘格式化为ext4文件系统,syslinux无法启动的问题。查看其官网(https://www.syslinux.org/wiki/index.php?title=Filesystem),指出6.03版本不支持64bit的ext4文件系统,解决版本是在制作ext4文件系统时,关闭64bit选项开关。
mke2fs -O ^64bit /dev/sdb1
官网上提示在6.04版本会修复此问题。找半天没看到有6.04版本。而且6.03版本已经是2014-10-06发布的了,看来已经没有人维护了。
查看配置文件/etc/mke2fs.conf,显示对于ext4文件系统64bit选项是默认打开的状态。
[defaults]
blocksize = 4096
[fs_types]
ext4 = {
features = has_journal,extent,huge_file,flex_bg,metadata_csum,64bit,dir_nlink,extra_isize
inode_size = 256
}
也可通过删除此配置文件中的64bit,禁用64bit。与使用mke2fs的-O选项效果相同。
查看ext4的man文件可知:
64bit Enables the file system to be larger than 2^32 blocks.
64bit选项可使文件系统超过2^32个逻辑块的限制。默认情况下一个逻辑块的大小为4k(4096字节), 2的32次方个块大小为2^44(16T字节大小)。对于启动盘的MBR(Main Boot Record)来说,其最大不支持超过16T字节大小的分区,所以去掉64bit没有影响。