How to mount raw disk dump containing LVM

Jakub Jóźwicki
4 min readOct 3, 2023

It might be a clone of Azure VM :)

root@backup[~] # gdisk image.raw
GPT fdisk (gdisk) version 1.0.3
Partition table scan:
MBR: protective
BSD: not present
APM: not present
GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): p
Disk image.raw: 146800640 sectors, 70.0 GiB
Sector size (logical): 512 bytes
Disk identifier (GUID): E462804D-DF94–4A6B-9B9C-104F4EA414CE
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 134217694
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)
Number Start (sector) End (sector) Size Code Name
1 2048 1026047 500.0 MiB EF00 EFI System Partition
2 1026048 2050047 500.0 MiB 0700
3 2050048 2054143 2.0 MiB EF02
4 2054144 134215679 63.0 GiB 8E00
Command (? for help):
root@backup[~] # losetup -o $((2048*512)) — sizelimit=$((513*1024*1024)) /dev/loop1 image.raw
root@backup[~] # losetup -o $((1026048*512)) — sizelimit=$((513*1024*1024)) /dev/loop2 image.raw
root@backup[~] # root@backup[~] # losetup -o $((2054144*512)) — sizelimit=$((64*1024*1024*1024)) /dev/loop3 image.raw
root@backup[~] # mount /dev/loop1 /mnt/loop1
mount: /mnt/loop1: unknown filesystem type ‘vfat’.
root@backup[~] # mount -t msdos /dev/loop1 /mnt/loop1
root@backup[~] # ls /mnt/loop1
bash efi test2
root@backup[~] # mount /dev/loop2 /mnt/loop2
root@backup[~] # ls /mnt/loop2 #This is /boot
bash initramfs-4.10.01160.99.1.el8.x86_64.img TEST
config-4.10.01160.99.1.el8.x86_64 initramfs-4.10.01160.99.1.el8.x86_64kdump.img vmlinuz-4.10.01160.99.1.el8.x86_64
efi symvers-4.10.01160.99.1.el8.x86_64.gz
grub2 System.map-4.10.01160.99.1.el8.x86_64
root@backup[~] # pvs -a -t — devices /dev/loop3
TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
PV VG Fmt Attr PSize PFree
/dev/loop3 rootvg lvm2 a — <63.02g ❤6.02g
root@backup[~] #
root@backup[~] # lvs -a -t — devices /dev/loop3
TEST MODE: Metadata will NOT be updated and volumes will not be (de)activated.
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
auditlv rootvg -wi — — — — 2.00g
homelv rootvg -wi — — — — 1.00g
optlv rootvg -wi — — — — 2.00g
rootlv rootvg -wi — — — — 2.00g
tmplv rootvg -wi — — — — 2.00g
usrlv rootvg -wi — — — — 10.00g
varlv rootvg -wi — — — — 8.00g

root@backup[~] # vgscan — devices /dev/loop3
Found volume group “rootvg” using metadata type lvm2
root@backup[~] # vgchange -ay rootvg — devices /dev/loop3
7 logical volume(s) in volume group “rootvg” now active

root@backup[~] # stat /dev/rootvg/
auditlv homelv optlv rootlv tmplv usrlv varlv
root@backup[~] # for dev in $(ls /dev/rootvg/); do mkdir -p /mnt/lvm/$dev; mount /dev/rootvg/$dev /mnt/lvm/$dev; done
mount: /mnt/lvm/optlv: mount(2) system call failed: Structure needs cleaning.
root@backup[~] # mount | grep lvm
/dev/mapper/rootvg-auditlv on /mnt/lvm/auditlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-homelv on /mnt/lvm/homelv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-rootlv on /mnt/lvm/rootlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-tmplv on /mnt/lvm/tmplv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-usrlv on /mnt/lvm/usrlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-varlv on /mnt/lvm/varlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
root@backup[~] # xfs_repair /dev/rootvg/optlv
Phase 1 — find and verify superblock…
Phase 2 — using internal log
— zero log
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_repair. If you are unable to mount the filesystem, then use
the -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption — please attempt a mount
of the filesystem before doing this.
root@backup[~] # xfs_repair -L /dev/rootvg/optlv
Phase 1 — find and verify superblock…
Phase 2 — using internal log
— zero log
ALERT: The filesystem has valuable metadata changes in a log which is being
destroyed because the -L option was used.
— scan filesystem freespace and inode maps…
sb_icount 5376, counted 14912
sb_ifree 157, counted 212
sb_fdblocks 395098, counted 254359
— found root inode chunk
Phase 3for each AG…
— scan and clear agi unlinked lists…
— process known inodes and perform inode discovery…
— agno = 0
— agno = 1
— agno = 2
— agno = 3
— process newly discovered inodes…
Phase 4 — check for duplicate blocks…
— setting up duplicate extent list…
— check for inodes claiming duplicate blocks…
— agno = 0
— agno = 1
— agno = 2
— agno = 3
Phase 5 — rebuild AG headers and trees…
reset superblock…
Phase 6 — check inode connectivity…
— resetting contents of realtime bitmap and summary inodes
— traversing filesystem …
— traversal finished …
— moving disconnected inodes to lost+found …
Phase 7 — verify and correct link counts…
Maximum metadata LSN (242:1128) is ahead of log (1:8).
Format log to cycle 245.
done
root@backup[~] #
root@backup[/] # mount -v /dev/rootvg/optlv /mnt/lvm/opt
mount: /dev/mapper/rootvg-optlv mounted on /mnt/lvm/opt.
root@backup[/] # ls /mnt/lvm/opt
rh Google oracle
root@backup[/] # mount | grep lvm
/dev/mapper/rootvg-auditlv on /mnt/lvm/auditlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-homelv on /mnt/lvm/homelv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-rootlv on /mnt/lvm/rootlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-tmplv on /mnt/lvm/tmplv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-usrlv on /mnt/lvm/usrlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-varlv on /mnt/lvm/varlv type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
/dev/mapper/rootvg-optlv on /mnt/lvm/opt type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)
root@backup[/] #

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Jakub Jóźwicki
Jakub Jóźwicki

No responses yet

Write a response