我最近建立了一个家庭实验室,现在我终于有了足够的存储空间,我决定保留一个 Ubuntu 软件包的副本以用于单个 LTS 版本,这可能是一个好主意。特别是,我决定镜像 24.04 Noble。理想情况下,目标是能够使用我的镜像安装软件包和全新的 ubuntu 安装,并且只在我可以更新镜像时(可能每月一次左右)偶尔更新(我的大多数机器都没有连接到外部网络)。我还认为这将是一次有趣的学习经历。
我尽我所能地遵循了一些指南并做了一些自己的阅读,最终决定在 docker 容器中使用 debmirror 和以下脚本执行镜像操作:
#!/bin/bash
SECTIONS="main,restricted,universe,multiverse"
RELEASE="noble,noble-security,noble-updates,noble-backports"
PROTO="rsync"
AMD64_ARCHES="amd64"
AMD64_ROOT="ubuntu"
AMD64_SERVER="us.archive.ubuntu.com"
AMD64_DEST="/mirror/amd64/ubuntu"
ARM64_ARCHES="arm64"
ARM64_ROOT="ubuntu-ports"
ARM64_SERVER="us.ports.ubuntu.com"
ARM64_DEST="/mirror/arm64/ubuntu"
# Mirror AMD
debmirror --arch="$AMD64_ARCHES"\
--section="$SECTIONS" \
--host="$AMD64_SERVER"\
--method="$PROTO" \
--root=$AMD64_ROOT \
--dist="$RELEASE" \
--source \
--progress \
--cleanup \
--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg \
--rsync-options "-aIL --info=progress2 --partial" \
"$AMD64_DEST"
# Mirror ARM64
debmirror --arch="$ARM64_ARCHES"\
--section="$SECTIONS" \
--host="$ARM64_SERVER"\
--method="$PROTO" \
--root=$ARM64_ROOT \
--dist="$RELEASE" \
--source \
--progress \
--cleanup \
--keyring=/usr/share/keyrings/ubuntu-archive-keyring.gpg \
--rsync-options "-aIL --info=progress2 --partial" \
"$ARM64_DEST"
如果这在 github 上很重要的话,我有一个包含所有代码和 Dockerfile 的 repo 。
根据以下问题的答案,如果我镜像整个存储库,我预计会使用 2.1TB 的数据:镜像存储库的大小
我预计,如果只镜像一个发行版,这个数字会更小,但我不知道会小多少。我镜像的 amd64 和 arm64 大小大约为 260GB,两半占用的空间大致相同。这比我预期的要小得多,我想确保我没有遗漏任何东西。我曾假设大多数发行版会在适用的情况下共享软件包,所以我并不指望单个发行版的大小会大幅减少。
编辑:以下问题(Ubuntu 存储库的大小是多少?)也出现了,但我担心的是,最相关的答案似乎是 12 年前的,从那时到现在,很多东西都可能发生变化。它似乎还省略了该universe
部分,但由于我不熟悉旧版本,也许那只是当时的结构不同。
当我镜像仿生和焦点时它是 427 G。