Bug 1780279

Summary: RFE: Update mke2fs.conf to provide easy method of making RHEL6/7-compatible filesystems
Product: Red Hat Enterprise Linux 8 Reporter: Eric Sandeen <esandeen>
Component: e2fsprogsAssignee: Lukáš Czerner <lczerner>
Status: CLOSED ERRATA QA Contact: Boyang Xue <bxue>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.2CC: lczerner, xzhou
Target Milestone: rcKeywords: FutureFeature
Target Release: 8.2   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: e2fsprogs-1.45.4-3.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-28 17:03:30 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Eric Sandeen 2019-12-05 15:50:50 UTC
A partner is interested in an easy and reliable way to create RHEL6/RHEL7-compatible ext4 filesystems with a RHEL8 OS.

Since mke2fs has a config file (mke2fs.conf) with configurable fs_types that specify features and options, I think it should be possible to add new types which match the RHEL6 and RHEL7 defaults.

(As a side note, we should verify that mounting such a filesystem under RHEL8 does not add any RHEL6- or RHEL7-incompatible on-disk feature flags as part of the mount process.)

Comment 6 Boyang Xue 2020-02-11 12:14:10 UTC
Test approach:
Produce RHEL-6/7 compatible fs respectively on RHEL-8 with fixed e2fsprogs version. Mount them on RHEL-6/7 respectively, and check if all feature flags have been retained.

Test log:

RHEL-8
---
[root@ci-vm-10-0-136-215 temp]# mkfs.ext4 -F -t rhel6_ext4 rhel6_compatible.img                                                                                                             
mke2fs 1.45.4 (23-Sep-2019)
rhel6_compatible.img contains a ext4 file system
        created on Tue Feb 11 06:54:59 2020
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: b8a85aed-ad4c-4507-9be2-0d46d171de58
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

[root@ci-vm-10-0-136-215 temp]# mkfs.ext4 -F -t rhel7_ext4 rhe7_compatible.img 
mke2fs 1.45.4 (23-Sep-2019)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 0295011b-992f-4421-859a-768487f2492b
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

[root@ci-vm-10-0-136-215 temp]# dumpe2fs -h rhel6_compatible.img | grep -F "Filesystem features"
dumpe2fs 1.45.4 (23-Sep-2019)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
[root@ci-vm-10-0-136-215 temp]# dumpe2fs -h rhe7_compatible.img | grep -F "Filesystem features"
dumpe2fs 1.45.4 (23-Sep-2019)
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
---

RHEL-6
---
[root@ci-vm-10-0-137-254 temp]# mount -o loop rhel6_compatible.img /mnt/scratchspace/         
[root@ci-vm-10-0-137-254 temp]# dumpe2fs -h rhel6_compatible.img | grep -F "Filesystem features"
dumpe2fs 1.41.12 (17-May-2010)
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
---

RHEL-7
---
[root@ci-vm-10-0-138-37 temp]# mount -o loop rhe7_compatible.img /mnt/scratchspace/          
[root@ci-vm-10-0-138-37 temp]# dumpe2fs -h rhe7_compatible.img | grep -F "Filesystem features"
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
---

Comment 7 Boyang Xue 2020-02-11 12:17:40 UTC
(In reply to Boyang Xue from comment #6)
> Test approach:
> Produce RHEL-6/7 compatible fs respectively on RHEL-8 with fixed e2fsprogs
> version. Mount them on RHEL-6/7 respectively, and check if all feature flags
> have been retained.
> 
> Test log:
> 
> RHEL-8
> ---
> [root@ci-vm-10-0-136-215 temp]# mkfs.ext4 -F -t rhel6_ext4
> rhel6_compatible.img                                                        
> 
> mke2fs 1.45.4 (23-Sep-2019)
> rhel6_compatible.img contains a ext4 file system
>         created on Tue Feb 11 06:54:59 2020
> Creating filesystem with 262144 4k blocks and 65536 inodes
> Filesystem UUID: b8a85aed-ad4c-4507-9be2-0d46d171de58
> Superblock backups stored on blocks: 
>         32768, 98304, 163840, 229376
> 
> Allocating group tables: done                            
> Writing inode tables: done                            
> Creating journal (8192 blocks): done
> Writing superblocks and filesystem accounting information: done
> 
> This filesystem will be automatically checked every 20 mounts or
> 180 days, whichever comes first.  Use tune2fs -c or -i to override.
> 
> [root@ci-vm-10-0-136-215 temp]# mkfs.ext4 -F -t rhel7_ext4
> rhe7_compatible.img 
> mke2fs 1.45.4 (23-Sep-2019)
> Creating filesystem with 262144 4k blocks and 65536 inodes
> Filesystem UUID: 0295011b-992f-4421-859a-768487f2492b
> Superblock backups stored on blocks: 
>         32768, 98304, 163840, 229376
> 
> Allocating group tables: done                            
> Writing inode tables: done                            
> Creating journal (8192 blocks): done
> Writing superblocks and filesystem accounting information: done
> 
> [root@ci-vm-10-0-136-215 temp]# dumpe2fs -h rhel6_compatible.img | grep -F
> "Filesystem features"
> dumpe2fs 1.45.4 (23-Sep-2019)
> Filesystem features:      has_journal ext_attr resize_inode dir_index
> filetype extent flex_bg sparse_super large_file huge_file uninit_bg
> dir_nlink extra_isize
> [root@ci-vm-10-0-136-215 temp]# dumpe2fs -h rhe7_compatible.img | grep -F
> "Filesystem features"
> dumpe2fs 1.45.4 (23-Sep-2019)
> 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
> ---
> 
> RHEL-6
> ---
> [root@ci-vm-10-0-137-254 temp]# mount -o loop rhel6_compatible.img
> /mnt/scratchspace/         
> [root@ci-vm-10-0-137-254 temp]# dumpe2fs -h rhel6_compatible.img | grep -F
> "Filesystem features"
> dumpe2fs 1.41.12 (17-May-2010)
> 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
> ---
> 
> RHEL-7
> ---
> [root@ci-vm-10-0-138-37 temp]# mount -o loop rhe7_compatible.img
> /mnt/scratchspace/          
> [root@ci-vm-10-0-138-37 temp]# dumpe2fs -h rhe7_compatible.img | grep -F
> "Filesystem features"
> dumpe2fs 1.42.9 (28-Dec-2013)
> Filesystem features:      has_journal ext_attr resize_inode dir_index
> filetype needs_recovery extent 64bit flex_bg sparse_super large_file <<-----

Hi Lukas,

I'm wondering is the added "needs_recovery" flag expected?

Thanks,
Boyang

> huge_file uninit_bg dir_nlink extra_isize
> ---

Comment 12 errata-xmlrpc 2020-04-28 17:03:30 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2020:1913