Vinny wrote:
Hello Everyone,
I've been reading up on geli and decided I wanted to
use data authentication. This involves the -a switch
on the geli init command. Here's what I've found:
===== No authentication (the disk size is correct @ 152G):
the/root{143}~# geli init da1
Enter new passphrase:
Reenter new passphrase:
the/root{144}~# geli attach da1
Enter passphrase:
the/root{147}~# newfs -N /dev/da1.eli
/dev/da1.eli: 152627.8MB (312581804 sectors) block size 16384, fragment
size 2048
using 831 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, ...
the/root{148}~# newfs /dev/da1.eli
/dev/da1.eli: 152627.8MB (312581804 sectors) block size 16384, fragment
size 2048
using 831 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, 1129216, ...
===== With hmac/sha256 (or any other) authentication
(small disk size 76G) :
the/root{156}~# geli init -a hmac/sha256 /dev/da1
Enter new passphrase:
Reenter new passphrase:
the/root{157}~#
the/root{157}~# geli attach da1
Enter passphrase:
the/root{159}~# newfs -N /dev/da1.eli
/dev/da1.eli: 76313.9MB (156290900 sectors) block size 16384, fragment
size 2048
using 416 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
160, 376512, 752864, ...
the/root{163}~# newfs /dev/da1.eli
/dev/da1.eli: 76313.9MB (156290900 sectors) block size 16384, fragment
size 2048
using 416 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
newfs: can't read old UFS1 superblock: read error from block device:
Invalid argument
the/root{110}~# geli dump -v da1
Metadata on da1:
magic: GEOM::ELI
version: 3
flags: 0x10
ealgo: AES-CBC
keylen: 128
aalgo: HMAC/SHA256
provsize: 160041885696
sectorsize: 512
keys: 0x01
iterations: 67988
Salt: c708
=====
Anyone know what I've done wrong? Is data authentication working?
Thanks!
Vinny
The eventual solution came from Richard Farr. A few messages
later and here are the results:
I Wrote;
> Hello Richard and Thanks! Sorry for my late reply.
>
> Richard Farr wrote:
>> Hi Vinny,
>>
>> I had this problem as well when trying to initialize a disk with GELI
>> and create slices/partitions/fs.
>>
>> I believe the problem is caused because the sectors of the newly
>> created GELI device still have whatever data was in them from before
>> the "geli init" command. Therefore, this data will not have the
>> correct mac inside of the sector. It looks like newfs attempts to
>> read from some of these unitialized sectors - causing a mac
>> verification failure and a read error. In order to fix this, simply
>> attach the geli device and then use dd to write to all sectors of the
>> device to update them with a correct mac:
>>
>> dd if=/dev/random of=/dev/da1.eli bs=8M
>>
>> Once this is done newfs should work like a charm.
> Indeed, the results follow, but I'd like to thank you
> for the solution. I had habitually used dd on
> the raw device before running geli init. That is,
>
> dd if=/dev/random of=/dev/da2 bs=1m
>
> Then I'd init it. Didn't occur to me that doing
> that on the da2.eli device would solve the newfs
> problem.
>
> The results:
>
> the/root{120}~# geli init -a hmac/sha256 /dev/da2
> Enter new passphrase:
> Reenter new passphrase:
> the/root{121}~# geli attach da2
> Enter passphrase:
>
> the/root{122}~# newfs -N /dev/da2.eli
> /dev/da2.eli: 977.0MB (2000876 sectors) block size 16384, fragment
size 2048
> using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
> super-block backups (for fsck -b #) at:
> 160, 376512, 752864, 1129216, 1505568, 1881920
>
> the/root{123}~# newfs /dev/da2.eli
> /dev/da2.eli: 977.0MB (2000876 sectors) block size 16384, fragment
size 2048
> using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
> newfs: can't read old UFS1 superblock: read error from block device:
> Invalid argument
>
>
>
> the/root{124}~# dd if=/dev/random of=/dev/da2.eli bs=1m
> load: 1.15 cmd: dd 96350 [physwr] 0.00u 30.56s 9% 1668k
> 747+0 records in
> 746+0 records out
> 782237696 bytes transferred in 322.992946 secs (2421841 bytes/sec)
> dd: /dev/da2.eli: short write on character device
> dd: /dev/da2.eli: end of device
> 977+0 records in
> 976+1 records out
> 1024450048 bytes transferred in 422.242968 secs (2426210 bytes/sec)
>
>
> the/root{125}~# newfs -N /dev/da2.eli
> /dev/da2.eli: 977.0MB (2000876 sectors) block size 16384, fragment
size 2048
> using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
> super-block backups (for fsck -b #) at:
> 160, 376512, 752864, 1129216, 1505568, 1881920
>
> the/root{126}~# newfs /dev/da2.eli
> /dev/da2.eli: 977.0MB (2000876 sectors) block size 16384, fragment
size 2048
> using 6 cylinder groups of 183.77MB, 11761 blks, 23552 inodes.
> super-block backups (for fsck -b #) at:
> 160, 376512, 752864, 1129216, 1505568, 1881920
>
> Success!
>
> Vinny
_______________________________________________
freebsd-questions@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"