我有一个逻辑卷,用作虚拟客户操作系统的文件系统。我对客户操作系统的状态很满意,想对其进行备份。我使用创建了一个快照,并lvcreate
尝试安装该快照,以便我可以打包数据进行备份。
真正奇怪的是,我根本无法安装 LVM 快照。
$> mount /dev/guest_images_lvm/cvfunc_vol1_ss /mnt/ops/backup/
mount: you must specify the filesystem type
使用-t
mount 参数我尝试了 ext3 和 ext4 作为文件系统类型,但在每种情况下我都收到以下错误:
mount: wrong fs type, bad option, bad superblock on /dev/mapper/guest_images_lvm-cvfunc_vol1
lvs
以下是快照卷的输出:
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
cvfunc_vol1_ss guest_images_lvm swi-a- 1.00g cvfunc_vol1 0.00
我需要向 mount 提供哪些正确的参数才能挂载 LVM 快照?还有其他方法可以确定快照的文件系统类型吗?不管怎样,我让 RedHat KVM virt-manager GUI 工具创建卷。
编辑 根据要求提供更多信息。
输出lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
cvfunc_vol1 guest_images_lvm owi-a- 20.00g
cvfunc_vol1_ss guest_images_lvm swi-a- 1.00g cvfunc_vol1 0.00
cvfunc_vol2 guest_images_lvm -wi-ao 20.00g
lv_home vg_softrekcvdev0100 -wi-ao 25.68g
lv_root vg_softrekcvdev0100 -wi-ao 32.34g
lv_swap vg_softrekcvdev0100 -wi-ao 9.81g
lvdisplay
相关卷的输出
--- Logical volume ---
LV Name /dev/guest_images_lvm/cvfunc_vol1_ss
VG Name guest_images_lvm
LV UUID YA4m5i-yf7R-hO95-gb0F-iXqQ-PQjU-tXhAp0
LV Write Access read/write
LV snapshot status active destination for /dev/guest_images_lvm/cvfunc_vol1
LV Status available
# open 0
LV Size 20.00 GiB
Current LE 5120
COW-table size 1.00 GiB
COW-table LE 256
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:5
dd
以下评论建议的命令输出:
# dd if=/dev/guest_images_lvm/cvfunc_vol1_ss bs=1024 count=1 | file -
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 1.6909e-05 s, 60.6 MB/s
/dev/stdin: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, boot drive 0x80, 1st sector stage2 0x19041; partition 1: ID=0x83, active, starthead 1, startsector 63, 208782 sectors; partition 2: ID=0x8e, starthead 0, startsector 208845, 41720805 sectors, code offset 0x48
答案1
由于我对 kvm 了解不多,我猜想该分区是一个完整的磁盘映像。如果是这样,您应该会得到一个有意义的分区表,如下所示:
fdisk -l /dev/guest_images_lvm/cvfunc_vol1
如果是这种情况,您需要按照本文建议的方式进行操作:http://www.andremiller.net/content/mounting-hard-disk-image- including-partitions-using-linux
如果它确实只是一个分区,fdisk 会发出如下抱怨:
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xe3a5124c.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
编辑:按照 Andre 的建议使用 -l 选项,以减少未来读者的悲伤。
答案2
逻辑卷中包含什么文件系统?使用 查找dd if=/dev/SOMETHING bs=1024 count=1 | file -
。
逻辑卷是否包含 XFS 文件系统?XFS 文件系统具有唯一标识符,并且 Linux 不会两次挂载“相同”的文件系统,除非您mount -o nouuid
在快照上使用。
答案3
该 LVM 分区已被客户机用作磁盘。它在该磁盘上创建了一个或多个分区。您要做的就是提取这些分区信息并将其提供给主机系统。
最简单的方法是使用losetup
LVM:
losetup /dev/loop0 /dev/guest_images_lvm/cvfunc_vol1_ss
并告诉你的 Linux 内核这些分区:
partx -a /dev/loop0
安装:
mount /dev/loop0 /mnt/vm
再次清理:
umount /mnt/vm
partx -d /dev/loop0p*
losetup -d /dev/loop0
为什么不能直接在 LVM 中添加分区,而需要通过 执行额外步骤losetup
?因为您当然可以在 LVM 上列出分区,而且操作相同:
% sudo losetup -a
/dev/loop0: [0005]:19633989 (/dev/mapper/vg0-mail01--root)
% sudo partx -s /dev/loop0 ; sudo partx -s /dev/vg0/mail01-root
NR START END SECTORS SIZE NAME UUID
1 2048 20969471 20967424 10G
NR START END SECTORS SIZE NAME UUID
1 2048 20969471 20967424 10G
原因是 LVM 由dm
设备管理器进行管理,并且肯定不会有人告诉它分区设置有错误。