Thanks for the very nice repro! I've created a fix which will be going into the maint branch of the e2fsprogs tree. The commit description:
resize2fs: update checksums in the extent tree's relocated block When shrinking an file system, and we need to relocate an inode, the checksums in its extent tree must get updated to reflect its new inode number. When doing this, we need to do this *after* we update the extent tree to reflect any blocks which need to be relocated due to the file system shrink operation. Otherwise, in the case where only an interior node of the extent tree needs to get relocated, and none of the entries in that node need to be adjusted, the checksum for that interior node is updated in the old copy of that block, and then after the extent tree is updated to use the new copy of that interior node, the extent tree is left with an invalid checksum. This is a relatively rare case, since it requires the following conditions to be true: *) The metadata checksum feature must be enabled. *) An inode needs to be relocated. *) The inode needs to have an interior node. *) The block for that interior node needs to be relocated. *) None of blocks addressed by entries in that interior node needs to be relocated. When all of these conditions are true, though, the file system is left with corrupted with bad checksum for the extent tree block. Addresses-Launchpad-Bug: 1798562 Signed-off-by: Theodore Ts'o <ty...@mit.edu> Reported-by: Jean-Baptiste Lallement <jean-baptiste.lallem...@ubuntu.com> I've tested e2fsprogs with this change and it fixes your repro. I also have a regression test in the subsequent commit which reproduces the problem with a smaller test file system. ** Patch added: "resize2fs: update checksums in the extent tree's relocated block" https://bugs.launchpad.net/ubuntu/+source/e2fsprogs/+bug/1798562/+attachment/5203340/+files/0001-resize2fs-update-checksums-in-the-extent-tree-s-relo.patch -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to e2fsprogs in Ubuntu. https://bugs.launchpad.net/bugs/1798562 Title: After a side by side installation, resized filesystem is corrupted Status in e2fsprogs package in Ubuntu: Confirmed Bug description: Test Case 1: With e2fsprogs 1.44.4-2: Download this file system image: https://bugs.launchpad.net/ubuntu/+source/e2fsprogs/+bug/1798562/+attachment/5203159/+files/vda1b.qcow2.bz Run the following commands: bunzip2 vda1b.qcow2.bz qemu-img convert vda1b.qcow2 vda1b.raw e2fsck -f vda1b.raw resize2fs vda1b.raw 6200M e2fsck -f vda1b.raw e2fsck 1.44.4 (18-Aug-2018) Pass 1: Checking inodes, blocks, and sizes Inode 45746 extent block passes checks, but checksum does not match extent (logical block 1272, physical block 466167, len 776) Fix<y>? Test Case 2 (Use case of the installer): 1. Perform a first installation of Ubuntu 2. Reboot into the freshly installed system and verify everything works as expected 3. Do a second installation and select "Install alonogside". Keep the size proposed by the installer and proceed to the end of installation 4. Reboot 5. On boot, in the list of installed systems, select the first system installed on the machine 6. Verify that it boots, you can login and it works as expected Actual Result The FS is corrupted and depending on the corruption it goes to initramfs, boots but cannot login, ... Attached is the journal of the system installed on the corrupted partition. ProblemType: Bug DistroRelease: Ubuntu 18.10 Package: ubiquity (not installed) ProcVersionSignature: Ubuntu 4.18.0-10.11-generic 4.18.12 Uname: Linux 4.18.0-10-generic x86_64 ApportVersion: 2.20.10-0ubuntu13 Architecture: amd64 CurrentDesktop: ubuntu:GNOME Date: Thu Oct 18 10:53:57 2018 InstallCmdLine: BOOT_IMAGE=/casper/vmlinuz file=/cdrom/preseed/ubuntu.seed boot=casper only-ubiquity quiet splash --- InstallationDate: Installed on 2018-10-18 (0 days ago) InstallationMedia: Ubuntu 18.10 "Cosmic Cuttlefish" - Release amd64 (20181017.3) SourcePackage: ubiquity UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/e2fsprogs/+bug/1798562/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp