virtualbox导入ova报VERR_VD_VMDK_INVALID_FORMAT错误及解决过程
  • virtualbox导入ova报VERR_VD_VMDK_INVALID_FORMAT错误及解决过程

    在virtualbox中导入原先做的gentoo linux操作系统的虚拟机的时候,出错了。
    只有想办法把系统数据导出来,或者重新安装。在网上搜了一些资料后,发现:
    ova文件其实就是一个tar文件,解开就是ovf、vmdk和mf。ovf是虚拟机定义文件,vmdk是虚拟机硬盘文件,mf是一个校验文件。解开的过程提示出错,不过三个文件还是得到了。
    按照ovf文件的描述手工建立虚拟机,再将vdmk文件拷到VirtualBox VMs目录下,然后添加到建立的虚拟机中,可以启动。于是打算新建一个虚拟机硬盘,把原有的系统数据镜像到新虚拟硬盘上,可是dd只处理了1G多的数据就终止了,看来文件本身有问题,导致设备文件中有错误,但是文件洗头还可以工作。于是决定用cp -a。

    下载minimal CD,启动虚拟机
    根据原硬盘的分区情况重新分区,我这里是boot、根和swap,并make filesystem。
    [plain] 
    fdisk /dev/sdb (sdb1 256M, sdb2 剩下全部)  
    pvcreate /dev/sdb2  
    vgcreate vg2 /dev/sdb2  
    lvcreate -nslash -L10G  
    lcvreate -nswap -L1G  
    mkfs.ext2 /dev/sdb1  
    mkfs.ext4 /dev/vg2/slash  
    mkswap /dev/vg2/swap  
    将原有硬盘和新硬盘的根分区分别挂在到/mnt/下gentoo和gentoo2目录。
    [plain] 
    mount /dev/vg1/slash /mnt/gentoo  
    mount /dev/vg2/slash /mnt/gentoo  
    进入/mnt/gentoo目录,复制(加参数-a)全部文件到/mnt/gentoo2目录。
    [plain] 
    cd /mnt/getoo  
    cp -a . /mnt/gentoo2  
    挂载boot分区,复制(加参数-a)。
    [plain] 
    mount /dev/sda1 /mnt/gentoo/boot  
    mount /dev/sdb1 /mnt/gentoo2/boot  
    cd /mnt/gentoo/boot  
    cp -a . /mnt/gentoo2/boot  
    修改/etc/fstab和/boot/grub/menu.lst
    [plain] 
    chroot /mnt/gentoo2 /bin/bash  
    vim /etc/fstab  
    vim /boot/grub/menu.lst  
    复制mbr
    [plain] 
    dd if=/dev/sda of=/dev/sdb bs=446 count=1  

    之后重新导出虚拟电脑,问题解决。
     

     

  • 点这里复制本页地址发送给您QQ/MSN上的好友
  • 300*300广告