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.

Gypsy Vials

//Verse
I’m a little destructive
my walls are closing in;
I’m beginning to lose perspective,
Is it worth the pain again?

//Verse
How many times must we argue
circular contradictions-
trying to harmonize the dichotomy
of your logic and emotions.

//Chorus 1
This searing pain evokes the rain
that fills the gypsy vials;
This heart of mine – beats in time -
reflecting on these trials.

//Verse
The centerpiece for this ‘game’
comes at a steep price.
Is it worth the pain again
to come in second twice?

//Chorus 1
This searing pain evokes the rain
that fills the gypsy vials;
This heart of mine – beats in time -
reflecting on these trials.

//Chorus 2
This searing pain evokes the rain
that flows from my sorrow
This heart of mine – beats in time -
pumping blood in those gypsy vials.

//Bridge
I just wish you could see
that you don’t have to settle
for anything less than perfect.
But your eyes are blinded
by the veil of illusion
telling you, “You can’t do better.”

//Chorus 1
This searing pain evokes the rain
that fills the gypsy vials;
This heart of mine – beats in time -
reflecting on these trials.

//Chorus 2
This searing pain evokes the rain
that flows from my sorrow
This heart of mine – beats in time -
pumping blood in those gypsy vials.

Copyright(c) 2011. digitalVectorz.

Wiki Tables

So I found the need / desire to place tables side by side in https://wiki.ubuntu.com/BeginnersTeam/FocusGroups/Development/Joining.

I successfully got the tables working how I wanted them, however I noticed a few issues.  The first issue is that the tables aren’t maintained when you break them across lines by the ‘||’ tag.  i.e.

||<tablestyle...>||Something||SomethingElse||

does not parse the same as

||<tablestyle...>
||Something
||SomethingElse

But that’s understandable, given how parsing engines work.. And the only time this becomes a hassle is when you want two or three or even four tables side by side, you have to write them as one large table which tends to take up several lines for one row of tabular data.

But one idea I propose is to create a shortcut for <style=”border:none”>.  Similar to how:  <#000000> is a shortcut for <style=”background:#000000;”>  and how <50%>  is a shortcut for <width:”50%”>  which is a shortcut for <style=”width:50%;”>.

That would make it a little easier and a little clutter than seeing a line such as:

||<style="border:none">||<style="border:none">||<style="border:none">|| dataHere || DataHere ||

And make it something more like:

||<nb>||<nb>||<nb>|| dataHere || DataHere ||

where <nb> = no border.

Another idea would be for the tables to actually be floated next to each other…but in the few attempts I had with the floating, it didn’t seem to work.  So if that does work, then I just may have overlooked something.  Hrm.

Food for thought. Tis all.

Bash/Shell Programming – Binary Operator Expected

So if you ever decide to get into shell scripting, it’s a wonderful world.  Until you run into snags that you once thought you had the hang of.  Let’s take shell conditionals, for example.

So i’m trying to test the output of grep and do something if it returns a result.  After setting it up the usual way:

if [ -n `ls | grep something' ]; then
echo "Something Exists";
fi

But by doing it that way, I kept getting the error:
./scnotify.sh: line 3: [: 2841.c: binary operator expected
which for the life of me I couldn't figure out. Eventually I figured it out though...and all that the error was, was instead of a single '[' and ']‘ wrapping the comparison, it requires a double…i.e.

if [[ -n `ls | grep something` ]]; then
echo "Success";
fi

Hope this saves someone some headache in the future.

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'