J'essaie d'extraire quelques octets vers la fin d'un disque dur de 1 To. Commençons par regarder vers le début, 0x1000:
% hexdump -n 16 -s 0x1000 -C /dev/sda2
00001000 08 70 b5 7c 20 4c 56 4d 32 20 78 5b 35 41 25 72 |.p.| LVM2 x[5A%r|
Et confirmant avec hexedit, nous voyons que hexdump a bien fonctionné:
00001000 08 70 B5 7C 20 4C 56 4D 32 20 78 5B 35 41 25 72
Maintenant le problème. hexedit montre vers la fin, à l'offset 0xE864544000:
64544000 FC 4E 2B A9 01 00 00 00 00 00 00 00 00 00 00 00
Pourquoi alors hexdump me montre-t-il les données en 0x7FFFFFFF quand je spécifie 0xE864544000 ...
% hexdump -n 16 -s 0xE864544000 -C /dev/sda2
7fffffff 13 29 24 50 54 47 31 00 10 14 80 47 db 46 61 4e |.)$PTG1....G.FaN|
Confirmer 0x7FFFFFFF:
% hexdump -n 16 -s 0x7fffffff -C /dev/sda2
7fffffff 13 29 24 50 54 47 31 00 10 14 80 47 db 46 61 4e |.)$PTG1....G.FaN|
J'ai essayé cela sur un autre Linux et je vois un comportement similaire. Est-ce un bug dans hexdump ou est-ce que je manque quelque chose?
dd if=/dev/bigdisk2 bs=1024M skip=1023 | hexdump ...
ceci : cela va ignorer les 1023 premiers Go du disque, puis sortir le dernier Gig. Bien sûr, un disque TB n’est pas de 1024 Go, ajustez donc le nombre de manière appropriée, il s’agit d’un exemple conceptuel.