OpenBSD - 减少小型系统的基本安装大小

OpenBSD - 减少小型系统的基本安装大小

我最近尝试在我的 Soekris net4526 上安装 OpenBSD,但 64MB 板载存储太小了。有没有办法让 OpenBSD 更小,因为即使是最小的配置(仅限 bsd 和 baseXX.tgz)也不适合。我尝试使用 OpenBSD 3.9。你能给我一些链接吗?

答案1

好消息是完成了,但是您需要知道自己在做什么,并且无法在 openbsd 邮件列表上寻求任何帮助。

你需要:

  • 比您的 soekris 更强大的构建机器
  • 要删除的内容列表将基于您愿意做出的任何妥协。 (您没有详细说明您打算使用这台机器做什么)。

我刚刚下载了最新的 base.tgz 快照。大小为148M。以下是一些关于您可以从底座中删除的东西的想法:

  • 如果你可以不用 Perl 生活,删除它将为你节省 54.5M
  • 如果没有 perl,您也可以删除 pkg_* 工具和 /etc/signify/openbsd-*-pkg.pub 文件。您还可以删除一些其他零碎内容,例如 fw_update、libexec/security 等。
  • terminfo数据库,5.6M
  • /usr/bin/spell、/usr/bin/deroff(仅保留,因为它被拼写使用)和 /usr/share/dict 将节省 3.5M
  • 修剪区域信息,3M
  • /etc/firmware 将节省 2.3M
  • 也许你不需要 /sbin/isakmpd 这将节省 1.8M
  • /usr/share/man/ 将节省 1.3M(选定的几个手册页安装在基础版本中,而不是安装在手册集中)。
  • 没有手册页,您也可以删除 /usr/bin/man、/usr/bin/mandoc、/etc/examples/man.conf
  • 你也可以删除 3M 的 libsqlite
  • 删除 dig、host、nslookup 1.4M
  • /usr/share/misc 将节省 1.2M
  • cvs 将节省 0.7M
  • /usr/bin/file 和 /etc/magic 将节省 0.6M
  • texinfo 将节省 0.5M
  • /usr/mdec 将节省 0.3M
  • /var/sysmerge/etc.tgz 将节省 0.2M

此时你就接近了。也许大约有 70M 的使用量,所以你必须开始删除你不会使用的东西。例如,在 /usr/sbin 中,您需要 pppd 吗?你需要httpd吗?您可能不需要安装引导等。您将需要根据您的用例进行仔细的梳理。

您可以尝试的另一件事是使用 -Os 而不是 -O2 编译系统。如果它也节省空间,可能值得检查。但请注意 -Os 是不是OpenBSD 上经过良好测试的 gcc 代码路径。如果您这样做遇到编译器错误,我不会感到惊讶。

所以我认为重点是如果您愿意将足够的时间投入到这个项目中,就可以完成。只有您可以决定是否要创建这样一个 OpenBSD 的精简版本。再次强调,不要指望从 openbsd 邮件列表中得到任何帮助。如果你向那里的这个项目寻求帮助,人们会嘲笑你。

答案2

当然,flashrd应该适合你的场景:

flashrd 在 64MB RAM 和 1GB 闪存内启动,托管默认的 OpenBSD/i386 或 Open BSD/amd64 安装。建议默认 flashrd 设置至少使用 128MB RAM。

你必须使用最新版本的OpenBSDwithflashrd(目前位于5.9)无论如何,强烈建议这样做。

答案3

可以使用一些技巧来减小库的大小。我总是在从系统中删除可执行文件之前执行此步骤。

  1. 删除库分析数据以节省约 56Mb:

    rm /target/usr/lib/lib*_p.a
    
  2. 从共享对象中剥离符号表:

    strip /target/usr/lib/lib*.so.*
    

例如,libc.so.86.0总计 3Mb,而剥离后仅 750kb。

这根本不影响可用性[没有安装gdb]。

相关内容