Mounting an encrypted hard disk (LUKS)

I found a pretty good link from BIT ENGINE on rescuing data from a LUKS encrypted harddisk.

PROBLEM 1 – lvdisplay / vgchange not recognized

The first issue I ran into while using Ubuntu 9.10 liveCD, was the commands lvdisplay and vgchange were not recognized. So to fix this:

apt-get install lvm2

So now, on my system lvdisplay outputs:
--- Logical volume ---
LV Name /dev/vg_dvz/lv_root
VG Name vg_dvz
...etc...

If you
ls -la /dev/vg_dvz/lv_root

you’ll noticed that it’s linked to
/dev/mapper/vg_dvz-lv_root

PROBLEM 2 – Mounting Issues
While reading it and following it, at this point:

"Mount your filesystem:

mount -t ext4 /dev/volumename/root /mnt”

When trying to mount:
mount -t ext4 /dev/vg_dvz/lv_root /mnt

I kept getting the error:
mount: unknown filesystem type 'crypto_LUKS'

So to overcome that, I just executed the previous command
cryptsetup -v luksOpen /dev/mapper/vg_dvz-lv_root myroot

and entered my LUKS passphrase again…
mount /dev/mapper/myroot
…voila!

Takeaway

I had to apply the luksOpen on the Partition as well as the lv_root…sometimes only opening the partition may not suffice as each logical volume may also say it is of crypto_LUKS filetype.

Hope this saves someone some headache.

Determining WHICH *nix distro is currently used…

–Edit.
Originally, I had run into the issue of trying to determine the *nix distribution – a command that would tell me the distribution and the build and everythign else I wanted to know. After reviewing some of the awesome comments left behind, here’s the updated perl script to determine the distribution (in Perl).

#!/usr/bin/env perl
use strict;
use warnings;

my ( $distro );
$distro = `lsb_release -i -s`;
chomp $distro;

my %installCmd = (
"Fedora" => \&fedora,
"Ubuntu" => \&ubuntu,
);

&test();

sub test {
if ( exists $installCmd{$distro} ) {
$installCmd{$distro}->();
} else {
print "Supported Distributions are: ". join(', ' , keys %installCmd) . ".\n";
exit;
}
}

sub fedora { print "Hello from the Fedora Family!"; }
sub ubuntu { print "Hello from UBUNTU!!!"; }

sqlite, sqlite3, and CPAN equivalents in Ubuntu and Fedora

So I ran into an issue today, while working trying to port a program from Ubuntu to Fedora, involving Sqlite and Sqlite3 and CPAN.

sqlite (2.8)

Ubuntu:    sudo apt-get install sqlite
Fedora:    su -c 'yum install sqlite2'

sqlite3 (3.0+)

Ubuntu:    sudo apt-get install sqlite3
Fedora:    su -c 'yum install sqlite'

CPAN

Ubuntu:    Installed by default
Fedora:    su -c 'yum install perl-CPAN'