小编mki*_*ton的帖子

手动克隆/重新创建虚拟磁盘

我正在尝试以相当手动的方式克隆虚拟磁盘映像。到目前为止,我的方法论概述如下:

  1. 在 VirtualBox 中使用 120GB 硬盘创建虚拟机(管理程序和硬盘大小无关紧要,主要是为了完整性和与我的其余问题的一致性,例如分区大小)
  2. 在虚拟机上安装 Ubuntu 12.04.3
  3. 关闭虚拟机
  4. 挂载与虚拟机关联的虚拟硬盘
  5. 提取操作系统文件和数据以存储在目录中
  6. 保存虚拟硬盘元数据
  7. 创建新的虚拟磁盘并从 (6) 恢复分区和引导信息
  8. 将数据从(5)恢复到正确的分区

问题

我复制的 VM 无法启动。Grub 似乎复制,并且似乎承认我的根分区(安装了 Ubuntu)。我可以通过 Grub 启动一次并出现紫色屏幕,就好像 Ubuntu 即将加载一样。然后它停止。之后,我可以启动到 Grub,选择我的操作系统,然后我会看到一个闪烁的命令行光标。无法输入。我怀疑在克隆过程中我遗漏了一些东西(有关更多详细信息,请参见下文)。注意:我使用的是 grub2,而不是旧版。

你为什么做这个?

作为合同要求的一部分,我需要将虚拟磁盘存储在版本控制中。在版本控制中拥有一个巨大的二进制 blob(虚拟磁盘)是一种痛苦,主要用于 clone(git)/checkout(svn),但也用于差异。我已经考虑过压缩到多个文件,但我需要能够操作上面 (5) 中提取的操作系统/数据。请注意,我的 VCS 存储库仍然需要构建完整 VM 所需的所有信息。

细节

重现我所描述的内容的详细说明:

  1. 创建一个 VM 并启动 Ubuntu Live CD
  2. 选择“试用 Ubuntu”
  3. 打开终端
  4. 创建 msdos 分区: sudo parted /dev/sda mklabel msdos
  5. 创建一个 2GB 的交换文件:sudo parted /dev/sda mkpart primary linux-swap 2048s 4198399s
  6. 将驱动器的其余部分用作根分区: sudo parted /dev/sda mkpart primary ext4 4198400s 100%
  7. 重启机器,选择“安装 …

linux virtualbox partitioning virtual-machine

7
推荐指数
1
解决办法
1600
查看次数

在 Arch 中构建 Boost

我正在 Arch 2012.6 中构建 Boost 1.53.0(最新版本)。我构建的原因是因为我需要编译如下:

./b2 install --prefix=/usr/local/ cxxflags="-std=c++11"
Run Code Online (Sandbox Code Playgroud)

具体来说,我需要提供cxxflags="std=c++11"参数,它似乎没有在包中使用过。我被卡住了,因为构建没有找到正确的 python 库。我已经安装了python2pythonpacman 但我怀疑 boost 需要 python 2 库并且没有找到所需的头文件,因为 Arch“默认”为 python 3。(你能说我有点像 Arch 新手吗?)。

我怀疑我可以向 提供更多信息b2,可能与linkflags论点一起。但我在那里有点死胡同。

我得到的编译错误类似于:

gcc.compile.c++ bin.v2/libs/python/build/gcc-4.8.1/release/link-static/threading-multi/object/function_doc_signature.o
In file included from ./boost/python/detail/prefix.hpp:13:0,
             from ./boost/python/converter/registrations.hpp:8,
             from libs/python/src/object/function_doc_signature.cpp:9:
./boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or directory
 # include <pyconfig.h>
Run Code Online (Sandbox Code Playgroud)

感谢任何帮助,谢谢大家!

python compile arch-linux build

3
推荐指数
1
解决办法
3057
查看次数