社区 FreedomBox/构建磁盘映像
本指南解释如何为社区部署制作准备就绪的 FreedomBox 映像。应用程序安装在基础 FreedomBox 映像之上,并创建一个完全安装的 FreedomBox 的磁盘映像。
由于单板计算机通常不满足社区部署 FreedomBox 的系统要求,因此通常选择 i386 或 amd64 架构的台式机。本指南将假设选择了 amd64 架构,但相同的说明也适用于 i386。
FreedomBox 操作系统通常以磁盘映像的形式分发,可以从官方网站下载。
下载并验证适用于台式机安装的映像的 GPG 签名。
如果网站无法访问,可以使用名为freedom-maker的工具自己构建磁盘映像。请按照 freedom-maker 的 ReadMe 文件中的说明构建 amd64 映像。
使用命令行工具 dd 或名为 balenaetcher 的 GUI 工具将映像刻录到 USB 磁盘。将 USB 磁盘插入 amd64 架构的备用计算机,并在启动时从 BIOS 设置中选择它。
在 FreedomBox 中创建一个新的管理员用户并安装所需的应用程序。
在您的计算机上安装 virtualbox。在 Debian 上,以下命令有效
$ sudo apt install virtualbox
我们将使用 VirtualBox 提供的命令行实用程序 VBoxManage
从这里进行进一步的操作。将 amd64 映像转换为 VirtualBox 能够理解的格式
$ VBoxManage convertdd <freedombox-image-name>.img <freedombox-image-name>.vdi --format VDI
使用 GUI 应用程序将此磁盘映像导入 VirtualBox。
将来宾端口 443 转发到您的主机,以便能够从浏览器访问 FreedomBox Web 界面。
转发端口 22 以便从您的主机进行 ssh 访问。
基础映像的大小仅为 3.7 GiB。您可能需要将磁盘映像扩展到更大的大小,例如 8 GiB,以便能够安装应用程序。
$ VBoxManage modifyhd <freedombox-image-name>.vdi --resize 8192
注意:请注意 --resize
的参数。可以进一步扩展,但使用 VBoxManage
尚不能缩小磁盘映像。
FreedomBox 尚未知道有额外的磁盘空间可用。在 Web 界面中,转到系统 -> 存储,然后单击“扩展根分区”按钮以扩展根分区以填充整个磁盘。
为虚拟机分配至少 2 个 CPU 内核和 2 GiB 内存。
在 FreedomBox 中创建一个新的管理员用户并安装所需的应用程序。
设置完成后,将 VirtualBox 映像转换回原始磁盘映像。
$ VBoxManage clonehd <freedombox-image-name>.vdi <freedombox-image-name>.img --format RAW
使用 dd
命令将上面准备好的磁盘映像复制到将用于在社区中提供 FreedomBox 的每台计算机的硬盘中。启动新的 FreedomBox 服务器后,必须出于安全原因重新生成两个密钥
- 重新生成的 SSH 密钥。
systemctl stop sshd rm -f /etc/ssh/ssh_host_* dpkg-configure openssh-server systemctl start sshd
- 重新生成 Apache 用于 TLS 连接的蛇油证书,在没有合适的 Let's Encrypt 证书的情况下。
make-ssl-cert generate-default-snakeoil --force-overwrite systemctl restart apache2