On 2009-11-14, at 14:00, Christian Kujau wrote:
when trying to convert an ext3 filesystem to ext4, I'm getting these
"Group descriptor 0 checksum is invalid" messages. I've seen them
before
and the net is full of them, but I still wonder if they're expected to
show up at all during the filesystem's first fsck. See below for the
script log.
Yes, this is because enabling the uninit_bg feature on the filesystem
also
requires that the group descriptor checksums are used. This is the
reason
why it asks you to run e2fsck on the filesystem.
It isn't safe to just have tune2fs initialize the unused inode count
based
on the inode bitmap and then compute the checksums when the uninit_bg
feature, since tune2fs can't know for sure know which inodes are in use
without a full e2fsck run.
I suppose it would be possible to just set the bg_itable_unused = 0 and
then compute the checksum at tune2fs, and the next time the e2fsck is
run it will initialize bg_itable_unused to the right value. It is a bit
sub-optimal, but not harmful and it avoids the need to run a full
e2fsck.
sid:~# cat /proc/version
Linux version 2.6.32-rc7 (dummy@sid) (gcc version 4.4.2 (Debian
4.4.2-2) ) #1 SMP Sat Nov 14 22:00:51 CET 2009
sid:~# mkfs.ext3 -q /dev/xvdc
sid:~# mount -t ext3 /dev/xvdc /mnt/d2
sid:~# grep /dev/xvdc /proc/mounts
/dev/xvdc /mnt/d2 ext3 rw,relatime,errors=continue,data=writeback 0 0
sid:~# df -h /dev/xvdc
Filesystem Size Used Avail Use% Mounted on
/dev/xvdc 16G 173M 15G 2% /mnt/d2
sid:~# umount /dev/xvdc
sid:~# tune2fs -O extents,uninit_bg /dev/xvdc
tune2fs 1.41.9 (22-Aug-2009)
Please run e2fsck on the filesystem.
sid:~# tune2fs -l /dev/xvdc | grep -i feat
Filesystem features: has_journal ext_attr resize_inode
dir_index filetype extent sparse_super large_file uninit_bg
sid:~# e2fsck -fpDC0 /dev/xvdc
/dev/xvdc: One or more block group descriptor checksums are
invalid. FIXED.
/dev/xvdc: Group descriptor 0 checksum is invalid.
/dev/xvdc: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)
sid:~# e2fsck -fDC0 /dev/xvdc
e2fsck 1.41.9 (22-Aug-2009)
One or more block group descriptor checksums are invalid. Fix<y>? yes
Group descriptor 0 checksum is invalid. FIXED.
Group descriptor 1 checksum is invalid. FIXED.
[...]
Group descriptor 126 checksum is invalid. FIXED.
Group descriptor 127 checksum is invalid. FIXED.
Pass 1: Checking inodes, blocks, and sizes
/dev/xvdc: | [...]
Pass 3: Checking directory connectivity
Pass 3A: Optimizing directories
Rebuilding directory: |================ / 50.0% [...]
Pass 5: Checking group summary information
/dev/xvdc: |
========================================================| 100.0%
/dev/xvdc: ***** FILE SYSTEM WAS MODIFIED *****
/dev/xvdc: 11/1048576 files (0.0% non-contiguous), 109874/4194304
blocks
sid:~#
sid:~# e2fsck -fC0 /dev/xvdc
/dev/xvdc: | [...]
/dev/xvdc: 11/1048576 files (0.0% non-contiguous), 109874/4194304
blocks
--
BOFH excuse #389:
/dev/clue was linked to /dev/null
--
To unsubscribe from this list: send the line "unsubscribe linux-
ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Cheers, Andreas
--
Andreas Dilger
Sr. Staff Engineer, Lustre Group
Sun Microsystems of Canada, Inc.
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html