根据这篇文章,它应该没问题,使用dd
转换一个原始的Xen映像到LVM。
我做了什么
dd if=/vm.img of=/dev/vg00/vm
我可以用mount -o loop vm.img /root/tmp
挂载vm.img。 它只有一个可引导的分区。
但我无法挂载/dev/vg00/vm
。
它可以有什么与MBR?
任何想法可能是错的?
编辑:
现在我已经创build了一个新的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:~#
警告:无法擦除扇区2:尝试从文件系统写入数据块导致写入较短
这听起来不太好。 这很可能意味着一些重要的块没有正确写入磁盘。 您应该检查硬盘的SMART状态,可能包含错误。 Smartmontools可用于此目的。 如果使用Ubuntu,则可以使用“系统”>“pipe理”>“磁盘工具”启动简单的SMART实用程序。 如果硬盘支持SMART,则可以执行检查所有扇区的testing。
如果硬盘不是问题,您的LVM卷组可能会以某种方式损坏?!
问题是,因为这是一个虚拟机,现在映像中有一个分区被转移到了LVM。 在本地安装LVM时,需要使用偏移量进行安装。
您需要在磁盘中获取分区的开始。 这将打印出你的分区。 采取启动分区的开始#
parted -s / dev / vg00 / oes2单元的打印 例: 即: 分割-s / dev / vmstore / kfsnap单元的打印 型号:Linux设备映射程序(快照)(dm) Disk / dev / dm-11:25165824s 扇区大小(逻辑/物理):512B / 4096B 分区表:msdos 数字开始最终大小types文件系统标志 1 2048s 25163775s 25161728s主ext4启动 扇区大小是:512,所以我再乘以512个扇区。 expr 512'*'2048 它吐出这个:1048576
然后我知道lvm映像中的偏移量,现在可以通过环回来挂载磁盘。
#mount - o loop,offset=1048576 /dev/vmstore/kfsnap /mnt/snap
以下是第一个分区的一行:
parted -s / dev / vg00 / oes2 unit s print 2> / dev / null | grep“1”| tr -d's'| awk'{print $ 2}'