Date: Mon, 20 Jul 2015 09:56:50 +0200 From: Marc "UBM" Bocklet <ubm@u-boot-man.de> To: freebsd-stable <freebsd-stable@freebsd.org> Subject: Re: problem with geli and LSI controller Message-ID: <20150720095650.869f85a7f04abf5ade364be3@u-boot-man.de> In-Reply-To: <20150719161651.GQ8523@funkthat.com> References: <20150719173432.16bfa3be6d110571cbc8fe2a@gmail.com> <20150719161651.GQ8523@funkthat.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 19 Jul 2015 09:16:51 -0700 John-Mark Gurney <jmg@funkthat.com> wrote: > Marc UBM via freebsd-stable wrote this message on Sun, Jul 19, 2015 at 17:34 +0200: > > a few weeks ago our Highpoint Rocket Raid controller (hptrr) started > > biting the dust (spurious channel resets). We bought a LSI 9201-16i > > (mps) to replace it. Connected to the hptrr were 4 external e-sata > > enclosures, configured in JBOD mode. Together with two disks connected > > to the onboard SATA controller, this formed a geli encrypted raidz-2 > > zpool. > > Just now, I connected the disks to the mps controller. They show > > up fine in dmesg. The problem is, when trying to attach the disks > > formerly connected to the hptrr controller, geli is unable to find the > > metadata on the disks and errors out with: > > > > "geli: Cannot read metadata from /dev/da4: Invalid argument" > > > > gpart show says "gpart: No such geom: da4" > > > > Trying to restore the geli metadata gives: > > "geli: Provider size mismatch: wrong backup file?" > > > > Is it possible that the hptrr controller handled the disks in some > > special way and it's only possible to read them there? > > This sounds like the drives were in raid0 mode, and not raw disk > mode... You might be able to recover the disk w/ geli resize, > assuming only space was added at the end, not at the begining, but > I have never personally tried that myself... I'd recommend trying > on a copy of the drive so you don't loose data if that is possible.. > > You can also try to find the old geli label w/ a command like: > dd if=<disk> bs=1m iseek=<location> count=5 | strings -n 9 -td > > And get current disk size using diskinfo... > > Something like: > #diskinfo /dev/ada0 > /dev/ada0 512 3000592982016 5860533168 4096 0 5814021 16 63 > #dd if=/dev/ada0 iseek=$((3000592982016/1024/1024-1)) bs=1m 2>/dev/null | strings -n 6 -td | grep GEOM:: > 1530880 GEOM::ELI > 1531392 GEOM::LABEL > > You might have to go farther back than 1 MB... > > Good luck... No luck so far, diskinfo gives me: #diskinfo da4 da4 512 2000398934016 3907029168 4096 0 243201 255 63 but #dd if=/dev/da4 iseek=$((2000398934016/1024/1024-1)) bs=1m 2>/dev/null | strings -n 6 -td | grep GEOM:: yields nothing. You mentioned I'd have to seek further back than 1MB, how do I do that (I admit I'm having trouble seeing what the calculation you use for iseek does :) )? Thanks, Marc
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150720095650.869f85a7f04abf5ade364be3>