Date: Mon, 11 Nov 2019 15:18:24 +0200 From: Andriy Gapon <avg@FreeBSD.org> To: Jonathan Anderson <jonathan.anderson@mun.ca> Cc: "freebsd-fs@FreeBSD.org" <freebsd-fs@FreeBSD.org> Subject: Re: Broken ZFS boot on upgrade Message-ID: <cb1a3643-b477-67bf-eddd-b7b21c08b4b9@FreeBSD.org> In-Reply-To: <20191111131021.GC70914@bagstock.jonandchrissy.ca> References: <CAP8WKbJWSHzhFCKijRVxydKEwgD_4NX2gmA-QVEVZPuotFCGvQ@mail.gmail.com> <1cb4895b-c84d-6204-18fa-53eac7195ad6@FreeBSD.org> <20191111131021.GC70914@bagstock.jonandchrissy.ca>
next in thread | previous in thread | raw e-mail | index | archive | help
On 11/11/2019 15:10, Jonathan Anderson wrote: > On 11/11, Andriy Gapon wrote: >> Could it be that you have 2TB+ disk(s) and a relatively old BIOS ? > > The first two vdevs use 1 TiB disks, but the third vdev has 3 TiB disks, so that > sounds like a possible explanation... perhaps the contents of /boot previously > resided on one of the 1 TiB vdevs but the new /boot lives on the new vdev > post-upgrade. Is there a zfs admin command to ask which vdev(s) a file or > directory's blocks reside on? You need to find out the inode number first (ls -i or stat -s). Then you can use zdb -ddddd <zfs dataset> <inum> For example: $ zdb -ddddd rpool/ROOT/20171102 4557 ... 0 L1 0:16e1304000:2000 20000L/2000P F=102 B=26531456/26531456 0 L0 0:2d155d000:20000 20000L/20000P F=1 B=26531456/26531456 20000 L0 0:2d1c91000:20000 20000L/20000P F=1 B=26531456/26531456 40000 L0 0:2d1cb1000:20000 20000L/20000P F=1 B=26531456/26531456 60000 L0 0:129eeef000:20000 20000L/20000P F=1 B=26531456/26531456 80000 L0 0:129f138000:20000 20000L/20000P F=1 B=26531456/26531456 a0000 L0 0:129ef0f000:20000 20000L/20000P F=1 B=26531456/26531456 c0000 L0 0:129f1c3000:20000 20000L/20000P F=1 B=26531456/26531456 e0000 L0 0:129f2c6000:20000 20000L/20000P F=1 B=26531456/26531456 [... lots of ouput ...] 0:129f2c6000:20000 is a block pointer. 0 is a vdev number, typically it's n-th device zpool status output. 129f2c6000 is a hexadecimal offset within a vdev, in bytes. 20000 is a hexadecimal block size. > My BIOS is from 2016, so not "old", but possibly old enough? -- Andriy Gapon
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?cb1a3643-b477-67bf-eddd-b7b21c08b4b9>