From owner-freebsd-geom@FreeBSD.ORG Mon Jan 17 13:18:07 2011 Return-Path: Delivered-To: freebsd-geom@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AE15A106564A for ; Mon, 17 Jan 2011 13:18:07 +0000 (UTC) (envelope-from gcubfg-freebsd-geom@m.gmane.org) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by mx1.freebsd.org (Postfix) with ESMTP id 63CC78FC08 for ; Mon, 17 Jan 2011 13:18:07 +0000 (UTC) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1PeoyC-00077m-PD for freebsd-geom@freebsd.org; Mon, 17 Jan 2011 14:18:04 +0100 Received: from lara.cc.fer.hr ([161.53.72.113]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Jan 2011 14:18:04 +0100 Received: from ivoras by lara.cc.fer.hr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 17 Jan 2011 14:18:04 +0100 X-Injected-Via-Gmane: http://gmane.org/ To: freebsd-geom@freebsd.org From: Ivan Voras Date: Mon, 17 Jan 2011 14:17:53 +0100 Lines: 33 Message-ID: References: <1686083494.20110113182418@serebryakov.spb.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: lara.cc.fer.hr User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.12) Gecko/20101102 Thunderbird/3.1.6 In-Reply-To: <1686083494.20110113182418@serebryakov.spb.ru> X-Enigmail-Version: 1.1.2 Subject: Re: Broken gmirror: why /dev/ufs is empty when geom_mirror is not loaded? X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Jan 2011 13:18:07 -0000 On 13/01/2011 16:24, Lev Serebryakov wrote: > Hello, Freebsd-geom. > > > I have mirrored PARTITION (/dev/ad4s1d + /dev/ad6s1d) with UFS with > label on it. This label is shown in /dev/ufs when geom_mirror is > loaded. > > When geom_mirror is NOT loaded both ad4s1d and ad6s1d are valid, > complete, clean filesystems, but here is no /dev/ufs entries for them, > and kernel can not mount FSes at all. It's because glabel checks file system size information in the UFS and doesn't create the label if it doesn't match. 88 } else if (fs->fs_magic == FS_UFS2_MAGIC && fs->fs_fsize > 0 && 89 pp->mediasize / fs->fs_fsize == fs->fs_size) { 90 /* Valid UFS2. */ 91 } else { It was done to try and prevent exactly the problem you describe - the abuse of nested GEOM devices. In this case, gmirror takes one sector from the device and so the UFS metadata size doesn't match device size if it's looked at from outside gmirror. mount(8) doesn't check this so you can mount the device from outside gmirror. > Is it because two filesystems have the same label? How this > situation should be solved to allow system boot with broken mirror? "Broken mirror" means /dev/mirror/something will still be visible but it will be backed by only one physical device. It does not usually mean "gmirror metadata is broken" because it can trivially be recreated.