Skip to content

Conversation

@cmainas
Copy link
Collaborator

@cmainas cmainas commented Nov 7, 2025

Add support for reading the list of block devices that should be mounted before the execution of the application. The list is tored in the configuration file with the following format:

UBS
ID: <serial_id>
MP: <mountpoint>
...
UBE

Given such a list, urunit for each pair of serial id and mountpoint will search all virtio block devices (vd[a-z]) and compare the serial IDs. If they match, urunit will create all necessary directories for the mountpoint and mount the device in the given mountpoint.

It is important to note, that the current approach assumes that all block devices will be virtio-based (since urunc uses only virtIO for block devices) and there are no more than 26 devices (a-z). However, the current approach is easily extensible for more devices.

At last, in case of a failure all created directories will get removed and before shutting down, urunit will unmount all mounted filesystems with an external source. External means a source outside of the VM (e.g. block, network).

Add information to README regarding the new changes in urunit and
specifically for the support of a configuration file for the environment
variables and the proccess execution environment.

Furthermore, rephrase some comments in the code and reduce the search
area in the config buffer for searching the configuration for the
application execution environment.

Signed-off-by: Charalampos Mainas <cmainas@nubificus.co.uk>
Read from the configuration the respective info for mounting attached
block devices to the respective mountpoint. In particular the
configuration for the block mounts has the following format:

UBS
ID: <serial_id>
MP: <mountpoint>
...
UBE

Therefore, for every block device there is a pair of ID and MP where ID
refers to the serial ID of the device and MP refers to the mountpoint of
that block device.

Signed-off-by: Charalampos Mainas <cmainas@nubificus.co.uk>
Discover every block device from its serial ID or its order in the config
and create all the necessary directories for the mountpoint.

Currently, urunit will only look for virtio block devices (vd[a-z]),
since urunc will use virtIO for passing a block device to the VM. We
might want to revisit this in case urunc uses other types of block
devices apart virtio-block.

Signed-off-by: Charalampos Mainas <cmainas@nubificus.co.uk>
Make sure that all external filesystem mounts are unmounted before
shuttidng down to avoid any corruptions. External means all mounts that
use an external to the current VM source (e.g. block devices network
filesystems).

For the time being urunit checks the filesystem type in the mountinfo
and compares it with some well known block, network and cloud-based
filesystems. We might want to update this list in the future.

Signed-off-by: Charalampos Mainas <cmainas@nubificus.co.uk>
@cmainas cmainas changed the title Add support fore reading and mounting block devices from the configuration file Add support for reading and mounting block devices from the configuration file Nov 7, 2025
@cmainas cmainas merged commit f32b09e into main Nov 13, 2025
4 checks passed
@cmainas cmainas deleted the feat_block_vols branch November 13, 2025 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants