如何避免在不同 Linux 发行版上创建 ext4 分区时使用的选项存在差异?

如何避免在不同 Linux 发行版上创建 ext4 分区时使用的选项存在差异?

我有一些脚本,可以使用 grub 旧版(0.97)创建 qcow2 文件,并带有特殊补丁以从 ext4 和 ext4 文件系统启动“/”。

当我在 Ubuntu 12.04/14.04 上运行这些脚本时,虚拟机在 KVM 中运行。但对于 Centos 7,grub 遗留版本不会从 ext4 加载。

'/' 正在创建mkfs -t ext4 -L BOOT /dev/mapper/loop0p1

当我将 qcow2 文件从 Ubuntu 移动到 CentOs 时,它们可以启动。但是在 CentOs 7 上创建的 qcow2 映像无法在这两个系统上启动。

当我们执行mkfs -t ext4 -L BOOT 时:

Ubuntu KVM 主机 12/14,dumpe2fs 显示:

Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Journal features: journal_incompat_revoke

CentOs 7 KVM 主机,dumpe2fs 显示: 当我们执行mkfs -t ext4 -L BOOT 时:

Ubuntu KVM 主机 12/14,dumpe2fs 显示: 文件系统功能:has_journal ext_attr resize_inode dir_index 文件类型 need_recovery 范围 flex_bg稀疏_超级大_文件巨大_文件 uninit_bg dir_nlink extra_isize 日志功能:journal_incompat_revoke

CentOs 7 KVM主机,dumpe2fs显示:

Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Journal features: journal_incompat_revoke journal_64bit

所以 mkfs.ext4 添加:

  1. 期刊特点:journal_64bit
  2. 文件系统特性:64位

如何避免这种情况?

问候。

答案1

人 mkfs.ext4

新创建的文件系统的参数默认值(如果没有被下面列出的选项覆盖)由 /etc/mke2fs.conf 配置文件控制。

Ubuntu 主机,cat /etc/mke2fs.conf

[defaults]
        base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
        default_mntopts = acl,user_xattr
        enable_periodic_fsck = 0
        blocksize = 4096
        inode_size = 256
        inode_ratio = 16384

[fs_types]
        ext4 = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                auto_64-bit_support = 1
                inode_size = 256
        }
        ext4dev = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                inode_size = 256
                options = test_fs=1
        }

CentOs 7 主机,cat /etc/mke2fs.conf:

[defaults]
        base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
        default_mntopts = acl,user_xattr
        enable_periodic_fsck = 0
        blocksize = 4096
        inode_size = 256
        inode_ratio = 16384
[fs_types]
        ext4 = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize,64bit
                inode_size = 256
        }
        ext4dev = {
                features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
                inode_size = 256
                options = test_fs=1
        }

相关内容