Portál AbcLinuxu, 1. května 2025 18:29
Nic víc, než seznam příkazů pro zmiňovaný úkol: připojení obrazu disku, který obsahuje LVM.
Všechno je vykonáváno pod rootem.
Nalezení volného loop zařízení.
losetup -f
Připojení celého obrazu (první volné zařízení bylo /dev/loop0
).
losetup /dev/loop0 disk.img
Prozkoumání, co na disku vlastně je.
fdisk -l /dev/loop0
Disk /dev/loop0: 10.7 GB, 10738466816 bytes 255 heads, 63 sectors/track, 1305 cylinders, total 20973568 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: 0x00064320 Device Boot Start End Blocks Id System /dev/loop0p1 * 63 208844 104391 83 Linux /dev/loop0p2 208845 20964824 10377990 8e Linux LVM
Připojení prvního oddílu: je nutné spočítat offset a použít další volné zařízení (/dev/loop1
). Offset je Start
krát Units
, čili 63*512, což je 32256.
losetup /dev/loop1 -o32256 disk.img
Vlastní přimountování je pak už standardní.
mount /dev/loop1 /mnt/part1
Na dalším je už LVM. Je potřeba najít další volný loopback (/dev/loop2
), spočítat offset a připojit.
losetup /dev/loop2 -o106928640 disk.img
Nyní lze zjistit, co jsme vlastně připojili.
lvm pvscan
PV /dev/loop1 VG VolGroup00 lvm2 [9,88 GiB / 32,00 MiB free] Total: 1 [9,88 GiB] / in use: 1 [9,88 GiB] / in no VG: 0 [0 ]
O něco detailnější informace pak vypíše.
lvm lvs
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert LogVol00 VolGroup00 -wi----- 9,31g LogVol01 VolGroup00 -wi----- 544,00m
Svazek je pak nutné zpřístupnit (available=yes).
lvm vgchange -ay
A nyní je možné ho normálně připojit.
mount /dev/VolGroup00/LogVol00 /mnt/lvm0
Úklid má několik kroků.
1. normální odpojení.
umount /mnt/lvm0 umount /mnt/part1
2. odpojení LVM svazku.
lvm vgchange -an
3. odpojení loopbacku (lze použít losetup -D
pro odpojení všeho).
losetup -d /dev/loop2 losetup -d /dev/loop1 losetup -d /dev/loop0
Ještě obligátní "detaily najdete v manuálových stránkách". Snad jsem nepomotal terminologii, berte to hlavně jako přehled, jak postupovat.
Tiskni
Sdílej:
~ # losetup /dev/loop0 disk.img ~ # kpartx -a /dev/loop0 ~ # ls -lh /dev/mapper/loop0p* brw------- 1 root root 254, 6 6. srp 13.37 /dev/mapper/loop0p1 brw------- 1 root root 254, 7 6. srp 13.37 /dev/mapper/loop0p2Po dokončení práce se pak mapování "oddílů" ukončuje pomocí
~ # kpartx -d /dev/loop0Mně osobně to přijde jednodušší...
Tohle jsem neznal... já jsem to vždycky dělal tak, že jsem dal modulu loop parametr max_part (výchozí hodnota je 0).
# partx -a -n 2 disk.imgpripoji druhou partition z toho image jako loop. Chodi to i bez device-mapperu (ale pochopitelne pokud tam je jeste LVM tak je lepsi kpartx). Dalsi moznosti losetup --partscan (kernel >= 3.2, util-linux >= 2.21), kernel pak udela automaticky /dev/loopNpN devices pro *vsechny* partitions (partx umoznuje vybrat si).
parted /dev/sda "unit B print"A vytvořit loop zařízení a použít offset umí i samotný mount (stejnojmenné volby).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.