作为 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,问题是不允许它同时安装busybox
和busybox-static
软件包。
您只需记住,在没有它的系统中,恢复/救援选项将受到更多限制。例如,我可能将其保留在物理系统上,我将其作为虚拟机的标准删除以节省空间,并遵循保持最少安装软件的 Unix 旧黄金法则。
至少对于 Debian 来说,卸载会在后台进行必要的修改,不需要执行任何额外的步骤,也不需要自定义任何内容。