我正在尝试学习在同一个容器上有两个具有相同覆盖层的外壳。一些谷歌搜索表明我想启动一个“实例”,然后将其插入两次。我已经用
--fakeroot
构建了我的图像和叠加层。我正在共享此服务器,因此我希望尽可能不打扰其他用户。
$ apptainer instance start --fakeroot --overlay my_overlay.img my_image.sif my_new_instance_name
INFO: User not listed in /etc/subuid, trying root-mapped namespace
INFO: Using fakeroot command combined with root-mapped namespace
INFO: Terminating fuse-overlayfs after timeout
INFO: Timeouts can be caused by a running background process
INFO: Cleanup error: while stopping driver for /var/lib/apptainer/mnt/session/final: fuse-overlayfs exited: fuse: failed to unmount /var/lib/apptainer/mnt/session/final: Invalid argument
ERROR: container cleanup failed: no instance found with name my_new_instance_name
FATAL: container creation failed: while applying cgroups config: unable to start unit "apptainer-2317013.scope" (properties [{Name:Description Value:"libcontainer container 2317013"} {Name:Slice Value:"system.slice"} {Name:Delegate Value:true} {Name:PIDs Value:@au [2317013]} {Name:MemoryAccounting Value:true} {Name:CPUAccounting Value:true} {Name:IOAccounting Value:true} {Name:TasksAccounting Value:true} {Name:DefaultDependencies Value:false}]): Interactive authentication required.
FATAL: while executing starter: failed to start instance: while running /usr/libexec/apptainer/bin/starter: exit status 255
不太确定如何处理此错误。
您遇到的错误表明由于权限或资源限制,apptainer 实例启动过程出现问题,可能与 fakeroot、cgroups 或 fusion-overlayfs 超时有关。以下是解决这些问题的方法:
需要解决的要点: 用户未在 /etc/subuid 中列出:fakeroot 命令需要 subuid 映射才能正常运行。 fusion-overlayfs 超时:这可能是由于覆盖文件或后台运行的某些内容的问题引起的。 Cgroup 问题:该错误表明尝试应用 cgroup 设置时实例创建失败,并提到需要交互式身份验证。这可能是需要 root 或提升权限的权限问题。
解决步骤:
echo“您的用户名:100000:65536”| sudo tee -a /etc/subuid /etc/subgid
apptainer 实例停止 my_new_instance_name umount /var/lib/apptainer/mnt/session/final
如果没有活动进程,请手动清理所有延迟文件。
apptainer 实例启动 --no-cgroups --fakeroot --overlay my_overlay.img my_image.sif my_new_instance_name
apptainer 实例启动 --fakeroot --timeout 60 --overlay my_overlay.img my_image.sif my_new_instance_name
尝试不使用 fakeroot 或请求 sudo 访问权限 如果 fakeroot 导致问题,并且您有足够的权限,请尝试在没有 fakeroot 的情况下运行实例,或请求临时 sudo 访问权限以直接使用 root 权限运行 Apptainer。
仔细检查叠加图像 验证您的 my_overlay.img 是否是支持该图像的有效且格式良好的叠加层。您也可以尝试不使用覆盖层,看看问题是否在那里:
apptainer 实例启动 --fakeroot my_image.sif my_new_instance_name
调试 如果上述方法都没有帮助,启用调试日志可能会提供更多见解:
apptainer --debug 实例启动 --fakeroot --overlay my_overlay.img my_image.sif my_new_instance_name
尝试这些步骤