Docker容器dpkg报错

在 Arch Linux 的 Kernel 滚到 4.19 后, 容器内执行 Debian 系的 dpkg 报错, 一般是

1
dpkg: error: error creating new backup file '/var/lib/dpkg/status-old': Invalid cross-device link

原因 -> #836211 - dpkg: Cannot upgrade some packages on overlayfs: Invalid cross-device link - Debian Bug report log

在官方修复这个 bug 之前, 解决方案有两个

  1. 降级内核至 4.18

  2. 修改内核参数(推荐)

修改内核参数有几个方式, 比较方便的是改/etc/default/grub, 加上overlay.metacopy=N

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet overlay.metacopy=N"

修改完后, 重新生成grub.cfg

1
sudo grub-mkconfig -o /boot/grub/grub.cfg

到目前为止(18 年 12 月 10 日), 内核滚到了 4.19.8, 这个 bug 还存在
4.19.11-arch1-1-ARCH (18 年 12 月 21 日)修复了这个 bug