Date: Wed, 8 Sep 2004 06:52:34 -0400 From: Allan Fields <bsd@afields.ca> To: Poul-Henning Kamp <phk@phk.freebsd.dk> Cc: freebsd-geom@freebsd.org Subject: Re: Can't reattach gbde slice [testing] Message-ID: <20040908105234.GJ34157@afields.ca> In-Reply-To: <47899.1094471865@critter.freebsd.dk> References: <20040903214133.144779e2.dot@data.pl> <47899.1094471865@critter.freebsd.dk>
next in thread | previous in thread | raw e-mail | index | archive | help
--OBd5C1Lgu00Gd/Tn Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Sep 06, 2004 at 01:57:45PM +0200, Poul-Henning Kamp wrote: > In message <20040903214133.144779e2.dot@data.pl>, DOT writes: > >On Thu, 2 Sep 2004 16:05:56 -0400 > >Allan Fields <bsd@afields.ca> wrote: > > > >> Can you indicate your number_of_keys parameter you are > >> using in -i? Anyone using anything other than default 4? > > > >In both situations my device was initialized with number_of_keys set > >to 1 (one). >=20 > Another idea: Do you use a detached lock-location file (-L option > to gbde init) ? I've reproduced again (consistently) during tests and can file a PR if you want: - number_of_keys=3D1 - raw slice w/o a disklabel (either in primary or extended) - assume any 5.x so far bench# uname -a FreeBSD bench 5.2-CURRENT FreeBSD 5.2-CURRENT #0: Sun Aug 15 06:26:20 EDT 2= 004 root@bench:/usr/obj/usr/src/sys/GENERIC i386 bench# gbde init /dev/ad0s16 -f/dev/stdin<<-_INIT_ -L /etc/ad0s16.lock number_of_keys=3D1 _INIT_ Enter new passphrase: test Reenter new passphrase: test Wrote key 0 at 2767794688 bench# sh -c "echo $[2767794688/512] 5405849 bench# dd if=3D/dev/ad0s16 skip=3D5405849 bs=3D512 count=3D1|md5 1+0 records in 1+0 records out 512 bytes transfered in 0.002607 secs (196404 bytes/sec) d6b04b35b7c8dc492a8ec1c085a7d3e9 bench# md5 /etc/ad0s16.lock MD5 (/etc/ad0s16.lock) =3D ec2b824243467446bfb13f95b0785b7d bench# gbde attach /dev/ad0s16 -l /etc/ad0s16.lock Enter passphrase: test bench# ls -l /dev/ad0s16* crw-r----- 1 root operator 4, 33 Sep 2 14:22 /dev/ad0s16 crw-r----- 1 root operator 4, 49 Sep 2 14:22 /dev/ad0s16.bde bench# newfs -U /dev/ad0s16.bde bench# mount /dev/ad0s16.bde /testbde bench# cp -RPp /usr /testbde bench# dd if=3D/dev/random of=3D/testbde/filler bench# reboot =2E.. bench# gbde attach /dev/ad0s16 -l /etc/ad0s16.lock Enter passphrase: test bench# ls -l /dev/ad0s16* crw-r----- 1 root operator 4, 33 Sep 2 14:22 /dev/ad0s16 bench# gbde attach /dev/ad0s2d -l /etc/ad0s2d.lock Enter passphrase: test bench# ls -l /dev/ad0s2d* crw-r----- 1 root operator 4, 18 Sep 2 14:22 /dev/ad0s2d crw-r----- 1 root operator 4, 49 Sep 2 14:22 /dev/ad0s2d.bde bench# dd if=3D/dev/ad0s16 skip=3D5405849 bs=3D512 count=3D1|md5 1+0 records in 1+0 records out 512 bytes transfered in 0.000564 secs (907643 bytes/sec) 78b5f14a13c85ae4eac30e5546606abd bench# md5 /etc/ad0s16.lock MD5 (/etc/ad0s16.lock) =3D ec2b824243467446bfb13f95b0785b7d I'm pretty sure I got the passphrase correct. Can you verify my math/methods of hashing the key sector? (If I had zero'd or otherwise wipe out the specified sector w/ dd as above I can stop the bde device from attaching.) > If not, is there any chance the first sector of the gbde partition > has been overwritten ? Check your disklabels etc. Also, if it starts > at the very beginning of the disk, check that nothing slammed a MBR > or similar down there. Doesn't look like this is the problem, though sector zero does change after writing to the device and rebooting. I'll assume this is OK when -L/-l are in use. Haven't done any boundry/offset tests yet though next step for me is to try debugging / determine if number_of_keys=3D4 has similar issues w/ raw partitions. =09 > --=20 > Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 > phk@FreeBSD.ORG | TCP/IP since RFC 956 > FreeBSD committer | BSD since 4.3-tahoe =20 > Never attribute to malice what can adequately be explained by incompetenc= e. Another thing: Given DAG, can we reasonably expect configs such as: ad0s2.bdef da4.bdes1a etc. to work? Valid combos (w/ slice->part constraint) I see: dev--bde-------->part-------fs dev--bde->slice-------------fs dev-------slice------->bde--fs dev-------slice->part-------fs dev------------->part->bde--fs | slice=3D>dos partition, part=3D>disklabel So far my attempts at parsing device specs in C has proved interesting. Thanks, --=20 Allan Fields, AFRSL - http://afields.ca 2D4F 6806 D307 0889 6125 C31D F745 0D72 39B4 5541 --OBd5C1Lgu00Gd/Tn Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.1 (FreeBSD) iD8DBQFBPuRx90UNcjm0VUERAiN+AJoCgQq1oH8OVBrf5Tzti69H9M/3jwCfTpw9 g8G8w1a0CD1s0DlPYnEAaQw= =kJ3t -----END PGP SIGNATURE----- --OBd5C1Lgu00Gd/Tn--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040908105234.GJ34157>