Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Sep 2014 23:30:13 +0000
From:      Twitter <>
To:        Plemmons Gertrudis <>
Subject:   Confirm your Twitter account, gertrudisgc624!
Message-ID:  <>

Next in thread | Raw E-Mail | Index | Archive | Help
Plemmons Gertrudis,
Please confirm your Twitter account

Confirming your account will give you full access to Twitter and all future notifications will be sent to this email address.

Confirm your account now:


Forgot your Twitter password? Get instructions on how to reset it:

Need help?

If you received this message in error and did not sign up for a Twitter account, click on the url below:
From owner-freebsd-questions@FreeBSD.ORG  Mon Sep 15 05:12:53 2014
Return-Path: <owner-freebsd-questions@FreeBSD.ORG>
Received: from (
 (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits))
 (No client certificate requested)
 by (Postfix) with ESMTPS id CD21B862
 for <>; Mon, 15 Sep 2014 05:12:53 +0000 (UTC)
Received: from ( [])
 (using TLSv1 with cipher AES256-SHA (256/256 bits))
 (Client did not present a certificate)
 by (Postfix) with ESMTPS id 899C99E4
 for <>; Mon, 15 Sep 2014 05:12:53 +0000 (UTC)
Received: from [] (helo=tiny-r269739)
 by with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)
 (Exim 4.76) (envelope-from <>)
 id 1XTOam-0005Gs-SR; Mon, 15 Sep 2014 07:12:49 +0200
Date: Mon, 15 Sep 2014 07:12:42 +0200
From: Matthias Apitz <>
To: Mehmet Erol Sanliturk <>
Subject: Re: Using the ISO releases on USB sticks.
Message-ID: <20140915051242.GA1175@tiny-r269739>
Reply-To: Matthias Apitz <>
Mail-Followup-To: Matthias Apitz <>,
 Mehmet Erol Sanliturk <>,
 FreeBSD Questions Mailing List <>
References: <>
 <lv4oa8$md4$> <20140914192419.GA1559@tiny-r269739>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <>
X-Operating-System: FreeBSD 11.0-CURRENT r269739 (i386)
User-Agent: Mutt/1.5.23 (2014-03-12)
X-Con-Id: 51246
X-Con-U: 0-guru
Cc: FreeBSD Questions Mailing List <>
X-Mailman-Version: 2.1.18-1
Precedence: list
List-Id: User questions <>
List-Unsubscribe: <>, 
List-Archive: <>;
List-Post: <>
List-Help: <>
List-Subscribe: <>, 
X-List-Received-Date: Mon, 15 Sep 2014 05:12:53 -0000

El día Sunday, September 14, 2014 a las 01:55:44PM -0700, Mehmet Erol Sanliturk escribió:

> On Sun, Sep 14, 2014 at 12:24 PM, Matthias Apitz <> wrote:
> > I always test new versions of FreeBSD on USB keys, right now while
> > typing I run a 11-CURRENT with KDE ... and mutt as MUA booted from an USB
> > key, while the disk in the laptop has still an older FreeBSD.
> >
> > The procedure to creat a boot-able USB key is simple:
> >
> > - make a file system on it
> > - mount it to /mnt
> > - do 'make installkernel' and 'make installworld' with DESTDIR=/mnt
> > - enrich the file system in /mnt with some stuff (for example install
> >   packages into it with 'chroot /mnt pkg install ...')
> > - unmount and reboot
> >
> > even better, if you do not use an USB key directly, but do all the above
> > to a mdconfig file system (a file system in a normal plain file) and
> > copy later the result with dd(1) to the real USB key;
> >
> > let me know if you need a detailed procedure of it.
> >
> Dear Matthias ,
> If you supply such an algorithm , me and other people may use it to
> generate boot-able USB sticks with some installed packages .
> Thank you very much .
> Mehmet Erol Sanliturk

here it comes; comments are always welcome;


$Id: buildingImage.txt,v 1.15 2014/08/15 17:39:21 guru Exp $

       Building bootable FreeBSD/i386 USB keys 

This small howto file describes how to build and enrich bootable USB keys.
Some ideas are stolen from:

File operations, esp. of a large amount of small files, are very SLOW
on USB keys. That's why we use in general the following procedure:

