Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 27 May 2026 00:37:02 +0000
From:      Jose Luis Duran <jlduran@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: dadbbccd8049 - main - nanobsd: Account for metadata overhead in code slice
Message-ID:  <6a163cae.3fc9c.3976a787@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by jlduran:

URL: https://cgit.FreeBSD.org/src/commit/?id=dadbbccd804980895a098b01f553b5f7193daa81

commit dadbbccd804980895a098b01f553b5f7193daa81
Author:     Jose Luis Duran <jlduran@FreeBSD.org>
AuthorDate: 2026-05-27 00:14:56 +0000
Commit:     Jose Luis Duran <jlduran@FreeBSD.org>
CommitDate: 2026-05-27 00:14:56 +0000

    nanobsd: Account for metadata overhead in code slice
    
    The code slice size (CODE_SIZE) includes 16 sectors reserved for disk
    metadata (see bsdlabel(8) offset).  Subtract these 16 sectors from the
    total size passed to nano_makefs.
    
    This prevents the generated filesystem from consuming the entire slice
    allocation, ensuring there is enough space for the metadata without
    overflowing the partition boundary.
    
    Reviewed by:    imp
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D57220
---
 tools/tools/nanobsd/legacy.sh | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/tools/tools/nanobsd/legacy.sh b/tools/tools/nanobsd/legacy.sh
index 670a2f5ca968..8e57163c030d 100644
--- a/tools/tools/nanobsd/legacy.sh
+++ b/tools/tools/nanobsd/legacy.sh
@@ -31,6 +31,10 @@
 [ -n "$NANO_SECTS" ] || NANO_SECTS=63
 [ -n "$NANO_HEADS" ] || NANO_HEADS=16
 
+# The first partition should start at offset 16,
+# because the first 16 sectors are reserved for metadata.
+METADATA_SECTS=16
+
 # Functions and variable definitions used by the legacy nanobsd
 # image building system.
 
@@ -127,7 +131,7 @@ create_code_slice() {
 	trap "echo 'Running exit trap code' ; df -i ${MNT} ; nano_umount ${MNT} || true ; mdconfig -d -u $MD" 1 2 15 EXIT
 
 	gpart create -s bsd "${MD}"
-	gpart add -t freebsd-ufs -b 16 "${MD}"
+	gpart add -t freebsd-ufs -b "${METADATA_SECTS}" "${MD}"
 	if [ -f ${NANO_WORLDDIR}/boot/boot ]; then
 		echo "Making bootable partition"
 		gpart bootcode -b ${NANO_WORLDDIR}/boot/boot ${MD}
@@ -172,8 +176,8 @@ _create_code_slice() {
 		echo "Partition will not be bootable"
 	fi
 	nano_makefs "-DxZ ${NANO_MAKEFS} -o minfree=0,optimization=space" \
-	    "${NANO_METALOG}" "${CODE_SIZE}" "${NANO_OBJ}/_.disk.part" \
-	    "${NANO_WORLDDIR}"
+	    "${NANO_METALOG}" "$(( CODE_SIZE - METADATA_SECTS ))" \
+	    "${NANO_OBJ}/_.disk.part" "${NANO_WORLDDIR}"
 	mkimg -s bsd \
 	    ${bootcode} \
 	    -p freebsd-ufs:="${NANO_OBJ}/_.disk.part" \
@@ -308,8 +312,8 @@ _create_diskimage() {
 		echo "Duplicating to second image..."
 		tgt_switch_root_fstab "${NANO_SLICE_ROOT}" "${NANO_SLICE_ALTROOT}"
 		nano_makefs "-DxZ ${NANO_MAKEFS} -o minfree=0,optimization=space" \
-		    "${NANO_METALOG}" "${CODE_SIZE}" "${NANO_OBJ}/_.altroot.part" \
-		    "${NANO_WORLDDIR}"
+		    "${NANO_METALOG}" "$(( CODE_SIZE - METADATA_SECTS ))" \
+		    "${NANO_OBJ}/_.altroot.part" "${NANO_WORLDDIR}"
 		tgt_switch_root_fstab "${NANO_SLICE_ALTROOT}" "${NANO_SLICE_ROOT}"
 		if [ -f "${NANO_WORLDDIR}/boot/boot" ]; then
 			bootcode="-b ${NANO_WORLDDIR}/boot/boot"


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a163cae.3fc9c.3976a787>