Montowanie obrazu dysku w formacie Raw

11

Podczas próby zamontowania obrazu dysku w formacie Raw (dd) za pomocą następującego polecenia

mount  nps-2010-emails.dd /media/manu/

Otrzymuję następujący komunikat o błędzie

mount: you must specify the filesystem type

Wiem, że za pomocą -tmożemy określić system plików, ale jaka jest terminologia pliku RAW (dd), który można przekazać jako argument do polecenia mount. Jeśli moja metoda zamontowania tego systemu plików jest nieprawidłowa, pomóż mi zrobić to samo.

$ file -s nps-2010-emails.dd
nps-2010-emails.dd: x86 boot sector; 
partition 1: ID=0xb, starthead 254, startsector 1, 20479 sectors, extended partition table (last)\011, code offset 0x0

$ fdisk -l nps-2010-emails.dd
Disk nps-2010-emails.dd: 10 MB, 10485760 bytes
255 heads, 63 sectors/track, 1 cylinders, total 20480 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

             Device Boot      Start         End      Blocks   Id  System
nps-2010-emails.dd1               1       20479       10239+   b  W95 FAT32 
spaceman_spiff
źródło
Czy możesz dodać wynik polecenia file -s nps-2010-emails.dddo swojego postu?
steeldriver
Spojrzałem na twój profil i zobaczyłem inne pytanie. Być może ten post na blogu może być pomocny.
muru
@steeldriver Wyjście dodane ...
spaceman_spiff
Łatwiejsze opcje montażu - dostępne / opisane tutaj: askubuntu.com/questions/69363/...
Hannu

Odpowiedzi:

16

Od http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/ , sugeruje się użycie offsetu. Najpierw uzyskaj przesunięcie przez, fdisk(8)a następnie określ je z offsetopcją mount. Służy fdiskdo określania początkowego sektora partycji i rozmiaru sektora. Następnie oblicz przesunięcie w bajtach, używając początkowego numeru sektora i wielkości sektora w bajtach. Zobacz Przykład montowania pojedynczej partycji z obrazu całego dysku (urządzenia) . Wreszcie:

mount -o offset=<offset in bytes> nps-2010-emails.dd /media/manu/

Na typowym dysku twardym komórki przechowujące dane są zgrupowane. Grupy są nazywane sektorami. W sposób, w jaki zwykle dzielimy rzeczy na części, kilka pierwszych sektorów jest odkładanych na bok, aby podawać informacje o partycjach, pozostawiając lukę. Więc jeśli mamy obraz całego dysku, sektory te również zostaną uwzględnione. Teraz mountpolecenie nie może rozpocząć się bezpośrednio od pierwszego bajtu, ponieważ partycja nie rozpoczyna się od pierwszego bajtu. Więc będziemy musieli powiedziećmountile bajtów pominąć (aby uniknąć dodatkowych informacji) i dostać się do właściwej partycji. Nazywa się to przesunięciem. Teraz każdy sektor może przechowywać pewną ilość informacji w bajtach, co nazywa się rozmiarem sektora. Bierzemy całkowity rozmiar informacji, które mogą być przechowywane w tej luce, mnożąc rozmiar sektora przez rozmiar luki w liczbie sektorów.

Z danych wyjściowych fdiskwidać, że rozmiar sektora wynosi 512 bajtów i zaczyna się od sektora 1. Zatem przesunięcie wynosi 1 * 512 = 512. Spróbuj wykonać następujące polecenie:

mount -t vfat -o offset=512 ps-2010-emails.dd /media/manu/

Dodałem typ systemu plików, ponieważ fdiskpodałem go jako FAT32. Aby zamontować go również do pisania, użyj -o offset=512,rwzamiast niego.

muru
źródło
Przeczytałem artykuł w pierwszym linku, który opublikowałeś, ale nie rozumiałem wiele na temat offsetu , numeru sektora i innych pojęć, jeśli to możliwe, możesz rozwinąć ten temat lub zamieścić odniesienia do tego samego. Dzięki
spaceman_spiff
Publikacja zaktualizowana o dane wyjściowe fdisk -l nps-2010-emails.dd.
spaceman_spiff
dzięki, mam doświadczenie w informatyce teoretycznej (jestem matematyką), czy jest jakieś odniesienie do zrozumienia tego tematu w uwagach ogólnych?
spaceman_spiff
„Ten” temat to dyski, sektory, systemy plików i tak dalej? Być może mógłbyś zacząć od rozdziału IO / Storage podręcznika systemów operacyjnych, takiego jak Tannenbaum. Poza podstawami i typem montażu FAT32 wszystko, co zamieściłem w odpowiedzi, pochodzi od tholinków.
muru
10

Możesz także ustawić komputer na automatyczne skanowanie wszystkich partycji w zrzucie i automatyczne przygotowywanie wszystkich urządzeń pętlowych, jak opisano tutaj .

Powiedzmy, że zrzuciłeś całą /dev/sdana coś zwanego sda.img. Możesz uzyskać dostęp do jego partycji w następujący sposób:

losetup -f -P sda.img

W moim systemie pokazuje się to następująco:

surowy obraz sda

W środowiskach innych niż GUI możesz wyświetlić listę utworzonych urządzeń losetup -l, które podadzą nazwę urządzenia pętli, na przykład:

# losetup -l
NAME       SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE
/dev/loop0         0      0         0  0 /path/mmcblk0

Następnie możesz zamontować powiedzmy pierwszą partycję za pomocą:

mount /dev/loop0p1 /mnt/mypartition

Mam nadzieję, że to pomaga.

aggregate1166877
źródło
Pracował dla mnie idealnie.
praveen pathak
2
W tym samym wierszu na Ubuntu 18.04 nie miałem problemu z utworzeniem „gparted backup.img” i uzyskaniem listy partycji. „fdisk -l backup.img” pokazuje także przydatne informacje.
RoundSparrow hilltx
1
Jak cofnąć losetuppolecenie?
Flimm
1

Nie można dodać komentarza z powodu braku reputacji, ale chcę powiedzieć tym z was, którzy mają dysk GPT podczas testowania go za pomocą fdisk, zamiast tego użyj gdsik, aby rozpocząć sektor i policzyć odpowiednie przesunięcie. Pomogło mi to.

fdisk -l dałeś mi:

      Device Boot      Start         End      Blocks   Id  System
vm2080737.bak1   *           1        3901    31457279+  ee  GPT

i nie można go zamontować z przesunięciem 512 z błędem „zamontować: należy określić typ systemu plików”

gdisk -l dał mi dobry wynik:

Number  Start (sector)    End (sector)  Size       Code  Name
   1              34             545   256.0 KiB   A501  gpboot
   2             546          993825   485.0 MiB   A502  swap
   3          993826        62914526   29.5 GiB    A503  rootfs
Dziupla
źródło
1
Lub użyj parted.
muru