运行 单元测试 CRIU 1.8 时出错

Error while running unit tests for CRIU 1.8

我正在尝试 运行 在 CRIU 1.8 上进行单元测试。为了准备盒子,我安装了:

libprotobuf-lite8 libprotobuf8 zlib1g-dev libprotobuf-dev libprotobuf-c0 libprotobuf-c0-dev libprotoc8 protobuf-c-编译器 protobuf-编译器 libaio-dev libcap-dev

之后,作为 root,我 运行、make test 得到以下输出:

...
make[3]: Leaving directory `/home/ubuntu/criu-1.8/test/zdtm/live/static'
make[2]: Leaving directory `/home/ubuntu/criu-1.8/test/zdtm/live'
make[1]: Leaving directory `/home/ubuntu/criu-1.8/test/zdtm'
make[1]: Entering directory `/home/ubuntu/criu-1.8/test'
make zdtm
make[2]: Entering directory `/home/ubuntu/criu-1.8/test'
./zdtm.sh -l > zdtm-tst-list
================================= CRIU CHECK =================================
prctl: PR_SET_MM_MAP is not supported, which is required for restoring user namespaces
Error (cr-check.c:634): Kernel doesn't support PTRACE_O_SUSPEND_SECCOMP
Error (cr-check.c:683): Dumping seccomp filters not supported: Input/output error
Error (timerfd.c:55): timerfd: No timerfd support for c/r: Inappropriate ioctl for device
Error (cr-check.c:780): AIO remap doesn't work properly
Error (cr-check.c:796): fdinfo doesn't contain the lock field
============================= WARNING =============================
Not all features needed for CRIU are merged to upstream kernel yet,
so for now we maintain our own branch which can be cloned from:
git://git.kernel.org/pub/scm/linux/kernel/git/gorcunov/linux-cr.git
===================================================================

make -f Makefile.zdtm zdtm_nons
make[3]: Entering directory `/home/ubuntu/criu-1.8/test'
gcc  -O2 -Wall -Werror -DCONFIG_X86_64 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_GNU_SOURCE -D_GNU_SOURCE -D_GNU_SOURCE    zdtm_ct.c   -o zdtm_ct
flock zdtm_mount_cgroups ./zdtm_mount_cgroups
flock: ./zdtm_mount_cgroups: Text file busy
make[3]: *** [mount_cgroups] Error 69
make[3]: Leaving directory `/home/ubuntu/criu-1.8/test'
make[2]: *** [zdtm] Error 2
make[2]: Leaving directory `/home/ubuntu/criu-1.8/test'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/ubuntu/criu-1.8/test'
make: *** [test] Error 2

我假设我的问题出在 CRIU CHECK 块中,但我不确定我在这里看到了什么。谁能指出我正确的方向。如果 Google 有帮助,那我就是太无知了运行t 认不出来。谢谢!

此外,我在 SO 上没有声誉将其标记为 CRIU(显然这是一个新标签),但它显然与 CRIU 相关。如果您同意并有权力,请为此打个标签?

您需要一个新的 Linux 内核。

CRIU CHECK 框中的内容都是关于它需要的内容,但系统上的库(例如 libc)或内核均不支持。在下面的框中,他们描述了您必须在哪里获得具有必要补丁的内核:

============================= WARNING =============================
Not all features needed for CRIU are merged to upstream kernel yet,
so for now we maintain our own branch which can be cloned from:
git://git.kernel.org/pub/scm/linux/kernel/git/gorcunov/linux-cr.git
===================================================================

按照 CRIU 安装页面上的说明配置内核:https://criu.org/Installation. And, use a page like the one at "kernel newbies" for general advice on building the kernel yourself: http://kernelnewbies.org/KernelBuild

构建内核相当简单,但有时要使其正常工作可能会很棘手。确保在 GRUB 中保留后备内核,并考虑使用某种 "live" 可启动 Linux ISO 访问以返回到您的系统,以防它完全出错。