Goals and Features
PC-BSD® provides the following features:
What's New in 10.0
The following features or enhancements were introduced in PC-BSD® :
PC-BSD® for Linux Users
PC-BSD® is based on, meaning that it is not a Linux distribution. If you have used Linux before, you will find that some features that you are used to have different names on a BSD system and that some commands are different. This section covers some of these differences.
BSD and Linux use different filesystems during installation. Many Linux distros use EXT2, EXT3, EXT4, or ReiserFS, while PC-BSD® uses UFS or ZFS. This means that if you wish to dual-boot with Linux or access data on an external drive that has been formatted with another filesystem, you will want to do a bit of research first to see if the data will be accessible to both operating systems.
Table Is there no version? a summarizes the various filesystems commonly used by desktop systems. Most of the desktop managers available from PC-BSD® should automatically mount the following filesystems: FAT16, FAT32, EXT2, EXT3 (without journaling), EXT4 (read-only), NTFS5, NTFS6, and XFS. See the section on Files and File Sharing for more information about available file manager utilities.
Linux and BSD use different naming conventions for devices. For example:
Some of the features used by BSD have similar counterparts to Linux, but the name of the feature is different. Table Is there no version? b provides some common examples:
If you are comfortable with the command line, you may find that some of the commands that you are used to have different names on BSD. Table Is there no version? c lists some common commands and what they are used for.
The following articles and videos provide additional information about some of the differences between BSD and Linux:
Partitioning the Hard Drive
Burning the Installation Media
Language Selection Screen
System Selection Screen
Disk Selection Screen
Installation Progress Screen
Installation Finished Screen
Post Installation Configuration and Installation Troubleshooting
Booting Into PC-BSD®
Time Zone Selection Screen
Set Root Password Screen
Create a User Screen
Connect to a Wireless Network
Post Install Finished Screen
Advanced Installation Topics
Using the Text Installer
Install a Server
Convert a FreeBSD System to PC-BSD®
Using a Rolling Release
Creating an Automated Installation with pc-sysinstall
Installing Applications and Keeping Up-to-Date
pkgng and pc-metapkgmanager
Active Directory & LDAP
Adobe Flash Player preferences
PC-BSD® Bug Reporting
Warden®Warden® is an easy to use, graphical management program.
Some of the features in Warden® include the ability to:
Creating a Jail using the GUI Version of Warden®
Warden® can be started by clicking on its icon in Control Panel or by typing pc-su warden gui from the command line. You will be prompted for your password as administrative access is needed to create and manage jails. The initial Warden® configuration screen is shown in Figure Is there no version? a.
To create your first jail, click the "New Jail" button or go to File ➜ New Jail. A jail creation wizard, seen in Figure Is there no version? b, will launch.
The first screen in the jail creation wizard will prompt you for the following information:
Hostname: you can change the default of "Jailbird" to another value. The hostname must be unique on your network and can not contain a space. Use a hostname that reminds you of the type of jail and your reason for creating it.
IPV4 Address: input the IPv4 address to be used by the jail and access its contents. Choose an address on your network that is not already in use by another computer or jail and which will not conflict with the address range assigned by a DHCP server.
IPv6 Address: if you plan to access the jail and its contents using IPv6, check the "IPv6 Address" box and input an IPv6 address that is not already in use by another computer or jail on your network.
When finished, click "Next" to select the type of jail, as shown in Figure Is there no version? c:
There are three types of jails supported by Warden®:
Traditional Jail: select this type if you are creating the jail in order to install and run network services. For example, this type of jail is appropriate if you wish to run a web server or a database which is accessible to other systems on a network or over the Internet. This is the most secure type of jail as it is separate from the PC-BSD® host and any other jails that you create using Warden®. By default, FreeBSD's next generation of package management, known as pkgng, and the command line versions of the PC-BSD® utilities are added to a default FreeBSD installation. If you do not plan to use these tools, uncheck the box “Install PKGNG and PC-BSD utilities”. If you have already created a jail template, select the desired operating system version from the “Jail Version” drop-down menu.
Ports Jail: select this type of jail if your intention is to install software using FreeBSD packages and ports and you wish to have access to that software from your PC-BSD® system or if you plan to install any GUI applications within the jail. This type of jail is less secure then a traditional jail as applications are shared between the jail and the PC-BSD® system. This means that you should not use this type of jail to install services that will be available to other machines over a network.
Linux Jail: select this type of jail if you would like to install a Linux operating system within a jail. Linux jail support is considered to be experimental and is limited to 32-bit.
The remaining screens will differ depending upon the type of jail that you select.
Traditional or Ports Jail
If you select "Traditional Jail", you will be prompted to set the root password as seen in Figure Is there no version? d.
Input and confirm the password then press "Next" to see the screen shown in Figure Is there no version? e. If you instead select to create a "Ports Jail", you will go directly to Figure Is there no version? e.
This screen allows you to install the following options:
Include system source: if you check this box, make sure that /usr/src/ exists on the PC-BSD system as the source is copied to the jail from this location. If it is not installed, use Control Panel ➜ System Manager ➜ Tasks ➜ Fetch PC-BSD System Source to install it.
Include ports tree: if you check this box, the latest version of the ports tree will be downloaded into /usr/ports/ of the jail. This will allow you to compile FreeBSD ports within this jail.
Start jail at system bootup: if this box is checked, the jail will be started (become available) whenever you boot your main system. If the box is not checked, you can manually start the jail whenever you wish to access it using Warden®.
Once you have made your selections, click the "Finish" button to create the jail. Warden® will display a pop-up window containing status messages as it downloads the files it needs and creates and configures the new jail.
Once Warden® is finished creating the jail, a message should appear at the bottom of the pop-up window indicating that the jail has been successfully created. Click the "Close" button to return to the main screen.
If you select the "Linux Jail" and click "Next", you will be prompted to set the root password as seen in Figure Is there no version? d. After inputting the password, the wizard will prompt you to select a Linux install script, as seen in Figure Is there no version? f.
The installation script is used to install the specified Linux distribution. At this time, installation scripts for Debian Wheezy and Gentoo are provided.
Once you select the install script, the wizard will ask if you would like to start the jail at boot time as seen in Figure Is there no version? g.
Click the "Finish" button to begin the Linux installation.
Configuring Existing Jails From the GUI
Once a jail is created, an entry for the jail will be added to the "Installed Jails" box and the tabs within Warden® will become available. Each entry indicates the jail's hostname, whether or not it is currently running, and whether or not any updates are available for the meta-packages installed within the jail. The buttons beneath the "Installed Jails" box can be used to start/stop the highlighted jail, configure the jail, add a new jail, or delete the highlighted jail.
If you highlight a jail and click "Jail Configuration", the screen shown in Figure Is there no version? h will open.
The Options tab has one checkbox for enabling or disabling VNET/VIMAGE support. This option provides that jail with its own, independent networking stack. This allows the jail to do its own IP broadcasting, which is required by some applications. However, it breaks some other applications. If an application within a jail is having trouble with networking, try changing this option to see if it fixes the issue.
The IPv4 tab is shown in Figure Is there no version? i.
This screen allows you to configure the following:
IPv4 Address: uncheck this box if you do not want the jail to have an IPv4 address.
IPv4 Bridge Address (Requires VNET): if this box is checked, an IP address is input, and the "IPv4 Default Router" box is left unchecked, the bridge address will be used as the default gateway for the jail. If the "IPv4 Default Router" address is also configured, it will be used as the default gateway address and the bridge address will be used as just another address that is configured and reachable. This option requires the "Enable VNET/VIMAGE support" checkbox to be checked in the Options tab.
IPv4 Default Router: check this box and input an IP address if the jail needs a different default gateway address than that used by the PC-BSD® system. This option requires the "Enable VNET/VIMAGE support" checkbox to be checked in the Options tab.
The IPv6 tab is shown in Figure Is there no version? j.
This screen allows you to configure the following:
IPv6 Address: check this box if you want the jail to have an IPv6 address.
IPv6 Bridge Address (Requires VNET): if this box is checked, an IPv6 address is input, and the "IPv6 Default Router" box is left unchecked, the bridge address will be used as the default gateway for the jail. If the "IPv6 Default Router" address is also configured, it will be used as the default gateway address and the bridge address will be used as just another address that is configured and reachable. This option requires the "Enable VNET/VIMAGE support" checkbox to be checked in the Options tab.
IPv6 Default Router: check this box and input an IPv6 address if the jail needs a different default gateway address than that used by the PC-BSD® system. This option requires the "Enable VNET/VIMAGE support" checkbox to be checked in the Options tab.
The Aliases tab is shown in Figure Is there no version? k.
Click the drop-down menu to see all of the options shown in Figure Is there no version? k. An alias allows you to add additional IP addresses to an interface. Select the type of address you would like to add an alias to, click the Add button, type in the IP address to add and click OK.
The Permissions tab is shown in Figure Is there no version? l. This screen can be used to easily enable or disable the sysctl values that are available for jails.
The "Info" tab, as seen in the example in Figure Is there no version? m, provides an overview of a jail's configuration. If you have created multiple jails, the "Info" tab displays the configuration of the currently highlighted jail.
In the example shown in Figure Is there no version? m, three jails have been created: a traditional jail, a ports jail, and Debian Squeeze has been installed into a Linux jail.
The "Info" tab contains the following information:
You can sort the jail listing by clicking on the "Jail", "Status", or "Updates" header name. The "Updates" column will indicate if a software or system update is available for a jail.
The "Tools" tab, shown in Figure Is there no version? n, allows you to manage common configuration tasks within a jail.
This tab provides the following buttons:
The “Snapshots” tab, shown in Figure Is there no version? o, is used to create and manage ZFS snapshots within the currently highlighted jail. The ZFS snapshot feature can be used to make point in time filesystem backups of jails. A snapshot is essentially a picture of what the filesystem looked like at that point in time. Snapshots are space efficient in that they take up zero space when created and the snapshot only grows in size as files contained within the snapshot are modified after the snapshot was taken. In other words, ZFS manages the changes between snapshots, providing a way to return to what a file looked like at the time a snapshot was taken.
Since jails share the filesystem used by PC-BSD®, any type of jail, including a Linux jail, can take advantage of this ZFS feature.
To create a snapshot of the jail, click the "+Add" button. A snapshot indicating the date and time will be added to the slider bar. If you create multiple snapshots at different times, use the slider bar to select a snapshot.
Once you have created a snapshot, the following actions can be used to manage the snapshot. Make sure that the desired snapshot is highlighted in the slider bar before clicking these buttons:
This screen also allows you to schedule automatic snapshots. To enable this feature, check the box "Scheduled Snapshots". Use the drop-down menu to set the frequency to daily or hourly. You can also type in or use the arrows to configure the number of days to keep each snapshot.
To refresh the settings for all jails, use Configure ➜ Refresh Jails.
To configure Warden®, click Configure ➜ Settings which will open the screen shown in Figure Is there no version? p.
This screen allows you to configure the following:
If you highlight a jail, its right-click menu contains the following options:
Importing a Jail
The "File" menu can be used to create a new jail, import a jail, create templates, or exit Warden®.
If you click File ➜ Import Jail you will be prompted to browse to the location of a previously created .wdn file. After selecting the file, you will then see the screen shown in Figure Is there no version? q.
Using Template Manager
The built-in template manager can be used to create and manage jail templates. Once created, templates can be used when installing a new jail. A template specifies the version and architecture of FreeBSD to be used as the operating system running in the jail. Templates have been tested from FreeBSD versions 4.1.1 to FreeBSD-CURRENT. Until you create your own templates and specify them during jail creation, the default version and architecture of the operating system used in the jail will be the same as that running on the PC-BSD® system.
To create a template, click File ➜ Template Manager to see the screen shown in Figure Is there no version? r.
The default icon will indicate the version of TrueOS® used by the underlying PC-BSD® system. To create a new template, click the + button. In the "System Type" drop-down menu select either:
Press OK to see the screen shown in Figure Is there no version? s.
If desired, change the 10.0 in this example to the release number to use. If you selected FreeBSD as the system type, a list of available release numbers can be found on this. If you selected TrueOS, the list of available release numbers is currently limited to 9.0, 9.1, 9.2, 9.3, 10.0, and 10.1.
Press OK. In the "System Architecture" drop-down menu, select either amd64 (for 64-bit) or i386 (for 32-bit). Press OK and input a nickname for the template. Click OK and the files needed for that version will be downloaded. Once the template is created, it will appear in the Template Manager as seen in the example in Figure Is there no version? t.
To delete a template, highlight it and click the - button. Note that Warden® will not let you delete a template if any jails exist which are using the template.
To use the template when creating a new jail, click the "Jail Version" drop-down menu shown in Figure Is there no version? c and select the desired template.
Using the Command Line Version of Warden®
The Warden® GUI is based on a Bourne shell script. This script can be manually run from the command line on a PC-BSD® server or by users who prefer using the command line. Advanced users can also refer to the command line version in their own scripts.
If you type warden at the command line, you will receive a summary of its usage:
Warden version 1.4--------------------------------- Available commands Type in help <command> for information and usage about that command help - This help file gui - Launch the GUI menu auto - Toggles the autostart flag for a jail bspkgng - BootStrap pkgng and setup TrueOS repo checkup - Check for updates to a jail chroot - Launches chroot into a jail create - Creates a new jail details - Display usage details about a jail delete - Deletes a jail export - Exports a jail to a .wdn file fstab - Start users $EDITOR on jails custom fstab fbsdupdate - Update the FreeBSD world inside jail fbsdupgrade - Upgrade the version of FreeBSD inside a jail get - Gets options list for a jail import - Imports a jail from a .wdn file list - Lists the installed jails pkgupdate - Update packages inside a jail pkgs - Lists the installed packages in a jail pbis - Lists the installed pbi's in a jail set - Sets options for a jail start - Start a jail stop - Stops a jail type - Set the jail type (pbibox|pluginjail|portjail|standard) template - Manage jail templates snap - Jail snapshot management clone - Clone an existing jail to a new jail cronsnap - Schedule snapshot creation via cron
warden help create
Warden version 1.4--------------------------------- Help create Creates a new jail, with options for system source, ports and autostarting. Available Flags: -32 Create 32bit jail on 64bit system --autoipv4 Use the next available IPv4 address from the pool --ipv4=<ip/mask> Set primary IPv4 address for jail --ipv6=<ip/mask> Set primary IPv6 address for jail --archive <tar> Use specified tar file for BSD jail creation --bulk <number> Create <number> of new jails, using default IP4 pool or address pool specified with --ip4pool --ip4pool <address> Starting IPv4 address to use when creating jails in bulk --linuxjail <script> Make this a linux jail and use supplied script for installation --linuxarchive <tar> Use specified tar file for Linux jail creation --pluginjail Make this a pluginjail --ports Includes the ports tree --portjail Make this a portjail --src Includes /usr/src system source --startauto Start this jail at system boot --template <string> Specify a jail template to build with --vanilla Don't install PC-BSD pkgng repo and utilities --version <string> Use this instead of /etc/version Usage: warden create <JAILNAME> <flags> Example: warden create jailbird --ipv4=192.168.0.25/24 --src --ports --startauto
You do not need superuser access to use the view commands but will for any commands that create or manage a jail. The warden command will display an error message if a command requires superuser access and you currently are not the superuser. On PC-BSD®, you can put pc-su at the beginning of the warden command to be prompted for your password. On a FreeBSD server, you can type su to become superuser, then repeat the warden command.
Creating and Accessing a Jail
Before creating a jail, verify the network settings in /usr/local/etc/warden.conf:
#!/bin/sh # Configuration options for the Warden ###################################################################### # Network Interface for the jails to use NIC: # Directory to use for compressing / decompressing files WTMP: /usr/jails # Location of the jails JDIR: /usr/jails # When automatically creating jails with unspecified IPv4 addresses, use this # address at the starting point for new addresses IP4POOL: 192.168.0.220
You can either specify the FreeBSD interface name to use in the NIC field or specify the IP address range starting point with the IP4POOL field. When using IP4POOL on a network containing a DHCP server, ensure that the DHCP server has reserved the range of addresses to be used by jails in order to prevent IP address conflicts.
To create a jail, specify a unique IP address and hostname for the jail:
warden create jail1 --ipv4 10.0.0.1 DEF: 10.1-RELEASE amd64 Building new Jail... Please wait... <snip install messages> Success! Jail created at /usr/jails/jail1
Before you can access the jail, you will need to start it:
warden start jail1
As the jail starts, the SSH host keys will be generated and sshd will start. At this point, you can use the warden chroot command to access the jail from the host system. Alternately, to access the jail over the network using ssh, you will need to first create a user account.
To access the jail in order to create that user:
warden chroot jail1
Started shell session on jail1 . Type exit when finished.adduser
Follow the prompts of the adduser script in order to create a user. When you get to the following prompt, do not press enter. Instead type in wheel so that the user can use the su command to become the superuser within the jail.
Login group is username. Invite username into other groups?  wheel
When you are finished creating the user, you can type exit to exit the jail. Test that ssh works by specifying the username that you created:
To create multiple jails simultaneously, use the --bulk <number> and --ip4pool <starting address> options to specify the number of jails and the starting IP address. Alternately, instead of –ip4pool, use the --autoipv4 option as it automatically assigns the next available IP address from the pool, as defined by the IP4POOL option in /usr/local/etc/warden.conf.
Managing Jails from the Command Line
Table a shows the command line equivalents to the graphical options provided by the Warden® GUI. To get usage examples for each command, insert help into the command. For example, to get help on the auto command, type warden help auto. Note that some options are only available from the command line.
Java, Flash, and Fonts
Files and File Sharing
Create Your Own PBI Repository
Finding HelpFlat html/content/en
PC-BSD® ForumsFlat html/content/en
IRC ChannelFlat html/content/en
Mailing ListsFlat html/content/en
FreeBSD Handbook and FAQFlat html/content/en
Social MediaFlat html/content/en
Search and PortalsFlat html/content/en
Other ResourcesFlat html/content/en
Become a Beta Tester
Become a Translator
<translate> Flat html/10.1.1 </translate>
Become a Developer
If you like programming, and especially coding on FreeBSD, we would love to see you join the PC-BSD® Team as a PC-BSD® committer. Developers who want to help improve the PC-BSD® codebase are always welcome! If you would like to participate in core development, subscribe to the. Once you have signed up, feel free to browse the active tickets in the . If you see something that you want to work on, or have a proposal for a project you wish to add to PC-BSD®, please let us know via the developers list and we will be happy to help get you started.
Most of the PC-BSD® specific GUI tools are developed in C++ using the Qt Libraries, and other non-GUI development is done using standard Bourne shell scripts. There may be cases where other languages or libraries are needed, but those will be evaluated on a case-by-case basis, so feel free to let us know your proposals on the developers mailing list.
Getting the Source Code and Development Tools
The PC‑BSD® source code is available from github and git needs to be installed in order to download the source code. When using PC‑BSD®, git is included in the base install.
To download the source code, cd to the directory to store the source and type:
git clone git://github.com/pcbsd/pcbsd.git
This will create a directory named pcbsd/ which contains the local copy of the repository. To keep the local copy in sync with the official repository, run git pull within the pcbsd directory.
PC‑BSD® graphical applications use Qt version 5 and their source is located in pcbsd/src-qt5/. In order to compile the applications in this directory, install the "PC-BSD Build ToolChain" PBI using AppCafe®. To instead install this PBI from the command line, type pbi add devel/pcbsd-toolchain.
Most of the PC‑BSD® source code is divided into two sub-categories:
To compile the command line utilities:
To compile the graphical utilities:
Several Qt IDEs are available in AppCafe®. The " PBI is a full featured IDE designed to help new Qt users get up and running faster while boosting the productivity of experienced Qt developers. is lighter weight as it is only a .ui file editor and does not provide any other IDE functionality. It can be installed as the "qt5-designer" raw package using AppCafe® or pkg install.
If you plan to submit changes so that they can be included in PC-BSD®, fork the repository using the instructions at. Make your changes to the fork, then submit them by issuing a . Once your changes have been reviewed, they will be committed or sent back with suggestions.
Basic Guidelines for Writing a PC‑BSD® UtilityPC‑BSD® is a community driven project that relies on the support of developers in the community to help in the design and implementation of new utilities and tools for PC‑BSD®. Going forward, we aim to present a unified design so that programs feel "familiar" to users. As an example, while programs could have "File", "Main", or "System" as their first entry on the "File menu", we want to present one option, "File", as it is the accepted norm for the first category on the menu bar.
This section describes a small list of guidelines to menu and program design in PC‑BSD®. Since most programs designed for the last couple of decades have followed this structure, it makes sense for us to follow the same standard.
Any graphical program that is a full-featured utility, such as Warden® or AppCafe®, should have a file menu. However, file menus are not necessary for small widget programs or dialogue boxes. When making a file menu, a good rule of thumb is keep it simple. Most PC‑BSD® utilities do not need more than two or three items on the file menu. An example of a well laid out "File" menu is AppCafe®, shown in Figure Is there no version? a.
"Configure" is our adopted standard for the category that contains "Settings" or other configuration related settings. If additional categories are needed, check to see what other PC‑BSD® utilities are using.
File Menu Icons
File menu icons are taken from the KDE "Oxygen" theme located in /usr/local/share/icons/oxygen. Use these file menu icons so we do not have a bunch of different icons used for the same function. Table Is there no version? a lists the commonly used icons and their default file names.
PC‑BSD® utilities use these buttons as follows:
Fully functional programs like AppCafe® and Warden® do not use close buttons on the front of the application. Basically, whenever there is a "File" menu, that and an x in the top right corner of the application are used instead. Dialogues and widget programs are exceptions to this rule. A good example of a widget program would be Update Manager.
Many users benefit from keyboard shortcuts and we aim to make them available in every PC‑BSD® utility. Qt makes it easy to assign keyboard shortcuts. For instance, to configure keyboard shortcuts that browse the "File" menu, put &File in the text slot for the menu entry when making the application. Whichever letter has the & symbol in front of it will become the hot key. You can also make a shortcut key by clicking the menu or submenu entry and assigning a shortcut key. Be careful not to duplicate hot keys or shortcut keys. Every key in a menu and submenu should have a key assigned for ease of use and accessibility. Tables Is there no version? b and Is there no version? c summarize the commonly used shortcut and hot keys.
Saving Settings in a Qt Application
When saving an application's settings, the QSettings class should be used if possible. There are two different "organizations", depending on whether the application is running with root permissions or user permissions. Use "PCBSD" for the organization for applications that run with user permissions and "PCBSD-root" for applications that are started with root permissions via sudo. Proper use prevents the directory where settings files are saved from being locked down by root applications, allowing user applications to save and load their settings. Examples Is there no version? a and Is there no version? b demonstrate how to use the QSettings class for each type of permission.
Example Is there no version? a: User Permission Settings
(user application - C++ code): QSettings settings("PCBSD", "myapplication");
Example Is there no version? b: Root Permission Settings
(root application - C++ code): QSettings settings("PCBSD-root", "myapplication");
Developers will also find the following resources helpful:
Submit PBI Requests
Purchase PC-BSD® Swag
Become an Advocate
<ref>tags exist, but no
<references/>tag was found
<ref>tags exist for a group named "Tables", but no corresponding
<references group="Tables"/>tag was found