Here are projects that I actively work on. All of them are POSIX shell scripting related.
They are:
- beadm(8) – manage ZFS Boot Environments on FreeBSD
- automount(8) – mount removable media on FreeBSD
- lsblk(8) – list block devices on FreeBSD
Below is detailed information about these projects.
beadm(8)
___ ___ __ ____ __
/ / / / / // \\ \
/ / ____ ____ ___/ /___ ___ / // / / \ \
/ \ / _ \ / \ / // \ \/ / \ \ / /
/ / // ___// / // / // / / /\ \ / / // /
\____/ \____/ \_____\\____//__/__/__/ \_\\____//_/
I started the beadm(8) in 2012 and its developed/supported today. In the meantime the FreeBSD project created its own tool called bectl(8) that aims to implement beadm(8) in the C language.
The beadm(8) source is available on GitHub here:
https://github.com/vermaden/beadm
My presentations about ZFS Boot Environments and beadm(8) are available here:
- ZFS Boot Environments at PBUG [2018/07]
- ZFS Boot Environments Reloaded at NLUUG Conference 2018 [2018/11]
The beadm(8) in action.

automount(8)
___ /\ ___
__/ /_ / \ _\ \__
____ _____/_ __/__ / _/\ ___ ___ ____ ______ __\__ _\
/ \ / / // // \ /\_/ \ / / \ / \\ \ \ / \\ \
/ / // / // // / // \\ \ \ \\ \ \\ \ \\ \ \\ \_
\_____\\____/ \__\\____//__________\\__\__\__\\____/ \_____\\__\__\\___\
The automount(8) was started in 2013 and lives still today. Its used as chosen automounting solution in the GhostBSD distribution. The automount(8) uses FreeBSD’s devd(8) events for the mount/unmount actions. It currently supports most popular file systems such as:
- NTFS
- MSDOS
- exFAT
- EXT2
- EXT3
- EXT4
- UFS
- XFS
- HFS
- MTP
- ISO9660
The automount(8) source is available on GitHub here:
https://github.com/vermaden/automount
More information and comparison to other automount solutions on FreeBSD is available here:
The automount(8) in action.

lsblk(8)
___ ___ ___ __ _ _ _____
\ \ __\__\__\ \ \ __ / / / \
\ \/ __/ \ \ \/ // / / . \
\ \___ \ \ \ \_ \\ \ \ \ /
\___\__/\____/\___\/\_\\_\_\____\/
The lsblk(8) was started as proof of concept in 2016 but finally in 2019 I got back to it and made it usable/production ready.
The lsblk(8) source is available on GitHub here:
https://github.com/vermaden/lsblk
I also made dedicated article about lsblk(8) here:
- List Block Devices on FreeBSD lsblk(8) StyleΒ [2019/09]
The lsblk(8) in action.

Scripts
Various scripts I have written across the years.
They are available on GitHub here:
https://github.com/vermaden/scripts