跳转到内容

社区 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 CLI

[编辑 | 编辑源代码]

在您的计算机上安装 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 服务器后,必须出于安全原因重新生成两个密钥

  1. 重新生成的 SSH 密钥。
    systemctl stop sshd
    rm -f /etc/ssh/ssh_host_*
    dpkg-configure openssh-server
    systemctl start sshd
    
  2. 重新生成 Apache 用于 TLS 连接的蛇油证书,在没有合适的 Let's Encrypt 证书的情况下。
    make-ssl-cert generate-default-snakeoil --force-overwrite
    systemctl restart apache2
    
华夏公益教科书