How to Install FreeBSD on a USB Drive for Portable Use on FreeBSD

Learn how to install FreeBSD on a USB drive for portable use on FreeBSD.

FreeBSD is a robust, secure, and highly customizable Unix-like operating system. One of its most practical applications is the ability to install and run it from a USB drive. This allows users to carry a portable FreeBSD environment for troubleshooting, testing, or personal use on different machines without affecting the host system.

This guide will walk you through the steps to install FreeBSD on a USB drive for portable use while using a FreeBSD system. The process includes preparing the USB drive, installing FreeBSD, configuring the system, and optimizing it for portability.

Prerequisites

Before beginning the installation, ensure you have the following:

  • A FreeBSD system with administrative (root) access.
  • A USB drive with at least 8GB of storage (preferably 16GB or more for better performance).
  • A stable internet connection.
  • A FreeBSD installation ISO or access to the system installer.
  • Basic knowledge of shell commands and disk partitioning in FreeBSD.

Step 1: Identify and Prepare the USB Drive

First, insert the USB drive into your FreeBSD system and identify its device name. Open a terminal and run:

ls /dev/da*

This will list all detected disk devices. The USB drive is usually identified as /dev/daX (where X is a number). Verify by checking disk information:

gpart show /dev/daX

Formatting the USB Drive

To format the USB drive properly, follow these steps:

  1. Erase existing partitions:

    gpart destroy -F /dev/daX
    
  2. Create a new GPT partition table:

    gpart create -s gpt /dev/daX
    
  3. Create the required partitions:

    gpart add -t freebsd-boot -s 512K -l boot /dev/daX
    gpart add -t freebsd-ufs -s 14G -l rootfs /dev/daX
    gpart add -t freebsd-swap -s 2G -l swap /dev/daX
    

    Adjust partition sizes based on your USB drive capacity.

  4. Install the FreeBSD bootcode:

    gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 /dev/daX
    
  5. Format the root filesystem:

    newfs -U /dev/gpt/rootfs
    
  6. Enable swap:

    swapon /dev/gpt/swap
    

Step 2: Install FreeBSD on the USB Drive

To install FreeBSD onto the USB drive, you can use the bsdinstall utility.

  1. Run the FreeBSD installer with:

    bsdinstall
    
  2. Select “Install” and choose the target disk as /dev/daX.

  3. Configure your desired installation settings (minimal install is recommended for USB-based use).

  4. Set the root password and configure networking if needed.

  5. When prompted, do not install bootloader (as we installed it manually earlier).

  6. Complete the installation and reboot the system.

After reboot, ensure the USB drive is recognized and accessible.

Step 3: Configure FreeBSD for Portability

A portable FreeBSD installation needs to be adaptable across different hardware. Here are key configurations:

1. Modify /etc/fstab

Since the USB drive may have different device names on different systems, use labels instead of fixed device names. Edit /etc/fstab:

vi /etc/fstab

Replace any hardcoded device names (e.g., /dev/daX) with labels:

/dev/gpt/rootfs   /   ufs   rw   1 1
/dev/gpt/swap     none   swap   sw   0 0

2. Enable Necessary Services

Enable services that improve compatibility across different machines:

sysrc moused_enable="YES"
sysrc dbus_enable="YES"
sysrc hald_enable="YES"
sysrc devd_enable="YES"

3. Install Essential Software

To make your portable FreeBSD installation more versatile, install useful utilities:

pkg install nano bash sudo

If you plan to use it as a rescue system, consider installing:

pkg install rsync vim htop tmux

4. Configure Networking

Since the portable system will be used on different machines, enable DHCP for automatic network configuration:

sysrc ifconfig_DEFAULT="DHCP"

Step 4: Optimize for Performance

Running an OS from a USB drive can be slower than from an SSD, but you can optimize it:

1. Reduce Write Operations

To extend USB lifespan and improve performance, limit unnecessary writes:

  • Mount /var and /tmp in memory:

    echo "tmpfs /var tmpfs rw,mode=1777 0 0" >> /etc/fstab
    echo "tmpfs /tmp tmpfs rw,mode=1777 0 0" >> /etc/fstab
    
  • Enable soft updates journaling for /:

    tunefs -n enable /dev/gpt/rootfs
    

2. Adjust System Logging

Reduce logging intensity:

sysrc syslogd_flags="-ss"

Step 5: Boot and Test the USB Drive

Now that FreeBSD is installed and configured for portability, it’s time to test it:

  1. Reboot your computer and enter the BIOS/UEFI setup.

  2. Change the boot order to prioritize USB booting.

  3. Select your FreeBSD USB drive as the boot device.

  4. Once the system boots up, verify that all services are running correctly:

    service --status-all
    
  5. Check network connectivity:

    ifconfig
    ping -c 3 google.com
    

Conclusion

Installing FreeBSD on a USB drive for portable use is a great way to carry your custom FreeBSD environment wherever you go. With careful partitioning, installation, and configuration, you can create a fully functional and optimized FreeBSD system that works seamlessly across different machines. By following this guide, you now have a robust portable OS that can be used for recovery, testing, or daily operations.


Last modified 08.03.2025: new content (76eea7a)