将原始映像转换为 LVM。之后不会挂载

将原始映像转换为 LVM。之后不会挂载

根据帖子,它应该没问题,可以用来dd将原始 Xen 映像转换为 LVM。

我做了什么

dd if=/vm.img of=/dev/vg00/vm

我可以用 挂载 vm.img mount -o loop vm.img /root/tmp。它只有一个可启动分区。

但我无法安装/dev/vg00/vm

这和 MBR 有关系吗?

知道可能是什么问题吗?

编辑:

现在我已经创建了一个新的 LV 并格式化了它。但我仍然无法挂载它。

这与我添加图像时遇到的挂载错误相同。

localhost:~# mkfs.ext3 /dev/vg00/oes2
mke2fs 1.39 (29-May-2006)
Warning: could not erase sector 2: Attempt to write block from filesystem resulted in short write
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
2228224 inodes, 4456448 blocks
222822 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
136 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000

Warning: could not read block 0: Attempt to read block from filesystem resulted in short read
Warning: could not erase sector 0: Attempt to write block from filesystem resulted in short write
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: 
Warning, had trouble writing out superblocks.done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
localhost:~# mount /dev/vg00/oes2 tmp-lvm/
mount: you must specify the filesystem type
localhost:~# mount -t ext3 /dev/vg00/oes2 tmp-lvm/
mount: wrong fs type, bad option, bad superblock on /dev/vg00/oes2,
       missing codepage or other error
       In some cases useful info is found in syslog - try
       dmesg | tail  or so

localhost:~# mount -t ext3 /dev/vg00/oes2 tmp-lvm/
localhost:~# fdisk /dev/vg00/oes2

Unable to read /dev/vg00/oes2
localhost:~# 

答案1

警告:无法擦除扇区 2:尝试从文件系统写入块导致短暂写入

这听起来不太好。这很可能意味着一些重要的块没有正确写入磁盘。您应该检查硬盘的 SMART 状态,它可能包含错误。智能工具可用于此目的。如果您使用 Ubuntu,则可以通过系统 > 管理 > 磁盘实用程序启动一个简单的 SMART 实用程序。如果硬盘支持 SMART,您可以执行检查所有扇区的测试。

如果问题不在于硬盘,那么您的 LVM 卷组可能在某种程度上已损坏?!

答案2

问题在于,由于这是一台虚拟机,因此映像中的一个分区现已传输到 LVM。在本地安装 LVM 时,您需要使用偏移量进行安装。

您需要获取磁盘中分区的起始位置。这将打印出您的分区。获取启动分区的起始编号。

parted -s /dev/vg00/oes2 单元 s 打印

例子:
IE:
parted -s /dev/vmstore/kfsnap unit s 打印
模型:Linux 设备映射器(快照)(dm)
磁盘 /dev/dm-11:25165824s
扇区大小(逻辑/物理):512B/4096B
分区表:msdos

编号 起始 结束 大小 类型 文件系统 标志
 1 2048s 25163775s 25161728s 主 ext4 启动

扇区大小为:512,因此我将起始值乘以 512 个扇区。

表达式 512'*'2048
它输出的是:1048576

然后我知道了 lvm 映像内的偏移量,现在可以通过环回安装磁盘。

#mount - o loop,offset=1048576 /dev/vmstore/kfsnap /mnt/snap

以下是第一个分区的一些内容:

parted -s /dev/vg00/oes2 unit s 打印 2>/dev/null | grep " 1 " | tr -d 's' | awk '{print $2}'

相关内容