fsck vs zvol

O'Connor, Daniel darius at dons.net.au
Wed Jun 12 05:31:43 UTC 2019



> On 12 Jun 2019, at 14:40, Eugene Grosbein <eugen at grosbein.net> wrote:
> 
> 12.06.2019 8:04, O'Connor, Daniel wrote:
> 
>> Hi,
>> I have a small UFS partition that is the sysvol for Samba 4 (otherwise it doesn't work due to ACL issues).
>> 
>> I found that I usually have to manually fsck it on a bad reboot, even if I have fsck_y_enable so I added a hack to /etc/rc.d/fsck to fsck -y that FS before the normal fsck runs.
>> 
>> Logging looks like..
>> 
>> Jun 12 09:45:41 moo kernel: Setting hostuuid: 00000000-0000-0000-0000-ac1f6b01103a.
>> Jun 12 09:45:41 moo kernel: Setting hostid: 0x6cbfec5d.
>> Jun 12 09:45:41 moo kernel: Starting file system checks:
>> Jun 12 09:45:41 moo kernel: Mounting local filesystems:mount: /dev/zvol/zroot/samba4sysvol: R/W mount of /var/db/samba4/sysvol denied. Filesystem is not clean - run fsck.: Operation not permitted
>> Jun 12 09:45:41 moo kernel: Mounting /etc/fstab filesystems failed, will retry after root mount hold release
>> Jun 12 09:45:41 moo kernel: mount: /dev/zvol/zroot/samba4sysvol: R/W mount of /var/db/samba4/sysvol denied. Filesystem is not clean - run fsck.: Operation not permitted
>> Jun 12 09:45:41 moo kernel: .
>> Jun 12 09:45:41 moo kernel: Mounting /etc/fstab filesystems failed, startup aborted
>> Jun 12 09:45:41 moo kernel: ERROR: ABORTING BOOT (sending SIGTERM to parent)!
>> 
>> I'm not sure if marking this FS as 'late' would help (and/or break something else..)
>> 
>> Has anyone else tried something like this?
>> 
>> The Samba 4 ZFS is from https://wiki.freebsd.org/Samba4ZFS (which I wrote..)
> 
> Please show your /etc/fstab line for this UFS-inside-ZVOL and your changes to rc.d/fsck.
> Your logs do not show that fsck is started so I presume some mistake in the /etc/fstab.
> Maybe you forgot that it needs non-zero sixth field.

The fsck line is..
/dev/zvol/zroot/samba4sysvol /var/db/samba4/sysvol ufs       rw,acls 0       0

The diff is just..
--- fsck.orig	2019-06-12 14:43:03.279407000 +0930
+++ fsck	2019-06-12 14:42:51.094142000 +0930
@@ -24,6 +24,10 @@
 		# During fsck ignore SIGQUIT
 		trap : 3

+		echo "Samba FS hack"
+		fsck -y /dev/zvol/zroot/samba4sysvol
+		err=$?
+
 		check_startmsgs && echo "Starting file system checks:"
 		if checkyesno background_fsck; then
 			fsck -F -p

Oh I see for the passno field.. It must be non-zero it fsck won't check it at all!

Today I Learnt... :)

Thanks Eugene!

--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum




More information about the freebsd-stable mailing list