当我尝试发出 update-grub 命令时,我看到了非常奇怪的输出:
update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.9.0-6-amd64
Found initrd image: /boot/initrd.img-4.9.0-6-amd64
Found linux image: /boot/vmlinuz-4.9.0-4-amd64
Found initrd image: /boot/initrd.img-4.9.0-4-amd64
File descriptor 7 (pipe:[33660]) leaked on lvs invocation. Parent PID 7587: /bin/sh
done
我需要解决这个问题。什么会导致出现这样的消息?
答案1
这些警告指出了代码update-grub
和lvs
二进制文件之间的一些“不整洁”:lvs
继承了标准文件描述符(0、1和2)之外的打开文件描述符(7)。它立即关闭所有此类描述符并打印警告(可以通过LVM_SUPPRESS_FD_WARNINGS
环境变量来抑制)。让后代进程不必要地继承文件描述符是不好的编码实践,因为它为漏洞利用打开了大门。因此,这里确实有一些问题需要修复,尽管在这种情况下它可能没有安全(或正确性)影响。