zamontowanie iso obrazu z dd

Ogólne pytania dotyczące systemu
dominbdg
Posty: 33
Rejestracja: 10 listopada 2019, 12:52

zamontowanie iso obrazu z dd

Post autor: dominbdg » 05 maja 2020, 17:40

Witam,
Mam taki problem,
zrobiłem sobie obraz z Raspbian'a na raspberry i teraz nie mogę go w żaden sposób zamontować.
użyłem dd:
dd in=/dev/sda of=/opt/aa.img bs=4K

teraz posiadam obraz aa.img i za pomocą żadnych środków nie mogę go zamontować.
najpierw wyczytałem że
kpartx -a /opt/aa.img
założył mi się loop:

Device Boot Start End Sectors Size Id Type
/dev/loop14p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/loop14p2 532480 124735487 124203008 59.2G 83 Linux

a teraz gdy wydaję mu polecenie montowania:
mount -o loop /dev/loop14p2 /aa

dostaję błąd:
mount: /aa: wrong fs type, bad option, bad superblock on /dev/loop4, missing codepage or helper program, or other error.

Prośba o pomoc bo już mi "ręce opadły"

Awatar użytkownika
dedito
Moderator
Posty: 3140
Rejestracja: 18 listopada 2013, 21:07
Lokalizacja: Gliwice

Re: zamontowanie iso obrazu z dd

Post autor: dedito » 05 maja 2020, 18:12

Kod: Zaznacz cały

mount -o loop,ro /dev/mapper/loop14p2 /mnt/

dominbdg
Posty: 33
Rejestracja: 10 listopada 2019, 12:52

Re: zamontowanie iso obrazu z dd

Post autor: dominbdg » 05 maja 2020, 19:37

problem mam teraz taki, że wyskakuje mi błąd:
mount: /mnt: failed to setup loop device for /dev/mapper/loop14p2.

a jak go sprawdzę poprzez fdisk -l
Device Boot Start End Sectors Size Id Type
/dev/loop14p1 8192 532479 524288 256M c W95 FAT32 (LBA)
/dev/loop14p2 532480 124735487 124203008 59.2G 83 Linux

dodatkowo, sprawa numer 1
wykonałem sobie testowo plik img z innego obrazu - karty sd i na maszynie wirtualnej poszło,
ten obraz był robiony z karty SD 64GB a waży 9GB,
inny obraz to samo co karta, więc podejrzewam, że obraz jest uszkodzony, drugi montuje się poprawnie,
ale nie wiem dlaczego mi się żaden nie montuje na fizycznym systemie.

Awatar użytkownika
Yampress
Administrator
Posty: 6230
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Re: zamontowanie iso obrazu z dd

Post autor: Yampress » 06 maja 2020, 17:26

moduł pętli loop musisz jako root załadować za pomocą polecenia insmod lub modprobe przed próbą montowania obrazu

Kod: Zaznacz cały

[yampress@debian ~]$ su
Hasło: 
[root@debian /home/yampress]# lsmod |grep loop
[root@debian /home/yampress]# modprobe loop
[root@debian /home/yampress]# lsmod |grep loop
loop                   40960  0
[root@debian /home/yampress]# 

dominbdg
Posty: 33
Rejestracja: 10 listopada 2019, 12:52

Re: zamontowanie iso obrazu z dd

Post autor: dominbdg » 07 maja 2020, 22:43

oot@dominik-hp:/opt# modprobe loop
root@dominik-hp:/opt# kpartx -av raspberry.img
add map loop14p1 (253:1): 0 524288 linear 7:14 8192
device-mapper: reload ioctl on loop14p2 failed: Invalid argument
create/reload failed on loop14p2

myślę że on ma coś nie tak z tą partycją p2

Awatar użytkownika
Yampress
Administrator
Posty: 6230
Rejestracja: 09 sierpnia 2007, 21:41
Lokalizacja: PL

Re: zamontowanie iso obrazu z dd

Post autor: Yampress » 08 maja 2020, 12:48

Spróbuj czy montuje się jakiś inny obraz
Czemu nie montujesz tak jak podał dedito przez polecenie mount ?
Może polecenie, które używasz ma mieć inne opcje?

