Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Feb 2022 15:17:58 -0800
From:      John-Mark Gurney <jmg@funkthat.com>
To:        Andriy Gapon <avg@FreeBSD.org>
Cc:        freebsd-stable List <stable@FreeBSD.org>, freebsd-fs <fs@FreeBSD.org>, "freebsd-geom@FreeBSD.org" <geom@freebsd.org>
Subject:   Re: fsck -C -p: NO WRITE ACCESS
Message-ID:  <20220214231758.GD97875@funkthat.com>
In-Reply-To: <346d021f-b737-f41a-883f-e821389c4431@FreeBSD.org>
References:  <346d021f-b737-f41a-883f-e821389c4431@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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?

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.

-- 
  John-Mark Gurney				Voice: +1 415 225 5579

     "All that I will do, has been done, All that I have, has not."



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20220214231758.GD97875>