Okay, I have it. Thanks to sideways who gave me the last "missing link" in the chain.
Here is what my machine looks like normally:
Code:
[root@cylon ~]# df -mlh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroupAlpha-LogVolCylonRoot
178G 91G 79G 54% /
/dev/sda1 190M 30M 151M 17% /boot
tmpfs 2.0G 76K 2.0G 1% /dev/shm
[root@cylon ~]# ls -l /dev/mapper/
total 0
crw-rw---- 1 root root 10, 63 2009-01-19 18:43 control
brw-rw---- 1 root disk 253, 0 2009-01-19 18:43 VolGroupAlpha-LogVolCylonRoot
brw-rw---- 1 root disk 253, 1 2009-01-19 18:43 VolGroupAlpha-LogVolCylonSwap
Okay, so plug in my external USB drive ...
Code:
[root@cylon ~]# df -mlh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroupAlpha-LogVolCylonRoot
178G 91G 79G 54% /
/dev/sda1 190M 30M 151M 17% /boot
tmpfs 2.0G 76K 2.0G 1% /dev/shm
/dev/sdb1 459G 360G 76G 83% /media/disk
... and here is the disk image I created with dd:
Code:
[root@cylon ~]# ls -l /media/disk/fc9-cylon/fc9-disk.dd
-rw-r--r-- 1 root root 200049647616 2008-11-25 23:03 /media/disk/fc9-cylon/fc9-disk.dd
First: create a loop device. This maps the bits in the file to a block device under /dev/.
Code:
[root@cylon ~]# losetup -f /media/disk/fc9-cylon/fc9-disk.dd
[root@cylon ~]# losetup -a
/dev/loop0: [0811]:1007622 (/media/disk/fc9-cylon/fc9-disk.dd)
Second (thanks Sideways!): read the partition table from the new block device and create device mappings for the partitions:
Code:
[root@cylon ~]# kpartx -a -v /dev/loop0
add map loop0p1 (253:2): 0 401562 linear /dev/loop0 63
add map loop0p2 (253:3): 0 390315240 linear /dev/loop0 401625
[root@cylon ~]# ls -l /dev/mapper
total 0
crw-rw---- 1 root root 10, 63 2009-01-19 18:43 control
brw-rw---- 1 root disk 253, 2 2009-01-19 18:51 loop0p1
brw-rw---- 1 root disk 253, 3 2009-01-19 18:51 loop0p2
brw-rw---- 1 root disk 253, 0 2009-01-19 18:43 VolGroupAlpha-LogVolCylonRoot
brw-rw---- 1 root disk 253, 1 2009-01-19 18:43 VolGroupAlpha-LogVolCylonSwap
LVM will kick in magically and recognize a new physical volume on /dev/mapper/loop0p2 (the 2nd partition on the loop0 device). Apparently "/dev/dm-3" is an alias for the 3rd device mapping in /dev/mapper. If the magic doesn't happen you can trigger it by typing (no quotes) "pvscan".
Code:
[root@cylon ~]# pvdisplay
--- Physical volume ---
PV Name /dev/dm-3
VG Name VolGroupPrimary
PV Size 186.12 GB / not usable 23.61 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 5955
Free PE 1
Allocated PE 5954
PV UUID vBDvjw-qfvA-tgnp-Xajg-KHb2-fPPz-3iGcix
--- Physical volume ---
PV Name /dev/sda2
VG Name VolGroupAlpha
PV Size 186.12 GB / not usable 23.61 MB
Allocatable yes
PE Size (KByte) 32768
Total PE 5955
Free PE 1
Allocated PE 5954
PV UUID G02Ic7-BfPl-71fP-6WZl-PEDB-RmcK-0gxHLe
Now we need to activate the LVM volume group:
Code:
[root@cylon ~]# vgchange -a y
2 logical volume(s) in volume group "VolGroupPrimary" now active
2 logical volume(s) in volume group "VolGroupAlpha" now active
[root@cylon ~]# ls -l /dev/mapper
total 0
crw-rw---- 1 root root 10, 63 2009-01-19 18:43 control
brw-rw---- 1 root disk 253, 2 2009-01-19 18:51 loop0p1
brw-rw---- 1 root disk 253, 3 2009-01-19 18:51 loop0p2
brw-rw---- 1 root disk 253, 0 2009-01-19 18:43 VolGroupAlpha-LogVolCylonRoot
brw-rw---- 1 root disk 253, 1 2009-01-19 18:43 VolGroupAlpha-LogVolCylonSwap
brw-rw---- 1 root disk 253, 4 2009-01-19 18:54 VolGroupPrimary-LogVolRootPartn
brw-rw---- 1 root disk 253, 5 2009-01-19 18:54 VolGroupPrimary-LogVolSwapPartn
Now we are finally ready to mount it!
Code:
[root@cylon ~]# mkdir /mnt/old-disk
[root@cylon ~]# mount /dev/mapper/VolGroupPrimary-LogVolRootPartn /mnt/old-disk/
When you're done, here is how to shut everything down cleanly ...
Code:
[root@cylon ~]# umount /mnt/old-disk
[root@cylon ~]# vgchange -a n VolGroupPrimary
0 logical volume(s) in volume group "VolGroupPrimary" now active
[root@cylon ~]# kpartx -d /dev/loop0
[root@cylon ~]# losetup -d /dev/loop0