Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 4 Jul 2010 14:15:30 -0700
From:      Garrett Cooper <yanefbsd@gmail.com>
To:        Dimitry Andric <dimitry@andric.com>
Cc:        FreeBSD Stable <freebsd-stable@freebsd.org>
Subject:   Re: GEOM/bsdlabel regression in 8.x?
Message-ID:  <AANLkTilOEs6UQxh93SBZUP3Y79X_l2R6uyTGFmPfxY3S@mail.gmail.com>
In-Reply-To: <4C30AAA8.7010206@andric.com>
References:  <BC67251C-1621-4291-B0C1-A28CC404E417@gsoft.com.au> <4C309359.8000502@andric.com> <791316F7-6E16-47D7-9B6C-2881FAAC78AA@gsoft.com.au> <4C30AAA8.7010206@andric.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jul 4, 2010 at 8:37 AM, Dimitry Andric <dimitry@andric.com> wrote:
> On 2010-07-04 16:26, Daniel O'Connor wrote:
>>> First unmount /dev/md0s1a, or the device /dev/md0s1 will be in use, and
>>> opening it for read/write (as bsdlabel probably does) will fail.
>>>
>>> Alternatively, you can turn on the "footshooting" debug flag in geom:
> ...
>> It doesn't make a difference if you set that flag or not.
>>
>> (The fact you need to set debugflags to modify the MBR is a separate bug=
 anyway IMO)
>
> On my 8-stable box, I have tried this sequence of commands:
>
> =A0truncate -s 10m /tmp/test
> =A0mdconfig -a -t vnode -f /tmp/test
> =A0mdconfig -a -t vnode -f /tmp/test
> =A0fdisk -BI /dev/md0
> =A0bsdlabel -w /dev/md0s1
> =A0bsdlabel -e /dev/md0s1
> =A0newfs /dev/md0s1a
> =A0mkdir /mnt/test
> =A0mount /dev/md0s1a /mnt/test
> =A0bsdlabel -e /dev/md0s1
>
> The last one indeed fails, because the device is in use. =A0This is
> expected, but the error message is very misleading, and should be
> improved.
>
> The real 'bug' (although there will probably be loads of bikesheds about
> it) is probably that if you *do* unmount the filesystem, bsdlabel still
> fails:
>
> =A0umount /mnt/test
> =A0bsdlabel -e /dev/md0s1
> =A0[class not found yada yada]
>
> Apparently, unmounting does not properly 'release' whatever underlying
> geom device is preventing read/write access. =A0However, if you then set
> the footshooting flag:
>
> =A0sysctl -w kern.geom.debugflags=3D0x10
> =A0bsdlabel -e /dev/md0s1
>
> bsdlabel can write without problems, at least on my box. =A0Stranger
> even, if you subsequently turn off the footshooting flag, it *still*
> can write to the label. =A0That is, unless you mount and unmount the
> filesystem, after which is again, sort of 'locked' against writing.
>
> All highly confusing. :)

<offtopic>

There's a weird ass feature in geom too under 7.x+ that if you have
where if you have a dangerously dedicated disk partitioned like so
that gets mounted, it automatically hides the slicing:

$ dd if=3D/dev/zero of=3Dafile bs=3D10m count=3D5
$ mdconfig -a -t vnode -f afile
md1
$ ls /dev/md1*
/dev/md1
$ sudo fdisk -BIq /dev/md1
$ bsdlabel -w /dev/md1s1
$ bsdlabel -e /dev/md1s1
# /dev/md1s1:
8 partitions:
#        size   offset    fstype   [fsize bsize bps/cpg]
  a:    96311       16    unused        0     0
  c:    96327        0    unused        0     0         # "raw" part, don't=
 edit
# newfs /dev/md1s1
/dev/md1s1: 47.0MB (96324 sectors) block size 16384, fragment size 2048
	using 4 cylinder groups of 11.77MB, 753 blks, 1536 inodes.
super-block backups (for fsck -b #) at:
 160, 24256, 48352, 72448
$ ls /dev/md1*
/dev/md1	/dev/md1s1
$ ls /dev/md1*
/dev/md1	/dev/md1s1	/dev/md1s1a
$ mount /dev/md1s1 /mnt/mem
$ ls /dev/md1*
/dev/md1	/dev/md1s1
$ umount /mnt/mem
$ ls /dev/md1*
/dev/md1	/dev/md1s1	/dev/md1s1a

It's something that someone noticed at my work.

</offtopic>

Thanks,
-Garrett



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