Awatar użytkownika
saturno
Junior Member
Posty: 695
Rejestracja: 08 lipca 2008, 20:04

Re: zamontowanie iso obrazu z dd

Post autor: saturno » 09 maja 2020, 08:42

Program: Dyski >> Podłącz obraz dysku...

Awatar użytkownika
lizard
Beginner
Posty: 276
Rejestracja: 08 lutego 2016, 18:47

Re: zamontowanie iso obrazu z dd

Post autor: lizard » 09 maja 2020, 12:21

Urządzenie zostało utworzone przez partx, co zostało pokazane w pierwszym poście.

Utworzyłem plik o wielkości 1GB, a w nim dwie partycje. Fdisk pokazał dla niego:

Kod: Zaznacz cały

# fdisk -l test.img
Dysk test.img: 1 GiB, bajtów: 1073741824, sektorów: 2097152
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0xc16c4bb3

Urządzenie Rozruch Początek  Koniec Sektory Rozmiar Id Typ
test.img1              2048  206847  204800    100M 83 Linux
test.img2            206848 2097151 1890304    923M 83 Linux
Kpartx pokazało to, co poniżej:

Kod: Zaznacz cały

# kpartx -av test.img
kpartx -av test.img
add map loop0p1 (254:3): 0 204800 linear 7:0 2048
add map loop0p2 (254:4): 0 1890304 linear 7:0 206848
Fdisk też był zgodny:

Kod: Zaznacz cały

# fdisk -l /dev/loop0
Dysk /dev/loop0: 1 GiB, bajtów: 1073741824, sektorów: 2097152
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0xc16c4bb3

Urządzenie   Rozruch Początek  Koniec Sektory Rozmiar Id Typ
/dev/loop0p1             2048  206847  204800    100M 83 Linux
/dev/loop0p2           206848 2097151 1890304    923M 83 Linux
ale:

Kod: Zaznacz cały

$ ls /dev/loop0p*
ls: nie ma dostępu do '/dev/loop0p*': Nie ma takiego pliku ani katalogu
więc:

Kod: Zaznacz cały

$ cat /proc/partitions 
major minor  #blocks  name
[...]
   7        0    1048576 loop0
 254        3     102400 dm-3
 254        4     945152 dm-4
a następnie:

Kod: Zaznacz cały

# mount -v /dev/dm-3 /media/loop0
mount: /dev/mapper/loop0p1 zamontowane pod /media/loop0.
# mount -v /dev/dm-4 /media/loop0
mount: /dev/mapper/loop0p2 zamontowane pod /media/loop0.
Sprawdzamy:

Kod: Zaznacz cały

$ mount | grep loop0p[12]
/dev/mapper/loop0p1 on /media/loop0 type ext2 (rw,relatime)
/dev/mapper/loop0p2 on /media/loop1 type ext2 (rw,relatime)
Dla cierpliwych, którzy doczytali do tego miejsca nagorda-niespodzianka - ogarnięcie montowania partycji wewnątrz obrazu jedną linijką:

mount -o offset=$((pierwszy_sektor_partycji * wielkość_sektora)) test.img /media/loop0.

Kod: Zaznacz cały

# mount -v -o offset=$((206848*512)) test.img /media/loop0
mount: /dev/loop0 zamontowane pod /media/loop0.
$ mount | grep loop0
[...]/test.img on /media/loop0 type ext2 (rw,relatime)
Dlaczego 206848? Odpowiedź:

Kod: Zaznacz cały

# fdisk -l test.img
Dysk test.img: 1 GiB, bajtów: 1073741824, sektorów: 2097152
Jednostki: sektorów, czyli 1 * 512 = 512 bajtów
Rozmiar sektora (logiczny/fizyczny) w bajtach: 512 / 512
Rozmiar we/wy (minimalny/optymalny) w bajtach: 512 / 512
Typ etykiety dysku: dos
Identyfikator dysku: 0xc16c4bb3

Urządzenie Rozruch Początek  Koniec Sektory Rozmiar Id Typ
test.img1              2048  206847  204800    100M 83 Linux
test.img2            206848 2097151 1890304    923M 83 Linux

ODPOWIEDZ