记一次由于e2fsprog升级引起文件系统挂载失败

现像:

mount -t ext4 /dev/mmcblk0p17 /var/backups

执行时报错EXT4-fs (mmcblk0p17): Couldn't mount because of unsupported optional features (2000);

要如何解决?

首先明确一个问题,文件系统特性仅与软件有关,与是否更换硬件芯片无法!!!!

mke2fs:制作文件系统的工作
dumpe2fs:打印文件系统的工具

tune2fs: 增加或删除文件系统特性(Filesystem Feature)

以上工具均来源于e2fsprog

如下图所示,可以看到,新的图片中在Filesystem Feature一栏增加了metadata_csum_seed,64bit,metadata_csum,large_file。

metadata_csum_seed: 提供对文件系统元数据的校验和保护,增强数据完整性。

64bit: 支持超过 16TB 的文件系统和文件大小,允许文件系统在 64 位寻址空间中使用。

metadata_csum: 对文件系统元数据启用校验和,以检测和防止损坏。

large_file: 支持创建大于 2GB 的文件。

dumpe2fs -h /dev/mmcblk0p17

旧:

新:

首先拿到一个EMMC磁盘,首先是对磁盘进行分区;其次对分区进行格式化并制作文件系统格式,最后将这个分区挂载到linux某个路径下就能访问磁盘空间了。

因此关于文件系统不一样时,仅可能和制作文件系统有关,即mke2fs。

因为通过正常版本与异常版本之间的md5sum可以确定旧图的系统来源于旧的mke2fs。因此只要降级或者清除文件系统不必要的特性或者异常特性即可

解决方案1:

删除metadata_csum_seed特性:tune2fs -O ^feature_name /dev/mmcblk0p17;将feature_name修改为metadata_csum_seed即可。^表示删除,不带这个符号即是增加,如下所示

删除完之后,再mount就会成功

解决方案2:

降级e2fsprog,将e2fsprog降级到之前版本

最后推荐一个命令strings xxx可以打印出改程序所有log语句

/usr/sbin # strings mke2fs | grep features
base_features
default_features
Filesystem features not supported with revision 0 filesystems
Suggestion: Use Linux kernel >= 3.18 for improved stability of the metadata and journal checksum features.
/sys/fs/ext4/features/lazy_itable_init
The resize_inode and meta_bg features are not compatible.
        base_features = sparse_super,large_file,filetype,resize_inode,dir_index,ext_attr
                features = has_journal
                features = has_journal,extent,huge_file,flex_bg,metadata_csum,metadata_csum_seed,64bit,dir_nlink,extra_isize,orphan_file

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值