# HG changeset patch # Parent 68c09bf8da30c9f04951400604f6bbbe13ae0bd6 Use NO_ROOT and mkimg / makefs to build partitions. diff -r 68c09bf8da30 tools/tools/nanobsd/defaults.sh --- a/tools/tools/nanobsd/defaults.sh +++ b/tools/tools/nanobsd/defaults.sh @@ -298,8 +298,8 @@ install_world ( ) ( ${NANO_MAKE} SRCCONF=${SRCCONF} \ __MAKE_CONF=${NANO_MAKE_CONF_INSTALL} installworld \ DESTDIR=${NANO_WORLDDIR} \ + METALOG=${NANO_OBJ}/_.metalog -DNO_ROOT -DWITHOUT_ROOT \ > ${NANO_OBJ}/_.iw 2>&1 - chflags -R noschg ${NANO_WORLDDIR} ) install_etc ( ) ( @@ -312,6 +312,7 @@ install_etc ( ) ( ${NANO_MAKE} SRCCONF=${SRCCONF} \ __MAKE_CONF=${NANO_MAKE_CONF_INSTALL} distribution \ DESTDIR=${NANO_WORLDDIR} \ + METALOG=${NANO_OBJ}/_.metalog -DNO_ROOT -DWITHOUT_ROOT \ > ${NANO_OBJ}/_.etc 2>&1 # make.conf doesn't get created by default, but some ports need it # so they can spam it. @@ -344,6 +345,7 @@ install_kernel ( ) ( SRCCONF='${SRCCONF}' \ __MAKE_CONF='${NANO_MAKE_CONF_INSTALL}' \ ${kernconfdir_arg} KERNCONF=${kernconf} \ + METALOG=${NANO_OBJ}/_.metalog -DNO_ROOT -DWITHOUT_ROOT \ ${modules_override_arg}" ) > ${NANO_OBJ}/_.ik 2>&1 ) @@ -500,7 +502,7 @@ populate_data_slice ( ) ( populate_slice "$1" "$2" "$3" "$4" ) -create_diskimage ( ) ( +create_diskimage_old ( ) ( pprint 2 "build diskimage" pprint 3 "log: ${NANO_OBJ}/_.di" @@ -662,6 +664,46 @@ create_diskimage ( ) ( ) > ${NANO_OBJ}/_.di 2>&1 ) +pop_slice ( ) ( + pprint 2 "Populating slice $4 of size $3 from $2 into file $1" + image=$1 + mtree=$2 + srcdir=$3 + size=$4 + label=$5 + + if [ $size -eq 0 ] ; then + sz_args="-f 20000" + else + sz_args="-f 20000 -s $size" + fi + if [ -z $mtree ]; then + src=$srcdir + else + src="$mtree" + cd $srcdir + fi + echo makefs -t ffs $sz_args $image $src + makefs -t ffs $sz_args $image $src > ${NANO_OBJ}/_.pop.$label 2>&1 +) + +create_diskimage ( ) ( + pprint 2 "build diskimage" + pprint 3 "log: ${NANO_OBJ}/_.di" + + pprint 2 "" + + cp ${NANO_OBJ}/_.metalog ${NANO_OBJ}/_.mtree + pop_slice ${NANO_OBJ}/_.slice.root ${NANO_OBJ}/_.mtree ${NANO_WORLDDIR} ${NANO_CODESIZE} "s1a" + + pop_slice ${NANO_OBJ}/_.slice.cfg "" "${NANO_CFGDIR}" ${NANO_CONFSIZE} "s3" + + # Create Data slice, if any. + if [ $NANO_DATASIZE -ne 0 ] ; then + pop_slice ${NANO_OBJ}/_.slice.data "" "${NANO_DATADIR}" ${NANO_DATASIZE} "s4" + fi +) + last_orders () ( # Redefine this function with any last orders you may have # after the build completed, for instance to copy the finished