![OpenBSD - 减少小型系统的基本安装大小](https://linux22.com/image/86507/OpenBSD%20-%20%E5%87%8F%E5%B0%91%E5%B0%8F%E5%9E%8B%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%9F%BA%E6%9C%AC%E5%AE%89%E8%A3%85%E5%A4%A7%E5%B0%8F.png)
我最近尝试在我的 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
答案3
可以使用一些技巧来减小库的大小。我总是在从系统中删除可执行文件之前执行此步骤。
删除库分析数据以节省约 56Mb:
rm /target/usr/lib/lib*_p.a
从共享对象中剥离符号表:
strip /target/usr/lib/lib*.so.*
例如,libc.so.86.0
总计 3Mb,而剥离后仅 750kb。
这根本不影响可用性[没有安装gdb]。