我在 Ubuntu 12.04.2 LTS 中安装了 vagrant 和 virtual box。(流浪者版本1.2.1)。我已经下载了 vagrant box 并执行了 vagrant box add 命令。我收到以下错误:
*vagrant box add base64 package.box
Downloading or copying the box...
Extracting box...te: 147M/s, Estimated time remaining: 0:00:01)
The box failed to unpackage properly. Please verify that the box
file you're trying to add is not corrupted and try again. The
output from attempting to unpackage (if any):
x ./box-disk1.vmdk: Write failed
x ./box.ovf: Write failed
x ./Vagrantfile: Write failed
bsdtar: Error exit delayed from …
Run Code Online (Sandbox Code Playgroud) 如果我创建一个文件,用于lseek(2)
跳到(空)文件中的较高位置,然后在其中写入一些有价值的信息,那么我会在Unix系统上创建一个稀疏文件(可能取决于我使用的文件系统,但是假设我m使用典型的Unix文件系统(例如ext4或类似文件),就是这种情况。
如果然后我lseek(2)
在文件中甚至更高的位置上写一些东西,我最终会得到一个稀疏文件,该文件的中间位置包含有价值的信息,并被大量稀疏文件包围。我想在文件中找到这些有价值的信息,而不必完全阅读它。
例:
$ python
f = open('sparse', 'w')
f.seek((1<<40) + 42)
f.write('foo')
f.seek((1<<40) * 2)
f.write('\0')
f.close()
Run Code Online (Sandbox Code Playgroud)
这将创建一个仅使用8k磁盘空间的2TB文件:
$ du -h sparse
8.0K sparse
Run Code Online (Sandbox Code Playgroud)
中间的某处(1TB + 42字节)是有价值的信息(foo
)。
我cat sparse
当然可以找到它,但是它将读取完整的文件并输出大量的零字节。我尝试使用较小的尺寸,发现此方法大约需要3个小时才能在计算机上打印三个字符。
问题是:
有没有一种方法可以找到存储在稀疏文件中的信息,而无需同时读取所有空块?我可以使用标准的Unix方法以某种方式找出稀疏文件中的空块吗?
我有两个双胞胎CentOS 5.4服务器,每个服务器都安装了VMware Server.
假设我总是将稀疏文件用于我的vmware虚拟机,那么将虚拟机文件从一台服务器复制到另一台服务器的最可靠,最快速的方法是什么?
vm的文件很难复制,因为它们非常大(50 GB),但由于它们是稀疏文件,我认为可以采取一些措施来提高复制的速度.