我们正在构建 Ubuntu 20.04 的根文件系统,并使用以下命令安装软件包,debootstrap
并最终使用以下命令将其打包成 tar:
tar -c --use-compress-program=pigz -f $ROOTFS --numeric-owner -C $TMPDIR .
最后,当我们解压根文件系统时,文件功能就会丢失。例如,ping 会失去其cap_net_raw+ep
功能,这会导致生产中出现异常行为。
我尝试传递各种 tar 参数来保留文件功能,但失败了。这方面的指导将非常有帮助。
对于非常简单的复制:
# cd /bin && getcap /bin/ping && rm -f blah.tar && tar --preserve-permissions --xattrs --xattrs-include=*.* -cf ~/blah.tar ping && cd -
/bin/ping = cap_net_raw+ep
/root
# tar -xf blah.tar && getcap ./ping
#