Re: fsck -C -p: NO WRITE ACCESS

From: Andriy Gapon <avg_at_FreeBSD.org>
Date: Tue, 15 Feb 2022 06:44:54 UTC
On 15/02/2022 01:17, John-Mark Gurney wrote:
> Andriy Gapon wrote this message on Mon, Feb 07, 2022 at 14:15 +0200:
>> I've got a problem where fsck behaves differently from my expectations.
>> The problem happens with a filesystem on a GELI encrypted ZVOL.
>> The volume has 4K block size and that's the GELI's sector size as well.
>> FreeBSD is stable/13 from mid January.
> 
> Did you put a ffs filesystem that was formatted on a 512 byte sector disk
> onto this geli device?

As far as I can recall, no.  I created it with newsfs on the geli device.

> fsck calculates the sector size via (/sbin/fsck_ffs/setup.c):
> 	dev_bsize = sblock.fs_fsize / fsbtodb(&sblock, 1);
> 
> and fsbtodb:
> ../../sys/ufs/ffs/fs.h:#define	fsbtodb(fs, b)	((daddr_t)(b) << (fs)->fs_fsbtodb)
> 
>> fsize   4096    shift   12      mask    0xfffff000
>> frag    8       shift   3       fsbtodb 3
> 
> fsize / (1 << 3) == 4096 / 8 == 512.
> 
> so, likely updating fsbtodb to be 0 instead of 3 would fix this.  I'm not
> sure how to do this though, as tunefs and fsdb don't seem to have options
> to do this, and likely you'll want to update all the superblocks w/ this
> new value.
> 


-- 
Andriy Gapon