1. dd(1) the complete /dev/da0 to a plain file, an image of the USB key;
2. use mdconfig(8) to make a memory disk of this file and mount(8) it;
3. do everything of the formatting and installation in this virtual disk;
4. unmount(8) it and dd(1) it back to the USB key;

here we go (use for /dev/da0 what your key is in /var/log/messages):

check the size of your USB key with:

# dd if=/dev/da0 of=/dev/null bs=8m
1878+1 records in
1878+1 records out
15758000128 bytes transferred in 783.312179 secs (20117139 bytes/sec)

note: this step is essential to define an image which later fits again to the
real USB key; my "16 Gbyte" keys vary between 1868 and 1914 blocks of 8m
(which is ofc lesse than 16 GByte); that's why I decided to use always the
number 1860 for my keys of this "16 marketing GBytes".

now we create an empty large disk file of this size 1860 blocks of 8m:

# dd if=/dev/zero of=da0.r269739 bs=8m count=1860

attach the file da0.r269739 as a memory disk:

# mdconfig -a -t vnode -f da0.r269739

now we use the normal procedure to create a bootable UFS on /dev/md0:

# fdisk -I md0
# fdisk -B md0
# bsdlabel -w md0s1 auto
# bsdlabel -B md0s1
# bsdlabel -e md0s1  # edit the disk label and change partition "a" from "unused" to "4.2BSD"

build the file system:

# newfs /dev/md0s1a
# mount /dev/md0s1a /mnt

note: if your running host system is older than 20121201 (see src/UPDATING) you
must add some new user if you try to install 'head':

# pw useradd -n auditdistd -g audit -c "Auditdistd unprivileged user" -d /var/empty -s /usr/sbin/nologin

install the system from your host which must have been compiled
in /usr/src; if you compiled it in another place check for MAKEOBJDIRPREFIX

# cd /usr/src
# make installworld  DESTDIR=/mnt
# make distrib-dirs  DESTDIR=/mnt
# make distribution  DESTDIR=/mnt

the new system in /mnt needs some files to start:

# echo /dev/da0s1a / ufs rw,noatime 1 1 > /mnt/etc/fstab
# cp /etc/wpa_supplicant.conf /mnt/etc

# cat <<EOF > /mnt/etc/rc.conf
ifconfig_wlan0="WPA DHCP"
# powerd
powerd_flags="-a max -b adp"

# cat <<EOF > /mnt/boot/loader.conf"10000""3000"

to use the above created USB key to install another system (the EeePC for
example, or the Acer) we need 'src' and 'obj' as well on the key:

# cd /usr
# cp -Rp src /mnt/usr
# cp -Rp obj /mnt/usr

but remove the SVN control files from the copied soure tree:

# rm -rf /mnt/usr/src/.svn

enrich the USB key with the prepared packages:

# cd /usr/local/poudriere/data/packages/freebsd-head-ports-head/All
# cp -p * /mnt/PKGDIR

o run later

# cd /usr/local/poudriere/data/packages/freebsd-head-ports-head/All
# rsync -avz . /mnt/PKGDIR

as well we need in 11-CURRENT now the new pkg(8) command; we compile
the old way ports-mgmt/pkg-devel and install only 'pkg-static' into
the /mnt system:

# cd /usr/ports/ports-mgmt/pkg-devel
# make install
# chroot /mnt mkdir -p /usr/local/sbin
# cp -p /usr/local/sbin/pkg-static /mnt/usr/local/sbin

let's see if this works:

# chroot /mnt /usr/local/sbin/pkg-static help

first we have to build the 'repo' from the directory of all
packages; we run:

# chroot /mnt pkg-static repo /PKGDIR
Creating repository in /PKGDIR: 83%
Packing files for repository: 100%

the recent version of pkg(8) needs in any case the definition
of the respository; we create the myrepo.conf file as:

