From owner-svn-src-head@FreeBSD.ORG Sat Feb 20 09:39:48 2010 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E814A1065670 for ; Sat, 20 Feb 2010 09:39:48 +0000 (UTC) (envelope-from decado@gmail.com) Received: from mail-gx0-f221.google.com (mail-gx0-f221.google.com [209.85.217.221]) by mx1.freebsd.org (Postfix) with ESMTP id 9DBFF8FC0C for ; Sat, 20 Feb 2010 09:39:48 +0000 (UTC) Received: by gxk21 with SMTP id 21so620530gxk.13 for ; Sat, 20 Feb 2010 01:39:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from :user-agent:mime-version:to:subject:references:in-reply-to :x-enigmail-version:content-type:content-transfer-encoding; bh=+XfXnjUE0sNyihksUCt5wRkwSzK2IT317KWBPP8s7fI=; b=hnmXnYuz1a06YGDGgb0hmq3QXMvxemRxAgd8m/8oQ01mWuZFQl//23tuAMF6sTarD7 H3WuXvUUoH4x9vqSY3f2/7VHGuU+skLgHogg0dLcqO4Km0xNK6XUxCeJT0r2O20v7inb qW13gQNq1jYn00VMqfqc1RjlSyxP4Nq7juuu4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; b=p5HMMnPndGIlQlKpTTa8ovkFARkyLubJkmlFN1dbl0arZZfPY5QfoeK+7pAnpZVqVa oTv3p4YBHuEhD10g8ghz8iomTiG+hoxMafM4avhEYJlqzAYls1GB3gHZNI0I5cs9WLAl fc9cUyRolNLiQoY6uuz6DTVclpcA1GKFw4cbM= Received: by 10.150.194.16 with SMTP id r16mr144956ybf.194.1266657104300; Sat, 20 Feb 2010 01:11:44 -0800 (PST) Received: from ?192.168.20.100? (CPE-121-220-37-25.lnse2.win.bigpond.net.au [121.220.37.25]) by mx.google.com with ESMTPS id 5sm483175yxd.35.2010.02.20.01.11.41 (version=TLSv1/SSLv3 cipher=RC4-MD5); Sat, 20 Feb 2010 01:11:43 -0800 (PST) Message-ID: <4B7FB534.5000701@gmail.com> Date: Sat, 20 Feb 2010 20:11:00 +1000 From: "Andrew D. Boyd" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20100111 Thunderbird/3.0.1 MIME-Version: 1.0 To: svn-src-head@freebsd.org References: <201002181545.o1IFjiAq007348@svn.freebsd.org> In-Reply-To: <201002181545.o1IFjiAq007348@svn.freebsd.org> X-Enigmail-Version: 1.0.1 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Subject: Re: svn commit: r204044 - head/release/scripts X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Feb 2010 09:39:49 -0000 On 19/02/2010 1:45 AM, Ken Smith wrote: > Author: kensmith > Date: Thu Feb 18 15:45:43 2010 > New Revision: 204044 > URL: http://svn.freebsd.org/changeset/base/204044 > > Log: > Provide a script that can be used to create the memstick images. For now > it isn't being integrated into 'make release' because for the forseeable > future the memstick images will be identical to what's on the DVD except > for which package set is provided. If/when what's on the memstick diverges > from what's on the DVD it would make more sense to generate a "memstick" > directory in $CHROOT/R/cdrom and build the memstick image along with the > ISO images. > > Reviewed by: jhb, ru, Garrett Cooper (yanefbsd at gmail dot com) > > Added: > head/release/scripts/make-memstick.sh (contents, props changed) > > Added: head/release/scripts/make-memstick.sh > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ head/release/scripts/make-memstick.sh Thu Feb 18 15:45:43 2010 (r204044) > @@ -0,0 +1,83 @@ > +#!/bin/sh > +# > +# This script generates a "memstick image" (image that can be copied to a > +# USB memory stick) from a directory tree. Note that the script does not > +# clean up after itself very well for error conditions on purpose so the > +# problem can be diagnosed (full filesystem most likely but ...). > +# > +# Usage: make-memstick.sh > +# > +# $FreeBSD$ > +# > + > +PATH=/bin:/usr/bin:/sbin:/usr/sbin > +export PATH > + > +BLOCKSIZE=10240 > + > +if [ $# -ne 2 ]; then > + echo "make-memstick.sh /path/to/directory /path/to/image/file" > + exit 1 > +fi > + > +tempfile="${2}.$$" > + > +if [ ! -d ${1} ]; then > + echo "${1} must be a directory" > + exit 1 > +fi > + > +if [ -e ${2} ]; then > + echo "won't overwrite ${2}" > + exit 1 > +fi > + > +rm -f ${tempfile} > +makefs ${tempfile} ${1} > +if [ $? -ne 0 ]; then > + echo "makefs failed" > + exit 1 > +fi > + > +# > +# Use $BLOCKSIZE for transfers to improve efficiency. When calculating > +# how many blocks to transfer "+ 2" is to account for truncation in the > +# division and to provide space for the label. > +# > + > +filesize=`stat -f "%z" ${tempfile}` > +blocks=$(($filesize / ${BLOCKSIZE} + 2)) > +dd if=/dev/zero of=${2} bs=${BLOCKSIZE} count=${blocks} > +if [ $? -ne 0 ]; then > + echo "creation of image file failed" > + exit 1 > +fi > + > +unit=`mdconfig -a -t vnode -f ${2}` > +if [ $? -ne 0 ]; then > + echo "mdconfig failed" > + exit 1 > +fi > + > +fdisk -BIq /dev/${unit} > +if [ $? -ne 0 ]; then > + echo "fdisk failed" > + exit 1 > +fi > + > +bsdlabel -B -w /dev/${unit} > +if [ $? -ne 0 ]; then > + echo "bsdlabel failed" > + exit 1 > +fi > + > +dd if=${tempfile} of=/dev/${unit}a bs=$BLOCKSIZE conv=sync > +if [ $? -ne 0 ]; then > + echo "copying filesystem into image file failed" > + exit 1 > +fi > + > +mdconfig -d -u ${unit} > + > +rm -f ${tempfile} > + > _______________________________________________ > svn-src-head@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/svn-src-head > To unsubscribe, send any mail to "svn-src-head-unsubscribe@freebsd.org" > I think trap should be used to clean up the tempfile in the case of the script exiting before cleaning it up. -- Andrew D. Boyd (decado@gmail.com)