我的机器安装了Ubuntu virtualbox虚拟机,前几天升级虚拟机中软件时候,Ubuntu系统突然崩溃了,直接导致开不了机,里面有我一个星期的代码,也没做下拷贝,怪自己大意了,没想到系统会崩溃掉,当时我也跟系统一样崩溃了。


为了拷贝出里面的代码,网上查找了好多资料,发现是有解决方案的。找回文件的过程,主要参考了这篇文章:http://www.blogbus.com/lnote-logs/336947963.html,解决方案是将vid文件挂载到一个正常的Ubuntu系统里,将文件拷贝出来。


过程如下:

1.下载virtualbox-fuse,下载地址:http://security.debian.org/debian-security/pool/updates/main/v/virtualbox/virtualbox-fuse_4.1.42-dfsg-1+deb7u1_amd64.deb

下载之后,不能直接安装。因为这个virtualbox-fuse 只支持老板的virtalbox ,直接安装deb是不行的。 其实我们只要提取vdfuse这个可执行文件,就可以了。 文件一般会下载到在Downloads目录里。

2. cd进入Downloads目录。命令:dpkg -x virtualbox-fuse_4.1.42-dfsg-1+deb7u1_amd64.deb temp ,解压安装包到temp文件夹。

3.sudo cp temp/usr/bin/vdfuse  /bin ,将temp文件夹中的vdfuse命令拷贝到 /bin目录中

它本身有执行属性 如果没有 执行下下面命令 sudo chmod 755 /bin/vdfuse 添加 

4.打开/etc/fuse.conf文件,将user_allow_other前面的“#”删除,保存一下。

5.通过vdfuse命令将vdi文件mount到一个临时的mount point上。

注意:运行vdfuse命令时,可能会提示 error while loading shared libraries: VBoxDDU.so : cannot oopen shared object file。是因为找不到vboxdu.so文件,需要安装virtualbox虚拟机才行。

下载地址:https://www.virtualbox.org/wiki/Linux_Downloads

根据列表选择对应版本的virtualbox。我的系统对应的是Ubuntu14.04 ,点击下载AMD64。下载完deb文件后,双击进行安装。

  • Ubuntu 14.04 ("Trusty") / 14.10 ("Utopic") / 15.04 ("Vivid")  i386 |  AMD64

sudo vdfuse -f /xxxxx/xxxx.vdi  /mnt/vdi_xxxx,如果提示No such file or directory,需要现在/mnt目录中使用命令,新建一个vid_xxxx 文件夹。

我在本机是建立了一个vidmnt文件夹。

执行命令 sudo vdfuse  -f xxxx.vid /mnt/vidmnt,挂载成功后, ll命令,可以看到vidmnt挂载成功了。


sudo ls -l vidmnt,可以看到两个分区。我的文件在Partition1中。下面继续将Partition1挂载到文件夹。



7. mkdir新建一个文件夹part1,运行命令:sudo mount vidmnt/Partition1 part1,将Partiton1挂载到part1。cd进入part1,ls命令,可以看到挂载成功了。接下来就可以使用cp命令将文件拷贝出来了。



Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