У меня есть набор скриптов, которые создают файл qcow2 с grub legacy (0.97) со специальным патчем для загрузки из ext4 и файловой системой ext4 для '/'.
Когда я запускаю эти скрипты на Ubuntu 12.04/14.04, виртуальные машины работают в KVM. Но для Centos 7 grub legacy не загружается из ext4.
«/» создает с помощьюmkfs -t ext4 -L BOOT /dev/mapper/loop0p1
Когда я перемещаю файлы qcow2 из Ubuntu в CentOs, они могут загружаться. Но образы qcow2, созданные в CentOs 7, не могут загружаться в обеих системах.
Когда мы выполняем 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 filetype needs_recovery extend flex_bg sparse_super large_file huge_file 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
}