Archiwum

Posty oznaczone ‘montowanie’

Montowanie obrazu dysku z partycjami w linuksie

Maj 14th, 2010 1 komentarz

Są sytuacje w których chcemy zrobić pełen obraz dysku, np jako backup wszystkich danych, który łatwo da się przywrócić na inny dysk.

Jeżeli chcemy podejrzeć zawartość tak zrobionego obrazu, lub skopiować dane z niego bez wgrywania go na fizyczny dysk, niemiłym zaskoczeniem może okazać się fakt, że nie podmountujemy obrazu do katalogu za pomocą zwyczajnego mount. Jest na to jednak pewien sposób.

Aby podmontować konkretną partycję z obrazu musimy posiadać widzę w jakim obszarze dysku się ona zaczyna. Wykorzystamy do tego narzędzie parted, które znaleźć można w repozytoriach większości dystrybucji.

Zakładamy, że nasz obraz nazywa się hda.img. Wywołujemy więc parted hda.img w lokalizacji w której znajduje się obraz.

Po uruchomieniu tego polecenia pokaże nam się znak zachęty programu parted.

# parted hda.img
GNU Parted 1.9.0
Using /home/ncichy/hda.img
Welcome to GNU Parted! Type ‘help’ to view a list of commands.
(parted)

CLI programu jest dość intuicyjne, my jednak potrzebujemy tylko jednej jego funkcji. Na początek ustalamy jednostki, na których pracuje program na Bajty.

(parted) unit
Unit?  [B]? B
(parted)

teraz wystarczy wyświetlić tablicę partycji na dysku:

(parted) print
Model:  (file)
Disk /home/ncichy/hda.img: 8069677056B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End          Size         Type     File system  Flags
1      32256B  8069677055B  8069644800B  primary  ext2

(parted)

Obraz na którym pracuję ma akurat jedną partycję ext2.  Nas interesuje pole start. Wartość z niego (bez jednostki B) użyjemy w poleceniu następnym:

# mount -o loop,ro,offset=32256 hda.img /mnt/

Warto zauważyć, że pierwsza partycja zawsze zaczyna się w tym obszarze dysku. W poleceniu podajemy więc jako wartość offset odczytaną z parted liczbę, następnie podajemy plik obrazu (tutaj hda.img) i miejsce montowania tego obrazu.