Full Disk Administration Tool for FreeBSD

Project description

FreeBSD currently lacks a tool to operate extensively over partitions and file systems, similar to GParted in Linux. The most similar tool is sade (partedit on bsdinstall), a TUI tool. However, it only allows creating, deleting, and resizing a partition. Plus, it only supports UFS, ZFS, and FAT 12, 16, and 32 filesystems.

The proposed project aims to utilize sade as a starting point to develop a new tool called geomman. The list of features to be added is:

The goal of the project is to add geomman to the FreeBSD base system, so users can immediately start using this tool to manage partitions and filesystems, like GParted does for Linux.

Approach to solving the problem

Partitions dialog

Develop a new dialog that graphically shows the space occupied by other partitions, so users can use the keyboard to move around the copied partition, or the partition to be moved, rather than using start/end sections, which are inconvenient to use. The new dialog will be added to bsddialog because it is used by geomman.

Shrinking a filesystem/partition

It is necessary that first, the filesystem is shrunk, to then resize the partition itself. However, geomman's allows users to apply their changes temporarily while using it. Therefore, shrinking the filesystem is not possible because the partition has already been resized. In this case, the partition needs to be temporarily resized to its original size, to shrink the filesystem, and then reset the partition to its new shrunken size.

Moving a partition

When moving a partition to an overlapping section, and there is not enough space to back up the whole filesystem, the partition needs to be copied into chunks. dd will be used to move a partition chunk by chunk using offsets.

Deliverables

Milestones

What was done

The project took a different approach, adding features compared to the proposed way. Filesystem operations were added one by one, but each time, for all the supported filesystems. The list of new features is the following:

Then, two GEOM-related features were added.

What is missing

What we got

Geomman has its official port geomman. The FreeBSD community will be able to install and try the tool. This is a very important step towards incorporating geomman into the FreeBSD base, by letting first users try the tool and receive valuable feedback.

Next steps

The Code

Repository: https://gitlab.com/brauliorivas/geomman


CategoryGsoc

SummerOfCode2025Projects/FullDiskAdministrationToolForFreeBSD (last edited 2025-09-01T17:11:54+0000 by BraulioRivas)