Üdv!
Nem akarok láma kérdéseket feltenni, de már öregszek.
Egy komplett(!) hdd lett dd-vel image-be lementve. (if=/dev/hda)
Eddig ok. De azon a hdd-n több partició is van.
Na azokat hogy kell mountolni, particiónként ?
Tilla
- 2351 megtekintés
Hozzászólások
lasd: `man mount`, "the loop device", offset opcio. az `fdisk` progival meg ki tudod irattatni az offset-eket magukat (/sbin/fdisk -l /ide/mentetted/a/hda.t)
- A hozzászóláshoz be kell jelentkezni
én nem szenvednék az offsetekkel, hanem
losetup /ide/mentetted/a/hda.t
aztán már fdisk -l /dev/loop0
és már lehet is mountolni ami kell
- A hozzászóláshoz be kell jelentkezni
hat ez azert nem ilyen egyszeru
- A hozzászóláshoz be kell jelentkezni
nem, ennel joval egyszerubb :-P
apt-get install kpartx
kpartx -a ddfile
mindezekutan a /dev/mapper alatt talalod azokat az eszkozfajlokat amin keresztul elerheted a particioidat (pl loop0p1)
amikor mar nincs szukseg a dologra akkor:
kpartx -d ddfile
- A hozzászóláshoz be kell jelentkezni
Üdv
losetup /ide/mentett/cucc.img :
loop: nem kaphatók információk a(z) cucc.img eszközről: Oda nem illő ioctl az eszközön
Tilla
- A hozzászóláshoz be kell jelentkezni
Upsz tényleg nem olyan egyszerű, bár kpartx tényleg egyszerűvé tenné csak nekem nem akarja létrehozni az eszközt a mapper alatt...
Aztán olvastam:
map partitions from whole disk image in file
losetup /dev/loop0 file
kpartx -a /dev/loop0
and partitions are accessible in /dev/mapper/loop0p1,p2,...
és működik:
xen:/tmp/a# dd if=/dev/zero of=./a.img bs=1M count=1 seek=100
1+0 beolvasott rekord
1+0 kiírt rekord
1048576 bájt (1,0 MB) másolva, 0,00392722 mp, 267 MB/mp
xen:/tmp/a# losetup /dev/loop0 ./a.img
xen:/tmp/a# fdisk -l /dev/loop0
/dev/loop0 lemez: 105 MB, 105906176) bájt
255 fej, 63 szektor, 12 cilinder
Egység: cilinderek 16065 * 512 = 8225280 bájt
Lemezazonosító: 0x00000000
A(z) /dev/loop0 lemez nem tartalmaz érvényes partíciós táblát
xen:/tmp/a#
xen:/tmp/a# cat ./a.MBR
# /dev/loop0 partíciós táblája
unit: sectors
/dev/loop0p1 : start= 63, size= 160587, Id=83, bootable
/dev/loop0p2 : start= 160650, size= 32130, Id=82
/dev/loop0p3 : start= 0, size= 0, Id= 0
/dev/loop0p4 : start= 0, size= 0, Id= 0
xen:/tmp/a#
xen:/tmp/a# sfdisk /dev/loop0 < ./a.MBR
Ellenőrzésre kerül, hogy pillanatnyilag senki sem használja a lemezt...
BLKRRPART: Érvénytelen paraméter
Rendben
/dev/loop0 lemez: nem kérhető le a geometria
/dev/loop0 lemez: 12 cilinder, 255 fej, 63 szektor sávonként
Régi helyzet:
Egység = 8225280 bájtos cilinderek, 1024 bájtos blokkok, kezdősorszám: 0
Eszköz Indítás Kezdet Vége #cill #blokk Az Rendszer
/dev/loop0p1 * 0+ 9 10- 80293+ 83 Linux
/dev/loop0p2 10 11 2 16065 82 Linux lapozó / Solaris
/dev/loop0p3 0 - 0 0 0 Üres
/dev/loop0p4 0 - 0 0 0 Üres
Új helyzet:
Egység = 512 bájtos szektorok, kezdősorszám: 0
Eszköz Indítás Kezdet Vége #szektor Az Rendszer
/dev/loop0p1 * 63 160649 160587 83 Linux
/dev/loop0p2 160650 192779 32130 82 Linux lapozó / Solaris
/dev/loop0p3 0 - 0 0 Üres
/dev/loop0p4 0 - 0 0 Üres
Az új partíciós tábla sikeresen kiírva
A partíciós tábla újraolvasása ...
BLKRRPART: Érvénytelen paraméter
Ha DOS partíciót hozott létre vagy módosított, például: /dev/foo7, akkor
használja a dd(1) parancsot az első 512 bájt kinullázáshoz:
dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(Nézze meg az fdisk(8) kézikönyvoldalt)
xen:/tmp/a#
xen:/tmp/a# losetup /dev/loop0 ./a.img
xen:/tmp/a# kpartx -a /dev/loop0
xen:/tmp/a# ls -la /dev/mapper/
control loop0p1 loop0p2
xen:/tmp/a#
xen:/tmp/a# mke2fs -j /dev/mapper/loop0p1
mke2fs 1.41.3 (12-Oct-2008)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
20080 inodes, 80292 blocks
4014 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
10 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 28 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
xen:/tmp/a#
xen:/tmp/a# mount /dev/mapper/loop0p1 ./p1
xen:/tmp/a# ls -la ./p1
összesen 17
drwxr-xr-x 3 root root 1024 márc 9 03.20 .
drwxr-xr-x 4 root root 4096 márc 9 03.19 ..
drwx------ 2 root root 12288 márc 9 03.20 lost+found
xen:/tmp/a#
xen:/tmp/a# umount ./p1
xen:/tmp/a# kpartx -d /dev/loop0
xen:/tmp/a# losetup -d /dev/loop0
xen:/tmp/a#
- A hozzászóláshoz be kell jelentkezni
nalam nem kellett a losetup, mukodott direktben a fajlbol is (megcsinalta a losetupot a kpartx) - lasd a vasarnap esti hozzaszolasomat
- A hozzászóláshoz be kell jelentkezni
jah tényleg, tökegyszerű így!
thx
- A hozzászóláshoz be kell jelentkezni
Ezzel az offsetezéssel az az icipici bibi, hogy az elejét megadod, de a végét nem. Tehát korrupt fájlrendszer esetén elképzelhető, hogy túlír a partíció végén, bele a következő partícióba, ami rendes /dev/hdaN-et csatolva nem történhet meg.
Valszeg sorx lenti megoldása a teljesen korrekt, azt eddig nem ismertem, de úgy fest, hogy valami vadiúj kernel feature-t használ, ami pont erről szól. (Ja, és a linkelt komment 2.6.26-ot akart említeni 2.2.26 helyett, ha jól sejtem. Tippem szerint util-linux-ból is viszonylag friss verzió szükségeltetik.)
- A hozzászóláshoz be kell jelentkezni
Egy másik lehetőség:
1) leállítod a működő loop eszközöket, ha vannak
2) rmmod loop
3) modprobe loop max_part=63
4) losetup -f disk.img
Ha a max_part=63 opcióval rántod be a loop modult, akkor az losetup kiadásakor létrejönek a partícióknak megfelelő eszközök /dev/loop0p1 -től /dev/loop0p4 -ig, vagy amennyi partíciót talált a disk image-ben a loop modul.
5) mount /dev/loop0p1 dir1
Forrás itt. Keresd a kommentek végén.
---Sorx
- A hozzászóláshoz be kell jelentkezni
Üdv
Ez a nyerő!
Köszönöm!
Tilla
- A hozzászóláshoz be kell jelentkezni