Sunday, November 23, 2014

FreeBSD 9.2 Feature Highlight: ZFS General Improvements

Along with the many user facing changes discussed previously, there are also a number of internal changes to ZFS that will be available with the release of FreeBSD 9.2.

  • Asynchronous destruction of datasets - ZFS will no longer make you wait while it does the house keeping to destroy a dataset and free the space that was formerly used by that dataset, the zfs command will return and the work will continue in the background
  • Structural changes to the way snapshots track blocks that have changed and are no longer part of the snapshot, these changes result in higher performance when there are many snapshots and also reduce the space utilized by snapshots
  • Single Copy ARC - The ZFS ARC (Adaptive Replacement Cache) is where ZFS caches data and metadata to improve performance. In previous versions of ZFS, if you accessed the same block from a dataset, and then from a clone or snapshot of that dataset, that block would end up in the ARC twice. With this improvement the block will only be stored in the ARC once allowing more unique blocks to be cached at one time
  • ZIO nop-write - If your dataset has a cryptographically secure hash (SHA256) and dataset compression enabled, ZFS will now compare the checksum of the compressed block with the existing block before it is written. If the hashes match then the block is not written, saving I/O as well as reducing space consumption (if there were any snapshots of the block that would have changed, then additional space would have been consumed)
  • Parallel processing of free operations - Previous versions of ZFS only used a single thread to reclaim free space. The new system now frees blocks asynchronously in parallel
  • Spacemap improvements - The latest version of ZFS includes enhancements that greatly improve write performance to highly fragmented pools 
  • Improved DTrace support - A number of new DTrace probes have been added to ZFS to make it easier to track what is happening inside ZFS. Additionally a new error probe has been implemented throughout ZFS that will make it easier to pinpoint the source of any error messages

In addition to the above, it is also now possible to add a comment to a zpool which is output as part of the list returned by the zpool import command.

Friday, November 14, 2014

FreeBSD 10.1-RELEASE Now Available

FreeBSD 10.1-RELEASE Announcement

The FreeBSD Release Engineering Team is pleased to announce the availability of FreeBSD 10.1-RELEASE. This is the second release of the stable/10 branch, which improves on the stability of FreeBSD 10.0-RELEASE and introduces some new features.

Some of the highlights:
  • The new console driver, vt(4), has been added.
  • Support for FreeBSD/i386 guests has been added to bhyve(4).
  • The bhyve(4) hypervisor now supports booting from a zfs(8) filesystem.
  • Support for SMP was added to the armv6 kernels and enabled by default in the configuration files for all platforms that contain multi-core CPUs.
  • Initial support for UEFI boot has been added for the FreeBSD/amd64 architecture.
  • Support has been added to cache geli(8) passphrases during system boot.
  • Support for the UDP-Lite protocol (RFC 3828) has been added to the IPv4 and IPv6 stacks.
  • The new filesystem automount facility, autofs(5), has been merged from FreeBSD-CURRENT.
  • The sshd(8) rc.d(8) startup script now generates ED25519 sshd(8) host keys if keys do not already exist when ssh_keygen_alg() is invoked.
  • OpenSSH has been updated to version 6.6p1.
  • The nc(1) utility has been updated to match the version in OpenBSD 5.5.
  • Sendmail has been updated to 8.14.9.
  • The unbound(8) caching resolver and ldns have been updated to version 1.4.22.
  • OpenPAM has been updated to Ourouparia (20140912).
  • OpenSSL has been updated to version 1.0.1j.
  • The pkg(8) package management utility has been updated to version 1.3.8.
For a complete list of new features and known problems, please see the online release notes and errata list, available at:
For more information about FreeBSD release engineering activities, please see:



FreeBSD 10.1-RELEASE is now available for the amd64, i386, ia64, powerpc, powerpc64, sparc64, and armv6 architectures.

FreeBSD 10.1-RELEASE can be installed from bootable ISO images or over the network. Some architectures also support installing from a USB memory stick. The required files can be downloaded via FTP as described in the section below. While some of the smaller FTP mirrors may not carry all architectures, they will all generally contain the more common ones such as amd64 and i386.

