Full disk encryption is usually done using the dm-crypt Device Mapper target, with a nested LVM (Logical Volume Manager) inside. So to reset your password you'll have to
- Unlock/open the crypto container; this is done using
cryptsetup
- Activate the logical volumes;
vgchange is used for this.
Usually you won't need to care about this. Just let the initrd provided by your distribution do the job but tell it not to start /sbin/init but something else — a shell would be good. Simply append init=/bin/sh to your kernel's command line in your boot loader (with GRUB you could press E with the appropriate boot entry selected to edit the entry).
Then your kernel should boot up normally, booting into the initrd which should ask for your passphrase and set up your file-systems but instead of booting the system up drop you into a shell. There you'll have to
- remount
/ read-write: mount -o rw,remount /
- reset your password using
passwd <user> (since you're root you won't get prompted for the old one)
- remount
/ read-only: mount -o ro,remount / (skipping this might confuse your init scripts)
- Start the regular init with
exec /sbin/init (or simply reboot -f).
If this does not work, you'll have to take the approach with greater effort and do it from "outside", a.k.a. booting a Live CD. Usually this should be possible by using the Debian install CD — the tools should be installed, since the installer somehow has to set up encryption which uses the same schema:
Boot a Live CD
Open the encrypted partition by issueing
# cryptsetup luksOpen /dev/<partition> some_name
where <partition> should be your encrypted partitions name (sda2, probably). some_name is just… some name. This will prompt you for the disk's encryption passphrase and create a block device called /dev/mapper/some_name.
Activate the logical volumes. This should usually work by issueing
# vgscan
# vgchange -ay
This will create block device files for every logical volume found in the LVM in /dev/mapper/.
Mount the volume containing your / file system:
# mount /dev/mapper/<vgname>-<lvname> /mnt
where <vgname> and <lvname> are the names of the volume group and the logical volume. This depends on the way distributions set it up, but just have a look into /dev/mapper/, normally names are self-explanatory.
Change your password with passwd <user> accordingly.