@@rafcisz
Skoro masz uprawnienia root, to może spróbuj wykonać surowy obraz pamięci wewnętrznej sektor po sektorze poprzez dd(chyba jest w busyboxie) na kartę pamięci. Możesz zrobić nawet w częściach i później scalić na komputerze. Z pełnym surowym obrazem powinien współpracować wspomniany TestDisk (czyli odpalasz w poleceniem testdisk <ścieżka do pliku> i z tym obrazem powinien pracować.
Potrzebujesz na to miejsca tyle co wielka jest ta wewnętrzna pamięć masowa.
df powinien tobie wypisać zamontowane zasoby. Lista powinna mieć kolumny takie jak ścieżka do urządzenia(np. blokowego), wielkości(całkowita, zajęte, wolne) oraz ścieżkę w której są zamontowane.
Z tego powinieneś się dowiedzieć co chcesz zobrazować. Prawdopodobnie też tobie wypisze wielkości podane w domyślnej wielkości bloków (u mnie to jest 1KB). df -B 4096 powinie tobie wypisać w blokach po 4KB.df -h wypisze to samo, ale wielkości powinny być bardziej zrozumiałe(t.j. KB, MB, GB...).
lsblk czy parted mogą okazać się przydatne.
dd służy do kopiowania sektor po sektorze strumieni danych. Należy zachować szczególną ostrożność korzystając z tego programu i przede wszystkim nie pomylić argumentów jakie się podaje. Tak na szybko:
if= => (ang. input file) plik wejściowy(dokładniej jego ścieżka)
of= => (ang. output file) plik wyjściowy
bs= => (ang. block size) wielkość bloku wyrażona w bajtach
count= => ilość bloków do skopiowania
Tu mogę się trochę mylić.
seek= => pomiń ilość bloków na początku wyjścia(to chyba służy do dopisywania do obecnego pliku)
skip= => pomiń ilość bloków na początku wejścia(to chyba służy do przeskakiwania czytania pliku o ileś początkowych bloków)
status= => ustawienie gadatliwości dd. Dostępne opcje to: none -> kompletna cisza z wyjątkiem komunikatów błędów, noxfer -> ignoruje wypisanie końcowych statystyk, progress -> wyświetla cykliczne statystyki transferu.
Do wykonania pracy z dd formułujesz całe polecenie np. dd if=<ścieżka do urządzenia pamięci masowej> of=<ścieżka do pliku>.img bs=4096 count=262144 status=progress. To polecenie powinno skutkować wykonaniem obrazu pierwszego 1GB danych w blokach po 4KB i program powinien cyklicznie wyświetlać statystyki.
Więcej można doczytać z podręcznika dd (są dostępne w internecie jak wyszukasz dd manpage).
Generalnie jeżeli nie pomylisz się przy if= i of=, to nie zrobisz sobie znacznej szkody, a co najpewniej nie zrobisz tego co chciałeś. Tak czy siak dd powinien ładnie posłużyć do zrobienia obrazu, nawet w częściach jeżeli nie masz dosyć pojemnej karty pamięci względem pamięci wbudowanej.
Do zrobienia obrazu polecam posługiwać się 4KB blokami. Zazwyczaj w takich blokach są adresowane pamięci NAND Flash używane do pamięci masowych.
Jeżeli masz jakieś dodatkowe pytania, to pytaj.