从 buildroot 中删除 busybox

从 buildroot 中删除 busybox

作为 Linux 的一部分硬化我们想要删除忙碌盒从创建的文件系统构建根目录

但我不确定系统是否可以在没有它的情况下启动。

我非常确定有依赖于 busybox 的初始化文件。

是否可以在没有 busybox 的情况下启动,或者是否需要自定义 init ?

答案1

这完全取决于您的发行版是否使用 Busybox for init.

为了给你指明正确的方向,请运行ls -l /sbin/init

如果您得到类似以下内容(来自 OpenWRT 的示例):

~# ls -l /sbin/init
-rwxr-xr-x    1 root     root         10824 Jan 31  2016 /sbin/init

这意味着init是一个不同的应用程序,您可以删除 Busybox。您仍然需要用init替代命令替换所有命令,因为 Busybox 提供了成功启动所需的许多工具。

但是,如果您得到(来自 Alpine Linux 的示例):

~$ ls -l /sbin/init
lrwxrwxrwx    1 root     root            12 May  3 04:49 /sbin/init -> /bin/busybox

这意味着由 Busybox 提供,除非您可以用替代品init替换 Busybox,否则您将无法启动。init

您必须考虑这样做是否真正强化了系统,因为您最终会用许多二进制文件替换一个二进制文件。

答案2

我经常删除主模板/Debian VM 中的 busybox。

对于 Debian,问题是不允许它同时安装busyboxbusybox-static软件包。

您只需记住,在没有它的系统中,恢复/救援选项将受到更多限制。例如,我可能将其保留在物理系统上,我将其作为虚拟机的标准删除以节省空间,并遵循保持最少安装软件的 Unix 旧黄金法则。

至少对于 Debian 来说,卸载会在后台进行必要的修改,不需要执行任何额外的步骤,也不需要自定义任何内容。

相关内容