Ich möchte innerhalb eines Perl-Skriptes meinen GPT-Header auslesen:
#!/usr/bin/perl
open(BLOCKDEVICE, "</dev/sda") or die;
# überspringe den protective mbr
seek(BLOCKDEVICE, 512, 0);
# lese und schreibe je 1 Byte des Filehandlers 8 mal in folge
for (my $i = 0; $i < 8; $i++) {
$byte = getc(BLOCKDEVICE);
printf(" %2x", ord($sc));
}
close(BLOCKDEVICE);
print("\n");
liefert:
# perl script.pl
0 0 0 0 0 0 0 0
, was aber eigentlich nicht sein dürfte, denn laut dd und
Wikipedia ist die Signatur meines GPT-Headers völlig in Ordnung:
# dd if=/dev/sda bs=1c skip=512 count=8 2>/dev/null | od -An -tx1
45 46 49 20 50 41 52 54
Hat jemand eine Idee, was ich in dem Perl Skript falsch mache?