Re: makefs && gpart (...)

From: Nathan Whitehorn <nwhitehorn_at_freebsd.org>
Date: Thu, 01 Jan 2015 09:23:06 -0800
On 01/01/15 03:48, Matthias Apitz wrote:
>
> Hello,
>
> I have a small question and a small request re/ makefs && gpart:
>
> There is a script src/release/i386/make-memstick.sh to create an image
> from a full directory tree; the tree is result of
>
> make installworld DESTDIR=/tree
> make installkernel DESTDIR=/tree
>
> the script mainly does:
>
> ...
> makefs -B little -o label=FreeBSD_Install ${2} ${1}
> if [ $? -ne 0 ]; then
> 	echo "makefs failed"
> 	exit 1
> fi
> rm ${1}/etc/fstab
>
> unit=$(mdconfig -a -t vnode -f ${2})
> if [ $? -ne 0 ]; then
> 	echo "mdconfig failed"
> 	exit 1
> fi
> gpart create -s BSD ${unit}
> gpart bootcode -b ${1}/boot/boot ${unit}
> gpart add -t freebsd-ufs ${unit}
> mdconfig -d -u ${unit}
>
> As you can see, it does makefs first, and after this it creates the
> gpart structure in the image (i.e. in its memory file system).
> Why is this in this order and where exactly starts the file system
> created by makefs?


This is a quirk of BSD disklabels: the first partition can start at 
address 0 and the first 16 sectors of UFS2 file systems are reserved for 
the label headers. It's not portable to other partition schemes. For 
-CURRENT, this script has been replaced, by the way, and doesn't use BSD 
labels anymore.
-Nathan

>
> The request is: it would also be nice if 'make-memstick.sh' would allow
> to pass from the command line some values for the size of the file
> system to be created in the image; I modified it to fit my needs as:
>
>     size=15482880b
>     ...
>     makefs -B little -M ${size} -m ${size} -f 400000 ....
>
> Thanks
>
> 	matthias
>
Received on Thu Jan 01 2015 - 16:23:15 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:54 UTC