hpafs
=====

hpafs (Hidden Protected Area FileSystem) is a FUSE (Filesystem in USErspace).

0) status
version 0.1.0, 24 February 2007, alpha (developers only).  

1) author
Paul Bolle <pebolle@tiscali.nl>

2) usage: 
hpafs device mountpoint [FUSE options]

3) basic example:
[root]# hpafs /dev/hda /mnt/hpa -o allow_other
[root]# mount -o loop,ro /mnt/hpa/$PSA /mnt/$FOO
[user]$ ls /mnt/$FOO

4) backup the hpa:
[user]$ OLDIFS="$IFS"
[user]$ IFS=$'\n'
[user]$ for i in $(ls -U1 /mnt/hpa); do cat "/mnt/hpa/$i" >> hpa.img; done
[user]$ IFS="$OLDIFS"

5) further reading
http://www.thinkwiki.org/wiki/Hidden_Protected_Area

6) TODO
- everything!
- clean up hpafs.c
- speed up hpafs.c (it seems to be _slow_ now)
- add hpa-info.c
- add fwbackupfs?

7) userspace block device
It might make more sense to expose the HPA as a userspace block device. See:
http://lkml.org/lkml/2005/11/9/13.

8) device mapper
Even better might be to expose the HPA through a device mapper module? See:
http://lkml.org/lkml/2006/6/8/299.