SHA256 and MD5 hashes for the release ISO and memory stick images are included in the PGP-signed version of this announcement, available at:
Additional UEFI-capable images are available for the amd64 (x86_64) architecture.

The purpose of the images provided as part of the release are as follows:
This contains everything necessary to install the base FreeBSD operating system, the documentation, and a small set of pre-built packages aimed at getting a graphical workstation up and running. It also supports booting into a "livefs" based rescue mode. This should be all you need if you can burn and use DVD-sized media.
This contains the base FreeBSD operating system. It also supports booting into a "livefs" based rescue mode. There are no pre-built packages.
This supports booting a machine using the CDROM drive but does not contain the installation distribution sets for installing FreeBSD from the CD itself. You would need to perform a network based install (e.g., from an FTP server) after booting from the CD.
This can be written to an USB memory stick (flash drive) and used to do an install on machines capable of booting off USB drives. It also supports booting into a "livefs" based rescue mode. There are no pre-built packages.

As one example of how to use the memstick image, assuming the USB drive appears as /dev/da0 on your machine something like this should work:

 # dd if=FreeBSD-10.1-RELEASE-amd64-memstick.img \
   of=/dev/da0 bs=10240 conv=sync
Be careful to make sure you get the target (of=) correct.
This can be written to an USB memory stick (flash drive) and used to boot a machine, but does not contain the installation distribution sets on the medium itself, similar to the bootonly image. It also supports booting into a "livefs" based rescue mode. There are no pre-built packages.

As one example of how to use the mini-memstick image, assuming the USB drive appears as /dev/da0 on your machine something like this should work:

 # dd if=FreeBSD-10.1-RELEASE-amd64-mini-memstick.img \
   of=/dev/da0 bs=10240 conv=sync
Be careful to make sure you get the target (of=) correct.
FreeBSD 10.1-RELEASE can also be purchased on CD-ROM or DVD from several vendors. One of the vendors that will be offering FreeBSD 10.1-based products is:
Pre-installed virtual machine images are also available for the amd64 (x86_64) and i386 (x86_32) architectures in QCOW2, VHD, and VMDK disk image formats, as well as raw (unformatted) images.



FreeBSD 10.1-RELEASE may be downloaded via ftp from the following site:
However before trying this site, please check your regional mirror(s) first by going to:
Any additional mirror sites will be labeled ftp2, ftp3 and so on.

More information about FreeBSD mirror sites can be found at:
FreeBSD 10.1-RELEASE virtual machine images may be downloaded via ftp from:
For instructions on installing FreeBSD or updating an existing machine to 10.1-RELEASE please see:



FreeBSD 10.1-RELEASE will be supported until January 1, 2017. The End-of-Life dates can be found at:


Other Projects Based on FreeBSD

There are many "third party" Projects based on FreeBSD. The Projects range from re-packaging FreeBSD into a more "novice friendly" distribution to making FreeBSD available on Amazon's EC2 infrastructure. For more information about these Third Party Projects see:



Many companies donated equipment, network access, or man-hours to support the release engineering activities for FreeBSD 10.1 including The FreeBSD Foundation, Yahoo!, NetApp, Internet Systems Consortium, ByteMark Hosting, Sentex Communications, New York Internet, Juniper Networks, NLNet Labs, iXsystems, and Yandex.

The release engineering team for 10.1-RELEASE includes:

Glen Barber <> Release Engineering Lead, 10.1-RELEASE Release Engineer
Konstantin Belousov <> Release Engineering
Joel Dahl <> Release Engineering
Baptiste Daroussin <> Package Building
Bryan Drewery <> Package Building
Marc Fonvieille <> Release Engineering, Documentation
Steven Kreuzer <> Release Engineering
Xin Li <> Release Engineering, Security Officer
Josh Paetzel <> Release Engineering
Colin Percival <> Security Officer Emeritus
Craig Rodrigues <> Release Engineering
Hiroki Sato <> Release Engineering, Documentation
Gleb Smirnoff <> Release Engineering
Ken Smith <> Release Engineering
Dag-Erling Smørgrav <> Security Officer
Marius Strobl <> Release Engineering
Robert Watson <> Release Engineering, Security



