我在导入大型 tarball 时服务器崩溃了k3s ctr images import my_image.tar。重启服务器并尝试重新导入后,出现以下错误:

unpacking docker.io/library/my_image (sha256:b69c6d6ebdb9517f7a93deede3ccf6380aebbc6a8fa68da14ab06bc1be131423)...ctr: failed to prepare extraction snapshot "extract-774071004-6PJT sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb640555d": failed to stat parent: stat /var/lib/rancher/k3s/agent/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/327/fs: no such file or directory: unknown

327缺少目录。如果我运行k3s ctr snapshots tree它,它会显示:

...
\_ sha256:594fd317ce6c40c5675454df43ad62b3a50115eb90ab7c9a15f1a4cb6f1115ed
 \_ sha256:89d2814f8e8a9fb32c126c93e86bc86984ef3483a65d5a53141d56f80bcc12fe
  \_ extract-662974335-9mi3 sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb640555d

我尝试删除最后两张快照:

# k3s ctr snapshots delete sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb640555d
ctr: failed to remove "sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb640555d": snapshot sha256:6e98c2a3f1228e003bc43b054a526b4bf36783f2ff04b8b6ce12b0beb640555d does not exist: not found

# k3s ctr snapshots delete sha256:89d2814f8e8a9fb32c126c93e86bc86984ef3483a65d5a53141d56f80bcc12fe --force
ctr: failed to remove "sha256:89d2814f8e8a9fb32c126c93e86bc86984ef3483a65d5a53141d56f80bcc12fe": cannot remove snapshot with child: failed precondition

我尝试过修剪图像,k3s ctr images prune --all但没有帮助。有没有办法在不重新安装 containerd 的情况下解决这个问题?

更新

在我删除/var/lib/rancher/k3s/agent/containerd目录并重新导入所有图像后,问题就解决了。

0