Dostałem obraz dysku (zwykłe cat /dev/sdX > /tmp/sdX.raw) z zadaniem wyciągniecia danych z partycji. Sprawa wbrew pozorom dość prosta.
W pierwszej kolejności trzeba zbadać strukturę dysku – sprawdzić gdzie zaczynają się kolejne partycje. Idealnie do tego nadaje się parted. Wystarczy przełączyć w tryb wyświetlania rozmiarów w bajtach:
~# parted /tmp/sdX.raw GNU Parted 3.1 Using /tmp/sdX.raw Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit B (parted) print Disk /tmp/sdX.raw: 500107862016B Sector size (logical/physical): 512B/4096B Partition Table: msdos Disk Flags: Number Start End Size File system Name Flags 1 1048576B 200278015B 199229440B fat32 primary boot 2 200278016B 4296015871B 4095737856B linux-swap(v1) primary 3 4296015872B 500107837439B 495811821568B xfs primary
Aby zamontować partycję trzeba do polecenia mount dodać informację gdzie jest początek partycji czyli parametr offset. Przykładowo, aby zamontować trzecią partycję polecenie mount przyjmie następujący wygląd:
mounr -o loop,ro,offset=4296015872 /tmp/sdX.raw /mnt/sdX