From owner-freebsd-hackers@FreeBSD.ORG Wed Mar 22 01:59:00 2006 Return-Path: X-Original-To: hackers@freebsd.org Delivered-To: freebsd-hackers@FreeBSD.ORG Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 59ADF16A424 for ; Wed, 22 Mar 2006 01:59:00 +0000 (UTC) (envelope-from saturnero@freesbie.org) Received: from jail1-fbsd4.consiagnet.it (jail1-fbsd4.consiagnet.it [83.149.128.151]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7119443D49 for ; Wed, 22 Mar 2006 01:58:59 +0000 (GMT) (envelope-from saturnero@freesbie.org) Received: from jail1-fbsd4.consiagnet.it (jail1-fbsd4.consiagnet.it [83.149.128.151]) by jail1-fbsd4.consiagnet.it (Postfix) with ESMTP id 4707B5766 for ; Wed, 22 Mar 2006 03:09:12 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.1.0 (2005-09-13) on cvs.freesbie.org X-Spam-Level: X-Spam-Status: No, score=0.7 required=5.0 tests=AWL,BAYES_00, RCVD_IN_NJABL_DUL,RCVD_IN_SORBS_DUL autolearn=no version=3.1.0 Received: from [192.168.99.16] (host129-150.pool875.interbusiness.it [87.5.150.129]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by jail1-fbsd4.consiagnet.it (Postfix) with ESMTP for ; Wed, 22 Mar 2006 03:09:11 +0100 (CET) Message-ID: <4420AF56.60106@freesbie.org> Date: Wed, 22 Mar 2006 02:58:46 +0100 From: Dario Freni User-Agent: Mozilla Thunderbird 1.5 (Macintosh/20051201) MIME-Version: 1.0 To: hackers@freebsd.org X-Enigmail-Version: 0.94.0.0 OpenPGP: url=http://www.saturnero.net/saturnero.asc Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig2FBDC65E07A585A0BE61730A" X-Virus-Scanned: ClamAV using ClamSMTP Cc: Subject: Installation from USB pen X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Mar 2006 01:59:00 -0000 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig2FBDC65E07A585A0BE61730A Content-Type: multipart/mixed; boundary="------------050405050109030309040603" This is a multi-part message in MIME format. --------------050405050109030309040603 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Hi everybody, attached a tiny script to convert a FreeBSD install iso image to a binary ufs image ready to be flashed e.g. on an USB pendrive. The size of the ufs image is calculated from the iso one. The usage for the script is quite simple: =2E/fbsd-install-iso2img.sh iso-path img-path Once you're done, you can dd the img directly to an USB pen. If you also want to make a serial-console install image just set the serial variable on top of the script to 1. This script is derived from another similar one that I made for the pfSense project. It was requested for those kind of systems which have an usb port booting-capable and a serial console. I hope you'll find it useful. Bye, Dario P.S.: beer-ware license --=20 Dario Freni (saturnero@freesbie.org) FreeSBIE developer (http://www.freesbie.org) GPG Public key at http://www.saturnero.net/saturnero.asc --------------050405050109030309040603 Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0"; name="fbsd-install-iso2img.sh" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="fbsd-install-iso2img.sh" #!/bin/sh # You can set some variables here. Edit them to fit your needs. # Set serial variable to 0 if you don't want serial console at all, # 1 if you want comconsole and 2 if you want comconsole and vidconsole serial=3D0 set -u if [ $# -lt 2 ]; then echo "Usage: $0 source-iso-path output-img-path" exit 1 fi isoimage=3D$1; shift imgoutfile=3D$1; shift export tmpdir=3D$(mktemp -d -t fbsdmount) # Temp file and directory to be used later export tmpfile=3D$(mktemp -t bsdmount) export isodev=3D$(mdconfig -a -t vnode -f ${isoimage}) echo "#### Building bootable UFS image ####" ISOSIZE=3D$(du -k ${isoimage} | awk '{print $1}') SECTS=3D$((($ISOSIZE + ($ISOSIZE/5))*2)) # Root partition size echo "Initializing image..." dd if=3D/dev/zero of=3D${imgoutfile} count=3D${SECTS} ls -l ${imgoutfile} export imgdev=3D$(mdconfig -a -t vnode -f ${imgoutfile}) bsdlabel -w -B ${imgdev} newfs -O1 /dev/${imgdev}a mkdir -p ${tmpdir}/iso ${tmpdir}/img mount -t cd9660 /dev/${isodev} ${tmpdir}/iso mount /dev/${imgdev}a ${tmpdir}/img echo "Copying files to the image..." ( cd ${tmpdir}/iso && find . -print -depth | cpio -dump ${tmpdir}/img ) #bzcat ${tmpdir}/iso/dist/root.dist.bz2 | mtree -PUr -p ${tmpdir}/img 2>&= 1 > /dev/null #echo "/dev/ufs/${UFS_LABEL} / ufs ro 1 1" > ${tmpdir}/img/etc/fstab if [ ${serial} -eq 2 ]; then echo "-D" > ${tmpdir}/img/boot.config echo 'console=3D"comconsole, vidconsole"' >> ${tmpdir}/img/boot/l= oader.conf elif [ ${serial} -eq 1 ]; then echo "-h" > ${tmpdir}/img/boot.config echo 'console=3D"comconsole"' >> ${tmpdir}/img/boot/loader.conf fi cleanup() { umount ${tmpdir}/iso mdconfig -d -u ${isodev} umount ${tmpdir}/img mdconfig -d -u ${imgdev} rm -rf ${tmpdir} ${tmpfile} } cleanup ls -lh ${imgoutfile} --------------050405050109030309040603-- --------------enig2FBDC65E07A585A0BE61730A Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (Darwin) iD8DBQFEIK9Zymi72IiShysRAu8+AKCElEiMHVt7GunLqvwaIZcR6jyW0ACg99pl 0VcbP2t0seCu755/vrdTiE0= =Pxc5 -----END PGP SIGNATURE----- --------------enig2FBDC65E07A585A0BE61730A--