NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/50070: fsck OK but mount: incorrect super block
>Number: 50070
>Category: kern
>Synopsis: fsck OK but mount: incorrect super block
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Jul 20 16:00:00 +0000 2015
>Originator: Patrick Welche
>Release: NetBSD 7.99.20
>Organization:
>Environment:
NetBSD-7.99.20/amd64 (today's -current)
>Description:
After updating -current from 7.99.6:
# fsck -f /home
** /dev/rraid2a
** File system is already clean
** Last Mounted on /home
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
771 files, 67335 used, 48451404 free (140 frags, 6056408 blocks, 0.0% fragmentation)
# mount /home
mount_ffs: /dev/raid2a on /home: incorrect super block
ERROR: cylinder group size mismatch: fs_cgsize = 0x4800, fs->fs_cgsize = 0x4000, CGSIZE(fs) = 0x4003
http://mail-index.netbsd.org/current-users/2015/07/20/msg027763.html
file system: /dev/rraid2a
format FFSv1
endian little-endian
magic 11954 time Mon Jul 20 16:51:37 2015
superblock location 8192 id [ 50310125 72060166 ]
cylgrp dynamic inodes 4.4BSD sblock FFSv2 fslevel 4
nbfree 6056408 ndir 337 nifree 12183035 nffree 140
ncg 523 size 49288608 blocks 48518739
bsize 16384 shift 14 mask 0xffffc000
fsize 2048 shift 11 mask 0xfffff800
frag 8 shift 3 fsbtodb 2
bpg 11798 fpg 94384 ipg 23296
minfree 5% optim time maxcontig 4 maxbpg 4096
symlinklen 60 contigsumsize 4
maxfilesize 0x000400400402ffff
nindir 4096 inopb 128
avgfilesize 16384 avgfpdir 64
sblkno 8 cblkno 16 iblkno 24 dblkno 1480
sbsize 2048 cgsize 16384
csaddr 1480 cssize 10240
cgrotor 0 fmod 0 ronly 0 clean 0x02
...
>How-To-Repeat:
>Fix:
From Martin Husemann, we hit the else in src/sys/ufs/ffs/ffs_vfsops.c:
/* Check the size of cylinder groups */
fs_cgsize = ffs_fragroundup(fs, CGSIZE(fs));
if (fs->fs_cgsize != fs_cgsize) {
if (fs->fs_cgsize+1 == CGSIZE(fs)) {
printf("CGSIZE(fs) miscalculated by one - this file "
"system may have been created by\n"
" an old (buggy) userland, see\n"
" http://www.NetBSD.org/"
"docs/ffsv1badsuperblock.html\n");
} else {
printf("ERROR: cylinder group size mismatch: "
"fs_cgsize = 0x%zx, "
"fs->fs_cgsize = 0x%zx, CGSIZE(fs) = 0x%zx\n",
(size_t)fs_cgsize, (size_t)fs->fs_cgsize,
(size_t)CGSIZE(fs));
return 0;
}
}
so treat as another case of ffsv1badsuperblock, and ignore the mismatch.
(Remove return 0;)
This allows mounting to succeed. (Haven't noticed any trouble in /home)
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index