现象
使用新版本的操作系统自带的文件系统格式化工具进行分区格式化以后,在较低的操作系统版本上会有提示,提示如下:
[root@localhost ~]# mount -t ext4 /dev/sdb1 /root/test
mount: 文件系统类型错误、选项错误、/dev/sdb1 上有坏超级块、
缺少代码页或助手程序,或其他错误
有些情况下在 syslog 中可以找到一些有用信息- 请尝试
dmesg | tail 这样的命令看看。
按照提示查看日志发现
Mar 12 01:12:20 localhost kernel: JBD2: Unrecognised features on journal
Mar 12 01:12:20 localhost kernel: EXT4-fs (sdb1): error loading journal
原因分析
造成上述问题的原因是在新的操作系统上使用系统自带的 mkfs.ext4 对文件系统进行了格式化,默认会使用一些新的的特性,这些新的特性在旧的系统上是无法使用的。
比如在 Ubuntu 18.04 上进行使用 mkfs.ext4 进行格式化的磁盘,在 CentOS 7.4 1708 上 是可以正常使用的,在 CentOS 7.0 1406 以及以下版本是就是提示上述错误。
Ubuntu 18.04 的 mkfs 版本是 1.44.1-1 ,CentOS 7.0 1406 的 mkfs 版本是 1.42.9-4。造成了这个差异。CentOS 7.4 1708 的 mkfs 版本是 1.42.9-10 ,Redhat 内部在小版本上新增了这个特性的支持。
解决办法
按照日志提示,Unrecognised features on journal , 不支持 journal 。
那么查看文件系统特性:
#tune2fs -l /dev/sdb1
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file
文件系统含有一个 has_journal 特性,删除这个特性,删除方式如下:
#tune2fs -O ^has_journal /dev/sdb1 // 去除has