PC-BSD® supports a feature of ZFS known as multiple boot environments (BEs). With multiple boot environments, the process of updating software becomes a low-risk operation as you can backup your current boot environment before upgrading or making software updates to your system. If needed, you also have the option of booting into a backup boot environment. For example:
Abbildung 8.4b: Verwalten der GRUB-Konfiguration
- you can save multiple boot environments on your system and perform various updates on each of them as needed. You can install, test, and update different software packages on each.
- you can mount a boot environment in order to chroot into the mount point and update specific packages on the mounted environment.
- you can move a boot environment to another machine, physical or virtual, in order to check hardware support.
Managing Boot Environments Using Boot Manager
To create and manager boot environments using a graphical interface, go to Control Panel ➜ Boot Manager or type pc-su pc-bootconfig. You will be prompted to enter your password.
During installation, PC-BSD® creates a boot environment named default. As seen in Figure 8.4a, an entry for this boot environment will be displayed in the Boot Manager screen.
Anything outside of the default dataset will not be included in the boot environment. To ensure that the files that the operating system needs are included when the system boots, all boot environments include /usr, /usr/local, and /var. User-specific data is not included in the boot environment. This means that /usr/home, /usr/jails, /var/log, /var/tmp, and /var/audit will not change, regardless of which boot environment is selected at system boot.
From top to bottom, the icons on the far left are used to:
Create: a new boot environment. You should do this before making any changes to the system that may impact on your current boot environment. You will be prompted for a name. Once you click OK, the system will create the environment, then add it to the list of boot environments.
Remove: will delete the highlighted boot environment. You can not delete the boot environment which has a Running status of Yes as that is the current boot environment.
Copy: creates a copy of an existing boot environment.
Rename: used to rename the highlighted boot environment. The name is what appears in the boot menu when the system boots.
Activate: tells the system to boot into the highlighted boot environment at next system boot. The Default will change to Yes, but the Running will remain the same. In other words, Running refers to the boot environment the system last booted into (is currently running from) whereas Default indicates which boot environment the system will boot into at next system boot.
If you create any boot environments, a boot menu similar to the one seen in Figure 8.4b will appear for five seconds during system boot. The menu contains the names of the boot environments and the date each was created. If you don't make a selection, the system will automatically boot into either the last "Running" boot environment or, if you have activated another boot environment, the environment that was set as the "Default".
To customize this menu, click the "Grub Configuration" tab to see the screen seen in Figure 8.4c.
The fields in this screen are used to configure the:
- Theme File: used to customize the look of the GRUB menu. The theme file format is described in . The provides additional information.
- Font File: before a font can be used in the GRUB menu, it must first be converted to .pf2 format using the grub-mkfont(1) command.
- Timer: sets the delay time for accessing the GRUB menu. By default it is 2 seconds, so if you find that the time to access the menu goes by too quickly, increase this timer.
- Custom Entries: if you have an existing GRUB configuration that you would like to add to the menu, cut and paste it into the box. Refer to the for more information on creating a custom GRUB configuration.
If you make any changes in this tab, the two buttons below "Settings" or "Custom Entries" will be activated. Use them to save your changes and to re-load the GRUB configuration. If you forget to do so, a pop-up message will remind you that you have unsaved changes when you exit Boot Manager. If you do not save the changes, the boot menu will remain the same.
Managing Boot Environments From the Command Line
If you are running TrueOS® or prefer to use the command line, you can manage boot environments using the beadm command as the superuser. For example, this command creates a boot environment named beforeupgrade:
To view all boot environments, use the list command:
BE Active Mountpoint Space Policy Created default NR / 6.05G static 2013-08-23 09:03beforeupgrade - - 1K static 2013-08-27 10:14
The possible flags in the "Active" field are as follows:
- R: active on reboot
- N: active now
- -: inactive
In this example, the current boot environment is called default, it is active now, will be used at next reboot, and it is mounted. The newly created beforeupgrade boot environment exists, but is inactive and unmounted. To activate the new boot environment:
Activated successfully beadm list BE Active Mountpoint Space Policy Created default N / 64.5K static 2013-08-23 09:03beforeupgrade R - 6.05G static 2013-08-27 10:14
The flags now indicate that the system is currently booted into default, but at next boot the system will boot into beforeupgrade.
The boot menu configuration can be found in the ASCII text file /usr/local/etc/default/grub:
GRUB_THEME=/boot/grub/themes/pcbsd/theme.txt GRUB_FONT=/boot/grub/pcbsdfont.pf2 GRUB_HIDDEN_TIMEOUT_QUIET=false GRUB_TIMEOUT=2GRUB_DEFAULT=1