我有一些脚本,可以使用 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 添加:
- 期刊特点:journal_64bit
- 文件系统特性: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
}