# chroot /mnt mkdir -p /usr/local/etc/pkg/repos
# vim /mnt/usr/local/etc/pkg/repos/myrepo.conf
# cat /mnt/usr/local/etc/pkg/repos/myrepo.conf

           FreeBSD: {
               url: "file:/PKGDIR",
               enabled: true,

now we are able to install any stuff (and its dependencies), here
as an example 'autoconf-2.69' and its dependencies:

# chroot /mnt pkg-static -R /usr/local/etc/pkg/repos/  install autoconf-2.69
Updating repository catalogue
FreeBSD repository is up-to-date
All repositories are up-to-date
The following 5 packages will be affected (of 0 checked):

New packages to be INSTALLED:
        autoconf: 2.69
        indexinfo: 0.2
        perl5: 5.16.3_11
        m4: 1.4.17_1,1
        autoconf-wrapper: 20131203

The process will require 45 MB more space
13 MB to be downloaded

Proceed with this action [y/N]: y
Fetching autoconf-2.69.txz: 100% of 529 KB                                   
Fetching indexinfo-0.2.txz: 100% of 6 KB                                       
Fetching perl5-5.16.3_11.txz: 100% of 12 MB                                   
Fetching m4-1.4.17_1,1.txz: 100% of 183 KB                                   
Fetching autoconf-wrapper-20131203.txz: 100% of 4 KB                           
Checking integrity... done (0 conflicting)
[1/5] Installing indexinfo-0.2: 100%
[2/5] Installing perl5-5.16.3_11: 100%
[3/5] Installing m4-1.4.17_1,1: 100%
[4/5] Installing autoconf-wrapper-20131203: 100%
[5/5] Installing autoconf-2.69: 100%

are they really there?:

# chroot /mnt pkg-static info                          
autoconf-2.69                  Automatically configure source code on many Un*x platforms
autoconf-wrapper-20131203      Wrapper script for GNU autoconf
indexinfo-0.2                  Utility to regenerate the GNU info page index
m4-1.4.17_1,1                  GNU m4
perl5-5.16.3_11                Practical Extraction and Report Language

later, when the system we building in /mnt is booted, we can use
pkg-static directly with the same repo, we do:

# pkg-static -R /usr/local/etc/pkg/repos/  install foo-x.x

copy some initial xorg.conf files to see what we can make use
of them later:

# cp /etc/X11/xorg.* /mnt/etc/X11

add an unpriv user 'guru' (for beeing able to SSH-in):

# chroot /mnt /usr/sbin/adduser

and enrich its HOME with files to bringup KDE:

# cp -p ~guru/.xinitrc   /mnt/home/guru
# cp -p ~guru/.xserverrc /mnt/home/guru

umount the key, detach the memory disk and copy the image back
with dd(1) to the USB device:

# umount /mnt
# mdconfig -d -u md0
# dd if=da0.r269739 of=/dev/da0 bs=8m

soem more hints for special cases:

If we have the real USB device locally, but the image on a laptop
without USB ports, one may use:

# ssh -C root@ dd of=/dev/da1 bs=8m < da0-r269739
0+823717 records in
1868+0 records out
15669919744 bytes transferred in 12135.626342 secs (1291233 bytes/sec)
(i.e. around 3h 17min)

To write the image from the VM to Ubuntu's USB port:

$ ssh -C
$ sudo chmod 0666 /dev/sdb
$ ssh -C dd of=/dev/sdb bs=8M < da0-r269739

MAKEOBJDIRPREFIX hints to compile in and install from some other places:

If you want to build world and kernel out of SVN in 'src' and into 'obj', but in
some other place as /usr/[src|obj], for example in /home/guru/head/[src|obj]
use this procedure:

# mkdir -p /home/guru/head/obj
# MAKEOBJDIRPREFIX=/home/guru/head/obj ; export MAKEOBJDIRPREFIX
# cd /home/guru/head
# svn checkout svn:// src

# cd /home/guru/head/src
# make buildworld
# make buildkernel KERNCONF=GENERIC

if you have built the kernel and world in some other place as /usr/src:

# MAKEOBJDIRPREFIX=/home/guru/head/obj ; export MAKEOBJDIRPREFIX
# cd /home/guru/head/src
# make installworld  DESTDIR=/mnt
# make distrib-dirs  DESTDIR=/mnt
# make distribution  DESTDIR=/mnt

to use the key to install other system, you must have 'src' and 'obj'
again in the correct places; do:

# mkdir -p /mnt/usr/home/guru/head/
# cd /mnt
# ln -s usr/home home

# cd /home/guru/head/
# cp -Rp src /mnt/home/guru/head/    # 40 mins
# cp -Rp obj /mnt/home/guru/head/    # 20 mins

Matthias Apitz               |  /"\   ASCII Ribbon Campaign:
E-mail:     |  \ /   - No HTML/RTF in E-mail
WWW: |   X    - No proprietary attachments
phone: +49-170-4527211       |  / \   - Respect for open standards

Want to link to this message? Use this URL: <>