FreeBSD
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from Research Unix via the Berkeley Software Distribution (BSD). FreeBSD is a direct descendant of BSD, which was historically called "BSD Unix" or "Berkeley Unix" (in violation of the UNIX trademark). The first version of FreeBSD was released in 1993, and as of 2005 FreeBSD was the most widely used open-source BSD operating system, accounting for more than three-quarters of all installed BSD systems.
FreeBSD has similarities with Linux, with two major differences in scope and licensing: FreeBSD maintains a complete system, i.e. the project delivers a kernel, device drivers, userland utilities, and documentation, as opposed to Linux only delivering a kernel and drivers, and relying on third-parties for system software; and FreeBSD source code is generally released under a permissive BSD license, as opposed to the copyleft GPL used by Linux.
The FreeBSD project includes a security team overseeing all software shipped in the base distribution. A wide range of additional third-party applications may be installed using the pkg package management system or FreeBSD Ports, or by compiling source code.
Due to its licensing, much of FreeBSD's codebase has become an integral part of other operating systems, such as Apple's Darwin (the basis for macOS, iOS, watchOS, and tvOS), FreeNAS (an open-source NAS/SAN operating system), the Nintendo Switch system software, and the system software for Sony's PlayStation 3 and PlayStation 4.
Contents
ZFS
Pools
Attach a mirror to existing hard drive in FreeBSD/FreeNAS
Let's assume ada0 is your existing disk, ada1 is the new one, tank is the pool name.
gpart create -s gpt /dev/ada1 gpart add -i 1 -b 128 -t freebsd-swap -s 2g /dev/ada1 gpart add -i 2 -t freebsd-zfs /dev/ada1
- Run
zpool status
and note the gptid of the existing disk - Run
glabel status
and find the gptid of the newly created partition. It is the gptid associated with ada1p2.
zpool attach tank /dev/gptid/[gptid_of_the_existing_disk] /dev/gptid/[gptid_of_the_new_partition]
It may take a while to resilver your drive after this - you will not have access to it whilst this is running.
Encryption
Unlock Geli-encrypted ZFS Volume:
geli attach -k [geli_key_file] [dev_to_unlock]
Example:
geli attach -k /data/geli/geli.key /dev/ada0p2
To import the pool, see Pools
Iocage/Warden Jails
To migrate jails from one pool to another:
zfs snapshot -r poolname/jails@relocate zfs send -R poolname/jails@relocate | zfs receive -vF newpool/jails
To migrate a jail from one computer to another:
iocage stop jailname iocage export jailname
Exporting jails will create a zip file "jail_name_date.zip" inside "/mnt/iocage/images/". To import these backups, copy the exported backup files into "/mnt/iocage/images/" and then restore:
iocage import jailname_name_date.zip
If iocage gives trouble, use the jail name instead:
iocage import jailname
Change iocage pool location:
iocage activate NEWPOOLNAME