Installation from USB pen
- From: Dario Freni <saturnero@xxxxxxxxxxxx>
- Date: Wed, 22 Mar 2006 02:58:46 +0100
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:
./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
--
Dario Freni (saturnero@xxxxxxxxxxxx)
FreeSBIE developer (http://www.freesbie.org)
GPG Public key at http://www.saturnero.net/saturnero.asc
#!/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=0
set -u
if [ $# -lt 2 ]; then
echo "Usage: $0 source-iso-path output-img-path"
exit 1
fi
isoimage=$1; shift
imgoutfile=$1; shift
export tmpdir=$(mktemp -d -t fbsdmount)
# Temp file and directory to be used later
export tmpfile=$(mktemp -t bsdmount)
export isodev=$(mdconfig -a -t vnode -f ${isoimage})
echo "#### Building bootable UFS image ####"
ISOSIZE=$(du -k ${isoimage} | awk '{print $1}')
SECTS=$((($ISOSIZE + ($ISOSIZE/5))*2))
# Root partition size
echo "Initializing image..."
dd if=/dev/zero of=${imgoutfile} count=${SECTS}
ls -l ${imgoutfile}
export imgdev=$(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="comconsole, vidconsole"' >> ${tmpdir}/img/boot/loader.conf
elif [ ${serial} -eq 1 ]; then
echo "-h" > ${tmpdir}/img/boot.config
echo 'console="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}
Attachment:
signature.asc
Description: OpenPGP digital signature
- Follow-Ups:
- Re: Installation from USB pen
- From: Brooks Davis
- Re: Installation from USB pen
- Prev by Date: Re: repeatedly opening the same .so(s) is slow?
- Next by Date: Re: DRM kernel module for unichrome ?
- Previous by thread: DRM kernel module for unichrome ?
- Next by thread: Re: Installation from USB pen
- Index(es):
Relevant Pages
|
|