FreeBSD is a registered trademark of The FreeBSD Foundation.

Love FreeBSD? Support this and future releases with a donation to The FreeBSD Foundation!

Sunday, November 2, 2014

FreeBSD 10.1-RC4 Now Available

The fourth RC build of the 10.1-RELEASE release cycle is now available on the FTP servers for the amd64, armv6, i386, ia64, powerpc, powerpc64 and sparc64 architectures.

This is anticipated to be the final RC build of the 10.1-RELEASE cycle.

The image checksums follow are included in the original announcement email.

Installer images and memory stick images are available here.

If you notice problems you can report them through the Bugzilla PR system or on the -stable mailing list.

If you would like to use SVN to do a source based update of an existing system, use the "releng/10.1" branch.

A list of changes since 10.0-RELEASE are available here.

Changes between 10.1-RC3 and 10.1-RC4 include:
  •  Fix ATA CF ERASE breakage for certain CF cards.
  •  Fix a race in pmap_emulate_accessed_dirty() that could trigger a EPT misconfiguration VM-exit.
Important note to ZFS users on the i386 architecture:  Using multi-disk ZFS configurations on i386 (mirror, raidz-1, raidz-2, etc.) may cause
a kernel panic on boot.

Adding 'options KSTACK_PAGES=4' to the kernel configuration is observed to resolve the problem.  Please *do* *not* upgrade your system with freebsd-update(8) if using a multi-disk ZFS setup, since this will override the kernel configuration with the GENERIC kernel.

This is also mentioned in the 10.1-RELEASE Errata Documentation.
    Pre-installed virtual machine images for 10.1-RC4 are also available for amd64 and i386 architectures.  The images are located here.

    The disk images are available in QCOW2, VHD, VMDK, and raw disk image formats.  The image download size is approximately 135 MB, which decompress to a 20GB sparse image.

    The partition layout is:
    • 512k - freebsd-boot GPT partition type (bootfs GPT label)
    • 1GB  - freebsd-swap GPT partition type (swapfs GPT label)
    • ~17GB - freebsd-ufs GPT partition type (rootfs GPT label)
    To install packages from the dvd1.iso installer, create and mount the /dist directory:

    # mkdir -p /dist
    # mount -t cd9660 /dev/cd0 /dist

    Next, install pkg(8) from the DVD:

    # env REPOS_DIR=/dist/packages/repos pkg bootstrap

    At this point, pkg-add(8) can be used to install additional packages from the DVD.  Please note, the REPOS_DIR environment variable should be used each time using the DVD as the package repository, otherwise conflicts with packages from the upstream mirrors may occur when they are fetched.  For example, to install Gnome and Xorg, run:

    # env REPOS_DIR=/dist/packages/repos pkg install \
      xorg-server xorg gnome2 [...]

    The freebsd-update(8) utility supports binary upgrades of amd64 and i386 systems running earlier FreeBSD releases.  Systems running earlier
    FreeBSD releases can upgrade as follows:

    # freebsd-update upgrade -r 10.1-RC4

    During this process, freebsd-update(8) may ask the user to help by merging some configuration files or by confirming that the automatically
    performed merging was done correctly.

    # freebsd-update install

    The system must be rebooted with the newly installed kernel before continuing.

    # shutdown -r now

    After rebooting, freebsd-update needs to be run again to install the new userland components:

    # freebsd-update install
    It is recommended to rebuild and install all applications if possible, especially if upgrading from an earlier FreeBSD release, for example,
    FreeBSD 9.x.  Alternatively, the user can install misc/compat9x and other compatibility libraries, afterwards the system must be rebooted
    into the new userland:

    # shutdown -r now

    Finally, after rebooting, freebsd-update needs to be run again to remove stale files:

    # freebsd-update install

    Love FreeBSD?  Support this and future releases with a donation to the FreeBSD Foundation!