From 8acf025a9dfc050ad2e1ed73227798703914e71a1df566f2ae3184a29ebe5746 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=9F=E9=85=8C=20=E9=B5=AC=E5=85=84?= Date: Thu, 26 Mar 2026 05:10:35 +0800 Subject: [PATCH] Remove unused /var/lib/registry data --- alpine/build-rootfs.sh | 24 +++++++++---------- alpine/preload-k8s-images.sh | 4 ++-- .../rootfs-extra/etc/containers/storage.conf | 9 +++++++ alpine/rootfs-extra/etc/fstab | 1 + docs/partitions.md | 17 +++++++++++++ 5 files changed, 40 insertions(+), 15 deletions(-) create mode 100644 alpine/rootfs-extra/etc/containers/storage.conf create mode 100644 docs/partitions.md diff --git a/alpine/build-rootfs.sh b/alpine/build-rootfs.sh index 9d4990f..da9c1f8 100755 --- a/alpine/build-rootfs.sh +++ b/alpine/build-rootfs.sh @@ -4,20 +4,11 @@ set -euo pipefail /preload-k8s-images.sh || exit 1 -REGISTRY_DATA_DIR="${KUBE_IMG_CACHE}/registry-data/${ARCH}/${KUBE_VERSION}" - -mkdir -p "${ROOTFS}/var/lib/registry" - -echo "Copying registry data into rootfs..." -cp -a "${REGISTRY_DATA_DIR}/." "${ROOTFS}/var/lib/registry/" - mkdir -p "$ROOTFS/var/cache/apk" -mkdir -p "$ROOTFS/var/cache/k8s-images" mkdir -p "$ROOTFS/opt/monok8s/config" mkdir -p "$ROOTFS/build" mount --bind /var/cache/apk "$ROOTFS/var/cache/apk" -mount --bind /var/cache/k8s-images "$ROOTFS/var/cache/k8s-images" mount --bind /dev "$ROOTFS/dev" mount --bind /proc "$ROOTFS/proc" mount --bind /sys "$ROOTFS/sys" @@ -42,7 +33,6 @@ chroot "$ROOTFS" /bin/bash /configure-system.sh || exit 1 rm "$ROOTFS/configure-system.sh" umount "$ROOTFS/var/cache/apk" -umount "$ROOTFS/var/cache/k8s-images" umount "$ROOTFS/dev" umount "$ROOTFS/proc" umount "$ROOTFS/sys" @@ -60,8 +50,8 @@ dd if=/dev/zero of="$IMG" bs=1 count=0 seek=$SIZE sgdisk -o "$IMG" \ -n 1:2048:+64M -t 1:0700 -c 1:config \ - -n 2:0:+3G -t 2:8300 -c 2:rootfsA \ - -n 3:0:+3G -t 3:8300 -c 3:rootfsB \ + -n 2:0:+2G -t 2:8300 -c 2:rootfsA \ + -n 3:0:+2G -t 3:8300 -c 3:rootfsB \ -n 4:0:0 -t 4:8300 -c 4:data losetup -D @@ -75,11 +65,18 @@ mkfs.ext4 -F "${TMP_LOOP}p2" mkfs.ext4 -F "${TMP_LOOP}p3" mkfs.ext4 -F "${TMP_LOOP}p4" -mkdir -p /mnt/img-root +mkdir -p /mnt/img-root /mnt/data mount "${TMP_LOOP}p2" /mnt/img-root +mount "${TMP_LOOP}p4" /mnt/data +# Put the real /var onto the data partition +cp -a "$ROOTFS/var" /mnt/data/ + +# Copy rootfs to root partition, but exclude /var cp -a "$ROOTFS"/. /mnt/img-root/ +rm -rf /mnt/img-root/var +mkdir -p /mnt/img-root/var mkdir -p /mnt/img-root/boot cp /build/Image.gz /mnt/img-root/boot/Image.gz @@ -88,6 +85,7 @@ cp /build/${DEVICE_TREE_TARGET}.dtb /mnt/img-root/boot/${DEVICE_TREE_TARGET}.dtb sync umount /mnt/img-root +umount /mnt/data losetup -d "$LOOP" diff --git a/alpine/preload-k8s-images.sh b/alpine/preload-k8s-images.sh index a1aa0f8..e209268 100755 --- a/alpine/preload-k8s-images.sh +++ b/alpine/preload-k8s-images.sh @@ -22,7 +22,7 @@ FUSE_OVERLAYFS="${FUSE_OVERLAYFS:-/usr/bin/fuse-overlayfs}" ARCHIVE_DIR="${KUBE_IMG_CACHE}/archives/${ARCH}/${KUBE_VERSION}" # Seed directly into the target rootfs image store. -TARGET_GRAPHROOT="${ROOTFS}/var/lib/containers/storage" +TARGET_GRAPHROOT="${ROOTFS}/usr/lib/monok8s/imagestore" # Build-host temporary runtime state for containers/storage. TMPDIR="$(mktemp -d)" @@ -117,4 +117,4 @@ done echo echo "Done." echo "Archives: ${ARCHIVE_DIR}" -echo "CRI-O storage: ${TARGET_GRAPHROOT}" \ No newline at end of file +echo "CRI-O storage: ${TARGET_GRAPHROOT}" diff --git a/alpine/rootfs-extra/etc/containers/storage.conf b/alpine/rootfs-extra/etc/containers/storage.conf new file mode 100644 index 0000000..aae2d5e --- /dev/null +++ b/alpine/rootfs-extra/etc/containers/storage.conf @@ -0,0 +1,9 @@ +[storage] +driver = "overlay" +runroot = "/run/containers/storage" +graphroot = "/var/lib/containers/storage" + +[storage.options] +additionalimagestores = [ + "/usr/lib/monok8s/imagestore" +] diff --git a/alpine/rootfs-extra/etc/fstab b/alpine/rootfs-extra/etc/fstab index 0a60008..f590c2a 100644 --- a/alpine/rootfs-extra/etc/fstab +++ b/alpine/rootfs-extra/etc/fstab @@ -1,2 +1,3 @@ PARTLABEL=config /opt/monok8s/config vfat defaults,noatime 0 0 PARTLABEL=data /data ext4 defaults,noatime 0 21 +/data/var /var none rbind,noatime 0 0 diff --git a/docs/partitions.md b/docs/partitions.md new file mode 100644 index 0000000..b2bc2fe --- /dev/null +++ b/docs/partitions.md @@ -0,0 +1,17 @@ +## config +The first partition (vfat). +``` +/opt/monok8s/config # Config for starting up the cluster, flags, upgrade state, node identity +``` + +## Rootfs A/B (readonly) +OS partition for A/B deployment + + +## data +``` +/data/ +├── var/ # mounted to /var +├── var/lib/registry # overlay to upperdir for /var/lib/registry +└── etc-upper/ # optional split if you want control +```