Install from a USB Pen

Fbsd1 fbsd1 at a1poweruser.com
Sat Jul 18 03:43:19 UTC 2009


Fbsd1 wrote:
>>
> 
> dd if=8.0-BETA1-i386-memstick.img of=/dev/da0   worked
> 
> I used my laptop to boot from the usb memstick. The 8.0 sysinstall 
> started right up but it has problems. In this test i am booting off a 
> 2gb usb memstick containing the 8.0-BETA1-i386-memstick.img and 
> installing on a second 8gb memstick.
> 
> While trying to do a [STANDARD/KERNEL DEVELOPER] distribution sysinstall 
> issues error msg saying package index not on current media them gos on 
> to tell me that docproj, manpages, proflibs, dict, info, sbace, ssys and 
> srce are not on the media.
> 
> I take this to mean that they are missing from the 
> 8.0-BETA1-i386-memstick.img.
> 
> So I tried to install again this time doing a minimal selection. This 
> when through to completion but the resulting memstick was not bootable.
> 
> I'll try this test again when BETA2 is released.
> 


OK used the 8.0-BETA2-i386-memstick.img.

Took 3 times longer to download the 8.0-BETA1-i386-memstick.img that to 
download the 8.0-BETA1-i386-disc1.iso. I suggest you look into another 
method of creating the memstick.img so it downloads faster. dd does no 
compression of the data.

dd the memstick.img to my 2gb memstick ok. It booted ok.

Using a 8gb memstick as the target to install 8.0 on took 2 times longer 
than disc1 cd installing to same 8gb memstick.

Selected the [STANDARD/KERNEL DEVELOPER] distribution, It completed 
successfully, but the new 8.0 8gb memstick was not recognized as bootable.

Here is a script i have used in the past to convert the disc1.iso to 
bootable memstick. Maybe its better to add this script to the place 
where 8.0-BETA1-i386-disc1.iso is located in place of the memstick.img.
That way the 3 times larger memstick.img is not needed any more.



#!/bin/sh
#Purpose = Use to transfer the FreeBSD install cd1 to
#          a bootable 1GB USB flash drive so it can be used to install 
from.
#          First fetch the FreeBSD 7.1-RELEASE-i386-disc1.iso to your
#          hard drive /usr. Then execute this script from the command line
# fbsd2usb /usr/7.1-RELEASE-i386-disc1.iso /usr/7.1-RELEASE-i386-disc1.img
# Change system bios to boot from USB-dd and away you go.

# NOTE: This script has to be run from root and your 1GB USB flash drive
#       has to be plugged in before running this script.

# On the command line enter fbsd2usb iso-path img-path

# 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

# Temp  directory to be used later
#export tmpdir=$(mktemp -d -t fbsdmount)
export tmpdir=$(mktemp -d /usr/fbsdmount)

export isodev=$(mdconfig -a -t vnode -f ${isoimage})

ISOSIZE=$(du -k ${isoimage} | awk '{print $1}')
SECTS=$((($ISOSIZE + ($ISOSIZE/5))*4))
#SECTS=$((($ISOSIZE + ($ISOSIZE/5))*2))

echo " "
echo "### Initializing image File started ###"
echo "### This will take about 4 minutes ###"
date
dd if=/dev/zero of=${imgoutfile} count=${SECTS}
echo "### Initializing image File completed ###"
date

echo " "
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 " "
echo "### Started Copying files to the image now ###"
echo "### This will take about 15 minutes ###"
date

( cd ${tmpdir}/iso && find . -print -depth | cpio -dump ${tmpdir}/img )

echo "### Completed Copying files to the image ###"
date

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

echo " "
echo "### Started writing image to flash drive now ###"
echo "### This will take about 30 minutes ###"
date
dd if=${imgoutfile} of=/dev/da0 bs=1m
echo "### Completed writing image to flash drive at ###"
date

cleanup() {
     umount ${tmpdir}/iso
     mdconfig -d -u ${isodev}
     umount ${tmpdir}/img
     mdconfig -d -u ${imgdev}
     rm -rf ${tmpdir}
}

cleanup

ls -lh ${imgoutfile}

echo "### Script finished ###"






More information about the freebsd-questions mailing list